[MediaWiki-commits] [Gerrit] Add parser for media file urls - change (analytics...source)

2015-02-11 Thread QChris (Code Review)
Hello Ottomata,

I'd like you to do a code review.  Please visit

https://gerrit.wikimedia.org/r/189981

to review the following change.

Change subject: Add parser for media file urls
..

Add parser for media file urls

Change-Id: I1b76e1e331ea781aee13557fc55a2c19ce5744a7
---
M changelog.md
A 
refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java
A 
refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlParser.java
A 
refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestMediaFileUrlInfo.java
A 
refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestMediaFileUrlParser.java
M 
refinery-hive/src/main/java/org/wikimedia/analytics/refinery/hive/IsLegacyPageviewUDF.java
A 
refinery-hive/src/main/java/org/wikimedia/analytics/refinery/hive/MediaFileUrlParserUDF.java
A 
refinery-hive/src/test/java/org/wikimedia/analytics/refinery/hive/TestMediaFileUrlParserUDF.java
8 files changed, 1,655 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/analytics/refinery/source 
refs/changes/81/189981/1

diff --git a/changelog.md b/changelog.md
index 76ac26a..5733c29 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,6 +1,7 @@
 ## v0.0.6-SNAPSHOT
 * Add custom percent en-/decoders to ease URL normalization.
 * Add Referer classifier
+* Add parser for media file urls
 
 ## v0.0.5
 * For geocoding, allow to specify the MaxMind databases that should get used.
diff --git 
a/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java
 
b/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java
new file mode 100644
index 000..ab972f9
--- /dev/null
+++ 
b/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java
@@ -0,0 +1,132 @@
+package org.wikimedia.analytics.refinery.core;
+
+public class MediaFileUrlInfo {
+
+public enum Classification {
+UNKNOWN,
+ORIGINAL,
+TRANSCODED_TO_AUDIO,
+TRANSCODED_TO_IMAGE,
+TRANSCODED_TO_MOVIE,
+}
+
+private String baseName;
+private Classification classification;
+private Integer width;
+private Integer height;
+
+public static MediaFileUrlInfo createUnknown() {
+return new MediaFileUrlInfo(null, Classification.UNKNOWN,
+null, null);
+}
+
+public static MediaFileUrlInfo createOriginal(final String baseName) {
+return new MediaFileUrlInfo(baseName, Classification.ORIGINAL,
+null, null);
+}
+
+public static MediaFileUrlInfo createTranscodedToImage(
+final String baseName, final Integer width) {
+return new MediaFileUrlInfo(baseName,
+Classification.TRANSCODED_TO_IMAGE, width, null);
+}
+
+public static MediaFileUrlInfo createTranscodedToMovie(
+final String baseName, final int height) {
+return new MediaFileUrlInfo(baseName,
+Classification.TRANSCODED_TO_MOVIE, null, height);
+}
+
+public static MediaFileUrlInfo createTranscodedToAudio(
+final String baseName) {
+return new MediaFileUrlInfo(baseName,
+Classification.TRANSCODED_TO_AUDIO, null, null);
+}
+
+private MediaFileUrlInfo(final String baseName,
+final Classification quality, final Integer width,
+final Integer height) {
+this.baseName = baseName;
+this.classification = quality;
+this.width = width;
+this.height = height;
+}
+
+public String getBaseName() {
+return baseName;
+}
+
+public Classification getClassification() {
+return classification;
+}
+
+public Integer getWidth() {
+return width;
+}
+
+public Integer getHeight() {
+return height;
+}
+
+@Override
+public boolean equals(final Object obj) {
+boolean ret = false;
+
+if (obj instanceof MediaFileUrlInfo) {
+MediaFileUrlInfo other =
+(MediaFileUrlInfo) obj;
+
+ret = true;
+
+ret = classification == other.classification;
+
+if (baseName == null) {
+ret = other.baseName == null;
+} else {
+ret = baseName.equals(other.baseName);
+}
+
+if (width == null) {
+ret = other.width == null;
+} else {
+ret = width.equals(other.width);
+}
+
+if (height == null) {
+ret = other.height == null;
+} else {
+ret = height.equals(other.height);
+}
+}
+
+return ret;
+}
+
+@Override
+public String toString() {
+String ret = MediaFileUrlInfo[;
+switch (classification) {
+case UNKNOWN:
+ret += unknown;
+

[MediaWiki-commits] [Gerrit] Add parser for media file urls - change (analytics...source)

2015-02-11 Thread Ottomata (Code Review)
Ottomata has submitted this change and it was merged.

Change subject: Add parser for media file urls
..


Add parser for media file urls

Change-Id: I1b76e1e331ea781aee13557fc55a2c19ce5744a7
---
M changelog.md
A 
refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java
A 
refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlParser.java
A 
refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestMediaFileUrlInfo.java
A 
refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestMediaFileUrlParser.java
M 
refinery-hive/src/main/java/org/wikimedia/analytics/refinery/hive/IsLegacyPageviewUDF.java
A 
refinery-hive/src/main/java/org/wikimedia/analytics/refinery/hive/MediaFileUrlParserUDF.java
A 
refinery-hive/src/test/java/org/wikimedia/analytics/refinery/hive/TestMediaFileUrlParserUDF.java
8 files changed, 1,669 insertions(+), 1 deletion(-)

Approvals:
  Ottomata: Verified; Looks good to me, approved



diff --git a/changelog.md b/changelog.md
index 2880917..cef5d80 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,6 @@
 ## v0.0.7-SNAPSHOT
 * Add Referer classifier
+* Add parser for media file urls
 
 ## v0.0.6
 * Add custom percent en-/decoders to ease URL normalization.
diff --git 
a/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java
 
b/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java
new file mode 100644
index 000..ab972f9
--- /dev/null
+++ 
b/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java
@@ -0,0 +1,132 @@
+package org.wikimedia.analytics.refinery.core;
+
+public class MediaFileUrlInfo {
+
+public enum Classification {
+UNKNOWN,
+ORIGINAL,
+TRANSCODED_TO_AUDIO,
+TRANSCODED_TO_IMAGE,
+TRANSCODED_TO_MOVIE,
+}
+
+private String baseName;
+private Classification classification;
+private Integer width;
+private Integer height;
+
+public static MediaFileUrlInfo createUnknown() {
+return new MediaFileUrlInfo(null, Classification.UNKNOWN,
+null, null);
+}
+
+public static MediaFileUrlInfo createOriginal(final String baseName) {
+return new MediaFileUrlInfo(baseName, Classification.ORIGINAL,
+null, null);
+}
+
+public static MediaFileUrlInfo createTranscodedToImage(
+final String baseName, final Integer width) {
+return new MediaFileUrlInfo(baseName,
+Classification.TRANSCODED_TO_IMAGE, width, null);
+}
+
+public static MediaFileUrlInfo createTranscodedToMovie(
+final String baseName, final int height) {
+return new MediaFileUrlInfo(baseName,
+Classification.TRANSCODED_TO_MOVIE, null, height);
+}
+
+public static MediaFileUrlInfo createTranscodedToAudio(
+final String baseName) {
+return new MediaFileUrlInfo(baseName,
+Classification.TRANSCODED_TO_AUDIO, null, null);
+}
+
+private MediaFileUrlInfo(final String baseName,
+final Classification quality, final Integer width,
+final Integer height) {
+this.baseName = baseName;
+this.classification = quality;
+this.width = width;
+this.height = height;
+}
+
+public String getBaseName() {
+return baseName;
+}
+
+public Classification getClassification() {
+return classification;
+}
+
+public Integer getWidth() {
+return width;
+}
+
+public Integer getHeight() {
+return height;
+}
+
+@Override
+public boolean equals(final Object obj) {
+boolean ret = false;
+
+if (obj instanceof MediaFileUrlInfo) {
+MediaFileUrlInfo other =
+(MediaFileUrlInfo) obj;
+
+ret = true;
+
+ret = classification == other.classification;
+
+if (baseName == null) {
+ret = other.baseName == null;
+} else {
+ret = baseName.equals(other.baseName);
+}
+
+if (width == null) {
+ret = other.width == null;
+} else {
+ret = width.equals(other.width);
+}
+
+if (height == null) {
+ret = other.height == null;
+} else {
+ret = height.equals(other.height);
+}
+}
+
+return ret;
+}
+
+@Override
+public String toString() {
+String ret = MediaFileUrlInfo[;
+switch (classification) {
+case UNKNOWN:
+ret += unknown;
+break;
+case ORIGINAL:
+ret += baseName;
+ret += , original;
+break;
+case TRANSCODED_TO_AUDIO:
+ret += baseName;
+ret += ,