From f0a691f967b9eaad3e9ab160455d2039771b82fc Mon Sep 17 00:00:00 2001
From: Eike Cochu <eike@cochu.com>
Date: Fri, 5 Feb 2016 00:41:41 +0100
Subject: [PATCH] updated dynnmf filebase

updated dynnmf filebase, added missing lines
changed default enums to functions
---
 .../de/vipra/cmd/file/DynNMFFilebase.java     |  7 +++--
 .../src/main/resources/config.properties      |  2 +-
 .../java/de/vipra/util/CalendarUtils.java     | 11 ++++++++
 .../src/main/java/de/vipra/util/Config.java   |  6 ++---
 .../main/java/de/vipra/util/Constants.java    | 27 ++++++++++++-------
 5 files changed, 38 insertions(+), 15 deletions(-)
 create mode 100644 vipra-util/src/main/java/de/vipra/util/CalendarUtils.java

diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/file/DynNMFFilebase.java b/vipra-cmd/src/main/java/de/vipra/cmd/file/DynNMFFilebase.java
index 321d542b..abb7a473 100644
--- a/vipra-cmd/src/main/java/de/vipra/cmd/file/DynNMFFilebase.java
+++ b/vipra-cmd/src/main/java/de/vipra/cmd/file/DynNMFFilebase.java
@@ -10,6 +10,7 @@ import java.util.List;
 import java.util.Map;
 
 import de.vipra.cmd.ex.FilebaseException;
+import de.vipra.util.CalendarUtils;
 import de.vipra.util.Constants.WindowResolution;
 import de.vipra.util.FileUtils;
 import de.vipra.util.model.ArticleFull;
@@ -43,9 +44,11 @@ public class DynNMFFilebase extends Filebase {
 		c.setTime(date);
 		String dirName = "" + c.get(Calendar.YEAR);
 		switch (windowResolution) {
-			case MONTHLY:
-				break;
 			case QUARTERLY:
+				dirName += "-" + CalendarUtils.getQuarter(c);
+				break;
+			case MONTHLY:
+				dirName += "-" + c.get(Calendar.MONTH);
 				break;
 			case YEARLY:
 			default:
diff --git a/vipra-cmd/src/main/resources/config.properties b/vipra-cmd/src/main/resources/config.properties
index 0778073f..822a7005 100644
--- a/vipra-cmd/src/main/resources/config.properties
+++ b/vipra-cmd/src/main/resources/config.properties
@@ -2,5 +2,5 @@ db.host=localhost
 db.port=27017
 db.name=test
 tm.processor=corenlp
-tm.analyzer=jgibb
+tm.analyzer=dynnmf
 tm.saveallwords=false
\ No newline at end of file
diff --git a/vipra-util/src/main/java/de/vipra/util/CalendarUtils.java b/vipra-util/src/main/java/de/vipra/util/CalendarUtils.java
new file mode 100644
index 00000000..62378e4c
--- /dev/null
+++ b/vipra-util/src/main/java/de/vipra/util/CalendarUtils.java
@@ -0,0 +1,11 @@
+package de.vipra.util;
+
+import java.util.Calendar;
+
+public class CalendarUtils {
+
+	public static final int getQuarter(Calendar c) {
+		return (int) Math.ceil(c.get(Calendar.MONTH) / 3.0);
+	}
+
+}
diff --git a/vipra-util/src/main/java/de/vipra/util/Config.java b/vipra-util/src/main/java/de/vipra/util/Config.java
index 95f77ab8..4b3a78de 100644
--- a/vipra-util/src/main/java/de/vipra/util/Config.java
+++ b/vipra-util/src/main/java/de/vipra/util/Config.java
@@ -40,13 +40,13 @@ public class Config {
 	public String databaseName = Constants.DB_NAME;
 
 	@ConfigKey("tm.processor")
-	public Processor processor = Constants.Processor.DEFAULT;
+	public Processor processor = Constants.Processor.DEFAULT();
 
 	@ConfigKey("tm.analyzer")
-	public Analyzer analyzer = Constants.Analyzer.DEFAULT;
+	public Analyzer analyzer = Constants.Analyzer.DEFAULT();
 
 	@ConfigKey("tm.windowresolution")
-	public WindowResolution windowResolution = Constants.WindowResolution.DEFAULT;
+	public WindowResolution windowResolution = Constants.WindowResolution.DEFAULT();
 
 	@ConfigKey("tm.saveallwords")
 	public boolean saveAllWords = Constants.SAVE_ALL_WORDS;
diff --git a/vipra-util/src/main/java/de/vipra/util/Constants.java b/vipra-util/src/main/java/de/vipra/util/Constants.java
index a9b232ed..556a5e84 100644
--- a/vipra-util/src/main/java/de/vipra/util/Constants.java
+++ b/vipra-util/src/main/java/de/vipra/util/Constants.java
@@ -205,8 +205,7 @@ public class Constants {
 	 * The text processors available, including the default text processor
 	 */
 	public static enum Processor {
-		CORENLP("corenlp"),
-		DEFAULT(CORENLP);
+		CORENLP("corenlp");
 
 		public final String name;
 
@@ -218,6 +217,10 @@ public class Constants {
 			this.name = def.name;
 		}
 
+		public static Processor DEFAULT() {
+			return CORENLP;
+		}
+
 		public static Processor fromString(String text) {
 			if (text != null) {
 				for (Processor b : Processor.values()) {
@@ -226,7 +229,7 @@ public class Constants {
 					}
 				}
 			}
-			return DEFAULT;
+			return DEFAULT();
 		}
 	}
 
@@ -235,8 +238,7 @@ public class Constants {
 	 */
 	public static enum Analyzer {
 		JGIBB("jgibb"),
-		DYNNMF("dynnmf"),
-		DEFAULT(JGIBB);
+		DYNNMF("dynnmf");
 
 		public final String name;
 
@@ -248,6 +250,10 @@ public class Constants {
 			this.name = def.name;
 		}
 
+		public static Analyzer DEFAULT() {
+			return JGIBB;
+		}
+
 		public static Analyzer fromString(String text) {
 			if (text != null) {
 				for (Analyzer b : Analyzer.values()) {
@@ -256,7 +262,7 @@ public class Constants {
 					}
 				}
 			}
-			return DEFAULT;
+			return DEFAULT();
 		}
 	}
 
@@ -266,8 +272,7 @@ public class Constants {
 	public static enum WindowResolution {
 		MONTHLY("monthly"),
 		QUARTERLY("quarterly"),
-		YEARLY("yearly"),
-		DEFAULT(MONTHLY);
+		YEARLY("yearly");
 
 		public final String name;
 
@@ -279,6 +284,10 @@ public class Constants {
 			this.name = def.name;
 		}
 
+		public static WindowResolution DEFAULT() {
+			return YEARLY;
+		}
+
 		public static WindowResolution fromString(String text) {
 			if (text != null) {
 				for (WindowResolution b : WindowResolution.values()) {
@@ -287,7 +296,7 @@ public class Constants {
 					}
 				}
 			}
-			return DEFAULT;
+			return DEFAULT();
 		}
 	}
 
-- 
GitLab