diff --git a/jgibblda/.settings/org.eclipse.jdt.ui.prefs b/jgibblda/.settings/org.eclipse.jdt.ui.prefs index 5713c654549b40f76104760ab2f6cd031d71f011..67b3835098d95ab9541c4dbdc4cb4c5dd04ea5b5 100644 --- a/jgibblda/.settings/org.eclipse.jdt.ui.prefs +++ b/jgibblda/.settings/org.eclipse.jdt.ui.prefs @@ -1,3 +1,62 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=false +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_functional_interfaces=false +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=false +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=false +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=false +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup.use_type_arguments=false +cleanup_profile=_vipra +cleanup_settings_version=2 eclipse.preferences.version=1 formatter_profile=_vipra formatter_settings_version=12 diff --git a/jgibblda/src/main/java/jgibblda/Constants.java b/jgibblda/src/main/java/jgibblda/Constants.java index 6d1b558ac9fd8a86ade375aa48e27063934a3a31..65fff358f800501ba6760de427e491b0c24f97cc 100644 --- a/jgibblda/src/main/java/jgibblda/Constants.java +++ b/jgibblda/src/main/java/jgibblda/Constants.java @@ -1,9 +1,9 @@ /* * Copyright (C) 2007 by - * + * * Xuan-Hieu Phan hieuxuan@ecei.tohoku.ac.jp or pxhieu@gmail.com Graduate School * of Information Sciences Tohoku University - * + * * Cam-Tu Nguyen ncamtu@gmail.com College of Technology Vietnam National * University, Hanoi * diff --git a/jgibblda/src/main/java/jgibblda/Conversion.java b/jgibblda/src/main/java/jgibblda/Conversion.java index c2bd1d7c39969459e0810d42d2b6f00380c69f3a..ed310f99ed9592acbe8ce8c948d7b2f8a1ace974 100644 --- a/jgibblda/src/main/java/jgibblda/Conversion.java +++ b/jgibblda/src/main/java/jgibblda/Conversion.java @@ -1,9 +1,9 @@ /* * Copyright (C) 2007 by - * + * * Xuan-Hieu Phan hieuxuan@ecei.tohoku.ac.jp or pxhieu@gmail.com Graduate School * of Information Sciences Tohoku University - * + * * Cam-Tu Nguyen ncamtu@gmail.com College of Technology Vietnam National * University, Hanoi * @@ -24,8 +24,8 @@ package jgibblda; public class Conversion { - public static String ZeroPad(int number, int width) { - StringBuffer result = new StringBuffer(""); + public static String ZeroPad(final int number, final int width) { + final StringBuffer result = new StringBuffer(""); for (int i = 0; i < width - Integer.toString(number).length(); i++) result.append("0"); result.append(Integer.toString(number)); diff --git a/jgibblda/src/main/java/jgibblda/Dictionary.java b/jgibblda/src/main/java/jgibblda/Dictionary.java index 90972c93b834008a6f5817d0baf39b8bec7949fe..335565dd190be4e05eefa2fac10a2df77ab03c54 100644 --- a/jgibblda/src/main/java/jgibblda/Dictionary.java +++ b/jgibblda/src/main/java/jgibblda/Dictionary.java @@ -1,9 +1,9 @@ /* * Copyright (C) 2007 by - * + * * Xuan-Hieu Phan hieuxuan@ecei.tohoku.ac.jp or pxhieu@gmail.com Graduate School * of Information Sciences Tohoku University - * + * * Cam-Tu Nguyen ncamtu@gmail.com College of Technology Vietnam National * University, Hanoi * @@ -56,11 +56,11 @@ public class Dictionary { // get/set methods // --------------------------------------------------- - public String getWord(int id) { + public String getWord(final int id) { return id2word.get(id); } - public Integer getID(String word) { + public Integer getID(final String word) { return word2id.get(word); } @@ -70,11 +70,11 @@ public class Dictionary { /** * check if this dictionary contains a specified word */ - public boolean contains(String word) { + public boolean contains(final String word) { return word2id.containsKey(word); } - public boolean contains(int id) { + public boolean contains(final int id) { return id2word.containsKey(id); } @@ -84,9 +84,9 @@ public class Dictionary { /** * add a word into this dictionary return the corresponding id */ - public int addWord(String word) { + public int addWord(final String word) { if (!contains(word)) { - int id = word2id.size(); + final int id = word2id.size(); word2id.put(word, id); id2word.put(id, word); @@ -102,27 +102,27 @@ public class Dictionary { /** * read dictionary from file */ - public boolean readWordMap(String wordMapFile) { + public boolean readWordMap(final String wordMapFile) { try { - BufferedReader reader = new BufferedReader( + final BufferedReader reader = new BufferedReader( new InputStreamReader(new FileInputStream(wordMapFile), "UTF-8")); String line; // read the number of words line = reader.readLine(); - int nwords = Integer.parseInt(line); + final int nwords = Integer.parseInt(line); // read map for (int i = 0; i < nwords; ++i) { line = reader.readLine(); - StringTokenizer tknr = new StringTokenizer(line, " \t\n\r"); + final StringTokenizer tknr = new StringTokenizer(line, " \t\n\r"); if (tknr.countTokens() != 2) continue; - String word = tknr.nextToken(); - String id = tknr.nextToken(); - int intID = Integer.parseInt(id); + final String word = tknr.nextToken(); + final String id = tknr.nextToken(); + final int intID = Integer.parseInt(id); id2word.put(intID, word); word2id.put(word, intID); @@ -130,33 +130,33 @@ public class Dictionary { reader.close(); return true; - } catch (Exception e) { + } catch (final Exception e) { log.error("Error while reading dictionary:" + e.getMessage()); e.printStackTrace(); return false; } } - public boolean writeWordMap(String wordMapFile) { + public boolean writeWordMap(final String wordMapFile) { try { - BufferedWriter writer = new BufferedWriter( + final BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(new FileOutputStream(wordMapFile), "UTF-8")); // write number of words writer.write(word2id.size() + "\n"); // write word to id - Iterator<String> it = word2id.keySet().iterator(); + final Iterator<String> it = word2id.keySet().iterator(); while (it.hasNext()) { - String key = it.next(); - Integer value = word2id.get(key); + final String key = it.next(); + final Integer value = word2id.get(key); writer.write(key + " " + value + "\n"); } writer.close(); return true; - } catch (Exception e) { + } catch (final Exception e) { log.error("Error while writing word map " + e.getMessage()); e.printStackTrace(); return false; diff --git a/jgibblda/src/main/java/jgibblda/Document.java b/jgibblda/src/main/java/jgibblda/Document.java index bc5ce78c4473cc6309c996bea9e8467b2f23780e..cb87aed08e12bddd5ea1223c378b55bd44bc96da 100644 --- a/jgibblda/src/main/java/jgibblda/Document.java +++ b/jgibblda/src/main/java/jgibblda/Document.java @@ -1,9 +1,9 @@ /* * Copyright (C) 2007 by - * + * * Xuan-Hieu Phan hieuxuan@ecei.tohoku.ac.jp or pxhieu@gmail.com Graduate School * of Information Sciences Tohoku University - * + * * Cam-Tu Nguyen ncamtu@gmail.com College of Technology Vietnam National * University, Hanoi * @@ -43,13 +43,13 @@ public class Document { length = 0; } - public Document(int length) { + public Document(final int length) { this.length = length; rawStr = ""; words = new int[length]; } - public Document(int length, int[] words) { + public Document(final int length, final int[] words) { this.length = length; rawStr = ""; @@ -59,7 +59,7 @@ public class Document { } } - public Document(int length, int[] words, String rawStr) { + public Document(final int length, final int[] words, final String rawStr) { this.length = length; this.rawStr = rawStr; @@ -69,7 +69,7 @@ public class Document { } } - public Document(Vector<Integer> doc) { + public Document(final Vector<Integer> doc) { this.length = doc.size(); rawStr = ""; this.words = new int[length]; @@ -78,7 +78,7 @@ public class Document { } } - public Document(Vector<Integer> doc, String rawStr) { + public Document(final Vector<Integer> doc, final String rawStr) { this.length = doc.size(); this.rawStr = rawStr; this.words = new int[length]; diff --git a/jgibblda/src/main/java/jgibblda/Estimator.java b/jgibblda/src/main/java/jgibblda/Estimator.java index be89f40aa2975b3dc77f8a53d544cc7bad527fb7..8968c09784eae25d47f73b7f34973c7e4274fda1 100644 --- a/jgibblda/src/main/java/jgibblda/Estimator.java +++ b/jgibblda/src/main/java/jgibblda/Estimator.java @@ -1,9 +1,9 @@ /* * Copyright (C) 2007 by - * + * * Xuan-Hieu Phan hieuxuan@ecei.tohoku.ac.jp or pxhieu@gmail.com Graduate School * of Information Sciences Tohoku University - * + * * Cam-Tu Nguyen ncamtu@gmail.com College of Technology Vietnam National * University, Hanoi * @@ -36,7 +36,7 @@ public class Estimator { protected Model trnModel; LDACmdOption option; - public boolean init(LDACmdOption option) { + public boolean init(final LDACmdOption option) { this.option = option; trnModel = new Model(); @@ -55,7 +55,7 @@ public class Estimator { public void estimate() { log.info("sampling " + trnModel.niters + " iterations"); - int lastIter = trnModel.liter; + final int lastIter = trnModel.liter; for (trnModel.liter = lastIter + 1; trnModel.liter < trnModel.niters + lastIter; trnModel.liter++) { log.info("iteration " + trnModel.liter); @@ -64,7 +64,7 @@ public class Estimator { for (int n = 0; n < trnModel.data.docs[m].length; n++) { // z_i = z[m][n] // sample from p(z_i|z_-i, w) - int topic = sampling(m, n); + final int topic = sampling(m, n); trnModel.z[m].set(n, topic); } // end for each word } // end for each document @@ -88,25 +88,25 @@ public class Estimator { /** * Do sampling - * + * * @param m * document number * @param n * word number * @return topic id */ - public int sampling(int m, int n) { + public int sampling(final int m, final int n) { // remove z_i from the count variable int topic = trnModel.z[m].get(n); - int w = trnModel.data.docs[m].words[n]; + final int w = trnModel.data.docs[m].words[n]; trnModel.nw[w][topic] -= 1; trnModel.nd[m][topic] -= 1; trnModel.nwsum[topic] -= 1; trnModel.ndsum[m] -= 1; - double Vbeta = trnModel.V * trnModel.beta; - double Kalpha = trnModel.K * trnModel.alpha; + final double Vbeta = trnModel.V * trnModel.beta; + final double Kalpha = trnModel.K * trnModel.alpha; // do multinominal sampling via cumulative method for (int k = 0; k < trnModel.K; k++) { @@ -120,7 +120,7 @@ public class Estimator { } // scaled sample because of unnormalized p[] - double u = Math.random() * trnModel.p[trnModel.K - 1]; + final double u = Math.random() * trnModel.p[trnModel.K - 1]; for (topic = 0; topic < trnModel.K; topic++) { if (trnModel.p[topic] > u) // sample topic w.r.t distribution p diff --git a/jgibblda/src/main/java/jgibblda/Inferencer.java b/jgibblda/src/main/java/jgibblda/Inferencer.java index 2d3fb1be8fa348392cbed7a8d82b2cb2b40562be..5108749dbb20812e8b3137285033ac0de1e16468 100644 --- a/jgibblda/src/main/java/jgibblda/Inferencer.java +++ b/jgibblda/src/main/java/jgibblda/Inferencer.java @@ -1,9 +1,9 @@ /* * Copyright (C) 2007 by - * + * * Xuan-Hieu Phan hieuxuan@ecei.tohoku.ac.jp or pxhieu@gmail.com Graduate School * of Information Sciences Tohoku University - * + * * Cam-Tu Nguyen ncamtu@gmail.com College of Technology Vietnam National * University, Hanoi * @@ -41,7 +41,7 @@ public class Inferencer { // ----------------------------------------------------- // Init method // ----------------------------------------------------- - public boolean init(LDACmdOption option) { + public boolean init(final LDACmdOption option) { this.option = option; trnModel = new Model(); @@ -56,8 +56,8 @@ public class Inferencer { } // inference new model ~ getting data from a specified dataset - public Model inference(LDADataset newData) { - Model newModel = new Model(); + public Model inference(final LDADataset newData) { + final Model newModel = new Model(); newModel.initNewModel(option, newData, trnModel); this.newModel = newModel; @@ -70,7 +70,7 @@ public class Inferencer { for (int n = 0; n < newModel.data.docs[m].length; n++) { // (newz_i = newz[m][n] // sample from p(z_i|z_-1,w) - int topic = infSampling(m, n); + final int topic = infSampling(m, n); newModel.z[m].set(n, topic); } } // end foreach new doc @@ -85,8 +85,8 @@ public class Inferencer { return this.newModel; } - public Model inference(String[] strs) { - LDADataset dataset = LDADataset.readDataSet(strs, globalDict); + public Model inference(final String[] strs) { + final LDADataset dataset = LDADataset.readDataSet(strs, globalDict); return inference(dataset); } @@ -106,7 +106,7 @@ public class Inferencer { for (int n = 0; n < newModel.data.docs[m].length; n++) { // (newz_i = newz[m][n] // sample from p(z_i|z_-1,w) - int topic = infSampling(m, n); + final int topic = infSampling(m, n); newModel.z[m].set(n, topic); } } // end foreach new doc @@ -126,18 +126,18 @@ public class Inferencer { /** * do sampling for inference m: document number n: word number? */ - protected int infSampling(int m, int n) { + protected int infSampling(final int m, final int n) { // remove z_i from the count variables int topic = newModel.z[m].get(n); - int _w = newModel.data.docs[m].words[n]; - int w = newModel.data.lid2gid.get(_w); + final int _w = newModel.data.docs[m].words[n]; + final int w = newModel.data.lid2gid.get(_w); newModel.nw[_w][topic] -= 1; newModel.nd[m][topic] -= 1; newModel.nwsum[topic] -= 1; newModel.ndsum[m] -= 1; - double Vbeta = trnModel.V * newModel.beta; - double Kalpha = trnModel.K * newModel.alpha; + final double Vbeta = trnModel.V * newModel.beta; + final double Kalpha = trnModel.K * newModel.alpha; // do multinomial sampling via cummulative method for (int k = 0; k < newModel.K; k++) { @@ -152,7 +152,7 @@ public class Inferencer { } // scaled sample because of unnormalized p[] - double u = Math.random() * newModel.p[newModel.K - 1]; + final double u = Math.random() * newModel.p[newModel.K - 1]; for (topic = 0; topic < newModel.K; topic++) { if (newModel.p[topic] > u) @@ -180,7 +180,7 @@ public class Inferencer { protected void computeNewPhi() { for (int k = 0; k < newModel.K; k++) { for (int _w = 0; _w < newModel.V; _w++) { - Integer id = newModel.data.lid2gid.get(_w); + final Integer id = newModel.data.lid2gid.get(_w); if (id != null) { newModel.phi[k][_w] = (trnModel.nw[id][k] + newModel.nw[_w][k] + newModel.beta) diff --git a/jgibblda/src/main/java/jgibblda/LDA.java b/jgibblda/src/main/java/jgibblda/LDA.java index 808b7e27d168f42b429f76ebf3f41636062c3da3..111ab000a34e447b0fbf981259125fb532024d2e 100644 --- a/jgibblda/src/main/java/jgibblda/LDA.java +++ b/jgibblda/src/main/java/jgibblda/LDA.java @@ -1,9 +1,9 @@ /* * Copyright (C) 2007 by - * + * * Xuan-Hieu Phan hieuxuan@ecei.tohoku.ac.jp or pxhieu@gmail.com Graduate School * of Information Sciences Tohoku University - * + * * Cam-Tu Nguyen ncamtu@gmail.com College of Technology Vietnam National * University, Hanoi * @@ -32,9 +32,9 @@ public class LDA { public static final Logger log = LoggerFactory.getLogger(LDA.class); - public static void main(String args[]) { - LDACmdOption option = new LDACmdOption(); - CmdLineParser parser = new CmdLineParser(option); + public static void main(final String args[]) { + final LDACmdOption option = new LDACmdOption(); + final CmdLineParser parser = new CmdLineParser(option); try { if (args.length == 0) { @@ -45,14 +45,14 @@ public class LDA { parser.parseArgument(args); if (option.est || option.estc) { - Estimator estimator = new Estimator(); + final Estimator estimator = new Estimator(); estimator.init(option); estimator.estimate(); } else if (option.inf) { - Inferencer inferencer = new Inferencer(); + final Inferencer inferencer = new Inferencer(); inferencer.init(option); - Model newModel = inferencer.inference(); + final Model newModel = inferencer.inference(); for (int i = 0; i < newModel.phi.length; ++i) { // phi: K * V @@ -62,18 +62,18 @@ public class LDA { } } } - } catch (CmdLineException cle) { + } catch (final CmdLineException cle) { log.info("Command line error: " + cle.getMessage()); showHelp(parser); return; - } catch (Exception e) { + } catch (final Exception e) { log.info("Error in main: " + e.getMessage()); e.printStackTrace(); return; } } - public static void showHelp(CmdLineParser parser) { + public static void showHelp(final CmdLineParser parser) { log.info("LDA [options ...] [arguments...]"); parser.printUsage(System.out); } diff --git a/jgibblda/src/main/java/jgibblda/LDADataset.java b/jgibblda/src/main/java/jgibblda/LDADataset.java index 7b11caa8595207884c2033ceee3b995b1a579436..f03d417a101e56ac0c14f8adf2419b62eb59b9f3 100644 --- a/jgibblda/src/main/java/jgibblda/LDADataset.java +++ b/jgibblda/src/main/java/jgibblda/LDADataset.java @@ -1,9 +1,9 @@ /* * Copyright (C) 2007 by - * + * * Xuan-Hieu Phan hieuxuan@ecei.tohoku.ac.jp or pxhieu@gmail.com Graduate School * of Information Sciences Tohoku University - * + * * Cam-Tu Nguyen ncamtu@gmail.com College of Technology Vietnam National * University, Hanoi * @@ -68,7 +68,7 @@ public class LDADataset { lid2gid = null; } - public LDADataset(int M) { + public LDADataset(final int M) { localDict = new Dictionary(); this.M = M; this.V = 0; @@ -78,7 +78,7 @@ public class LDADataset { lid2gid = null; } - public LDADataset(int M, Dictionary globalDict) { + public LDADataset(final int M, final Dictionary globalDict) { localDict = new Dictionary(); this.M = M; this.V = 0; @@ -94,13 +94,13 @@ public class LDADataset { /** * set the document at the index idx if idx is greater than 0 and less than * M - * + * * @param doc * document to be set * @param idx * index in the document array */ - public void setDoc(Document doc, int idx) { + public void setDoc(final Document doc, final int idx) { if (0 <= idx && idx < M) { docs[idx] = doc; } @@ -109,19 +109,19 @@ public class LDADataset { /** * set the document at the index idx if idx is greater than 0 and less than * M - * + * * @param str * string contains doc * @param idx * index in the document array */ - public void setDoc(String str, int idx) { + public void setDoc(final String str, final int idx) { if (0 <= idx && idx < M) { - String[] words = str.split("[ \\t\\n]"); + final String[] words = str.split("[ \\t\\n]"); - Vector<Integer> ids = new Vector<Integer>(); + final Vector<Integer> ids = new Vector<Integer>(); - for (String word : words) { + for (final String word : words) { int _id = localDict.word2id.size(); if (localDict.contains(word)) @@ -129,7 +129,7 @@ public class LDADataset { if (globalDict != null) { // get the global id - Integer id = globalDict.getID(word); + final Integer id = globalDict.getID(word); if (id != null) { localDict.addWord(word); @@ -145,7 +145,7 @@ public class LDADataset { } } - Document doc = new Document(ids, str); + final Document doc = new Document(ids, str); docs[idx] = doc; V = localDict.word2id.size(); } @@ -156,18 +156,19 @@ public class LDADataset { /** * read a dataset from a stream, create new dictionary - * + * * @return dataset if success and null otherwise */ - public static LDADataset readDataSet(String filename) { + public static LDADataset readDataSet(final String filename) { try { - BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filename), "UTF-8")); + final BufferedReader reader = new BufferedReader( + new InputStreamReader(new FileInputStream(filename), "UTF-8")); - LDADataset data = readDataSet(reader); + final LDADataset data = readDataSet(reader); reader.close(); return data; - } catch (Exception e) { + } catch (final Exception e) { log.error("Read Dataset Error: " + e.getMessage()); e.printStackTrace(); return null; @@ -176,21 +177,22 @@ public class LDADataset { /** * read a dataset from a file with a preknown vocabulary - * + * * @param filename * file from which we read dataset * @param dict * the dictionary * @return dataset if success and null otherwise */ - public static LDADataset readDataSet(String filename, Dictionary dict) { + public static LDADataset readDataSet(final String filename, final Dictionary dict) { try { - BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filename), "UTF-8")); - LDADataset data = readDataSet(reader, dict); + final BufferedReader reader = new BufferedReader( + new InputStreamReader(new FileInputStream(filename), "UTF-8")); + final LDADataset data = readDataSet(reader, dict); reader.close(); return data; - } catch (Exception e) { + } catch (final Exception e) { log.error("Read Dataset Error: " + e.getMessage()); e.printStackTrace(); return null; @@ -199,39 +201,39 @@ public class LDADataset { /** * read a dataset from a stream, create new dictionary - * + * * @return dataset if success and null otherwise */ - public static LDADataset readDataSet(BufferedReader reader) { + public static LDADataset readDataSet(final BufferedReader reader) { return readDataSet(reader, null); } /** * read a dataset from a stream with respect to a specified dictionary - * + * * @param reader * stream from which we read dataset * @param dict * the dictionary * @return dataset if success and null otherwise */ - public static LDADataset readDataSet(BufferedReader reader, Dictionary dict) { + public static LDADataset readDataSet(final BufferedReader reader, final Dictionary dict) { try { - List<String> lines = new ArrayList<>(); + final List<String> lines = new ArrayList<>(); String line; while ((line = reader.readLine()) != null) { lines.add(line); } - LDADataset data = new LDADataset(lines.size(), dict); + final LDADataset data = new LDADataset(lines.size(), dict); for (int i = 0; i < lines.size(); i++) { data.setDoc(lines.get(i), i); } return data; - } catch (Exception e) { + } catch (final Exception e) { log.error("Read Dataset Error: " + e.getMessage()); e.printStackTrace(); return null; @@ -240,14 +242,14 @@ public class LDADataset { /** * read a dataset from a string, create new dictionary - * + * * @param str * String from which we get the dataset, documents are seperated * by newline character * @return dataset if success and null otherwise */ - public static LDADataset readDataSet(String[] strs) { - LDADataset data = new LDADataset(strs.length); + public static LDADataset readDataSet(final String[] strs) { + final LDADataset data = new LDADataset(strs.length); for (int i = 0; i < strs.length; ++i) { data.setDoc(strs[i], i); @@ -257,7 +259,7 @@ public class LDADataset { /** * read a dataset from a string with respect to a specified dictionary - * + * * @param str * String from which we get the dataset, documents are seperated * by newline character @@ -265,8 +267,8 @@ public class LDADataset { * the dictionary * @return dataset if success and null otherwise */ - public static LDADataset readDataSet(String[] strs, Dictionary dict) { - LDADataset data = new LDADataset(strs.length, dict); + public static LDADataset readDataSet(final String[] strs, final Dictionary dict) { + final LDADataset data = new LDADataset(strs.length, dict); for (int i = 0; i < strs.length; ++i) { data.setDoc(strs[i], i); diff --git a/jgibblda/src/main/java/jgibblda/Model.java b/jgibblda/src/main/java/jgibblda/Model.java index 4303d74a33855a18a67352801b6804397f51b752..fbdb5b9bfde95d94b0903b8b9e0b99bd7fe6e3a3 100644 --- a/jgibblda/src/main/java/jgibblda/Model.java +++ b/jgibblda/src/main/java/jgibblda/Model.java @@ -1,9 +1,9 @@ /* * Copyright (C) 2007 by - * + * * Xuan-Hieu Phan hieuxuan@ecei.tohoku.ac.jp or pxhieu@gmail.com Graduate School * of Information Sciences Tohoku University - * + * * Cam-Tu Nguyen ncamtu@gmail.com College of Technology Vietnam National * University, Hanoi * @@ -149,21 +149,21 @@ public class Model { /** * read other file to get parameters */ - protected boolean readOthersFile(String otherFile) { + protected boolean readOthersFile(final String otherFile) { // open file <model>.others to read: try { - BufferedReader reader = new BufferedReader(new FileReader(otherFile)); + final BufferedReader reader = new BufferedReader(new FileReader(otherFile)); String line; while ((line = reader.readLine()) != null) { - StringTokenizer tknr = new StringTokenizer(line, "= \t\r\n"); + final StringTokenizer tknr = new StringTokenizer(line, "= \t\r\n"); - int count = tknr.countTokens(); + final int count = tknr.countTokens(); if (count != 2) continue; - String optstr = tknr.nextToken(); - String optval = tknr.nextToken(); + final String optstr = tknr.nextToken(); + final String optval = tknr.nextToken(); if (optstr.equalsIgnoreCase("alpha")) { alpha = Double.parseDouble(optval); @@ -183,7 +183,7 @@ public class Model { } reader.close(); - } catch (Exception e) { + } catch (final Exception e) { log.error("Error while reading other file:" + e.getMessage()); e.printStackTrace(); return false; @@ -192,7 +192,7 @@ public class Model { } @SuppressWarnings("unchecked") - protected boolean readTAssignFile(String tassignFile) { + protected boolean readTAssignFile(final String tassignFile) { BufferedReader reader = null; try { int i, j; @@ -204,17 +204,17 @@ public class Model { data.V = V; for (i = 0; i < M; i++) { line = reader.readLine(); - StringTokenizer tknr = new StringTokenizer(line, " \t\r\n"); + final StringTokenizer tknr = new StringTokenizer(line, " \t\r\n"); - int length = tknr.countTokens(); + final int length = tknr.countTokens(); - Vector<Integer> words = new Vector<Integer>(); - Vector<Integer> topics = new Vector<Integer>(); + final Vector<Integer> words = new Vector<Integer>(); + final Vector<Integer> topics = new Vector<Integer>(); for (j = 0; j < length; j++) { - String token = tknr.nextToken(); + final String token = tknr.nextToken(); - StringTokenizer tknr2 = new StringTokenizer(token, ":"); + final StringTokenizer tknr2 = new StringTokenizer(token, ":"); if (tknr2.countTokens() != 2) { log.warn("Invalid word-topic assignment line\n"); return false; @@ -225,7 +225,7 @@ public class Model { } // end for each topic assignment // allocate and add new document to the corpus - Document doc = new Document(words); + final Document doc = new Document(words); data.setDoc(doc, i); // assign values for z @@ -235,7 +235,7 @@ public class Model { } } // end for each doc - } catch (Exception e) { + } catch (final Exception e) { log.error("Error while loading model: " + e.getMessage()); e.printStackTrace(); return false; @@ -243,7 +243,7 @@ public class Model { if (reader != null) try { reader.close(); - } catch (IOException e) {} + } catch (final IOException e) {} } return true; } @@ -259,7 +259,7 @@ public class Model { return false; // read dictionary - Dictionary dict = new Dictionary(); + final Dictionary dict = new Dictionary(); if (!dict.readWordMap(dir + File.separator + wordMapFile)) return false; @@ -271,11 +271,11 @@ public class Model { /** * Save word-topic assignments for this model */ - public boolean saveModelTAssign(String filename) { + public boolean saveModelTAssign(final String filename) { int i, j; try { - BufferedWriter writer = new BufferedWriter(new FileWriter(filename)); + final BufferedWriter writer = new BufferedWriter(new FileWriter(filename)); // write docs with topic assignments for words for (i = 0; i < data.M; i++) { @@ -286,7 +286,7 @@ public class Model { } writer.close(); - } catch (Exception e) { + } catch (final Exception e) { log.error("Error while saving model tassign: " + e.getMessage()); e.printStackTrace(); return false; @@ -297,9 +297,9 @@ public class Model { /** * Save theta (topic distribution) for this model */ - public boolean saveModelTheta(String filename) { + public boolean saveModelTheta(final String filename) { try { - BufferedWriter writer = new BufferedWriter(new FileWriter(filename)); + final BufferedWriter writer = new BufferedWriter(new FileWriter(filename)); for (int i = 0; i < M; i++) { for (int j = 0; j < K; j++) { writer.write(theta[i][j] + " "); @@ -307,7 +307,7 @@ public class Model { writer.write("\n"); } writer.close(); - } catch (Exception e) { + } catch (final Exception e) { log.error("Error while saving topic distribution file for this model: " + e.getMessage()); e.printStackTrace(); return false; @@ -319,9 +319,9 @@ public class Model { * Save word-topic distribution */ - public boolean saveModelPhi(String filename) { + public boolean saveModelPhi(final String filename) { try { - BufferedWriter writer = new BufferedWriter(new FileWriter(filename)); + final BufferedWriter writer = new BufferedWriter(new FileWriter(filename)); for (int i = 0; i < K; i++) { for (int j = 0; j < V; j++) { @@ -330,7 +330,7 @@ public class Model { writer.write("\n"); } writer.close(); - } catch (Exception e) { + } catch (final Exception e) { log.error("Error while saving word-topic distribution:" + e.getMessage()); e.printStackTrace(); return false; @@ -341,9 +341,9 @@ public class Model { /** * Save other information of this model */ - public boolean saveModelOthers(String filename) { + public boolean saveModelOthers(final String filename) { try { - BufferedWriter writer = new BufferedWriter(new FileWriter(filename)); + final BufferedWriter writer = new BufferedWriter(new FileWriter(filename)); writer.write("alpha=" + alpha + "\n"); writer.write("beta=" + beta + "\n"); @@ -353,7 +353,7 @@ public class Model { writer.write("liters=" + liter + "\n"); writer.close(); - } catch (Exception e) { + } catch (final Exception e) { log.error("Error while saving model others:" + e.getMessage()); e.printStackTrace(); return false; @@ -364,18 +364,19 @@ public class Model { /** * Save model the most likely words for each topic */ - public boolean saveModelTwords(String filename) { + public boolean saveModelTwords(final String filename) { try { - BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename), "UTF-8")); + final BufferedWriter writer = new BufferedWriter( + new OutputStreamWriter(new FileOutputStream(filename), "UTF-8")); if (twords > V) { twords = V; } for (int k = 0; k < K; k++) { - List<Pair> wordsProbsList = new ArrayList<Pair>(); + final List<Pair> wordsProbsList = new ArrayList<Pair>(); for (int w = 0; w < V; w++) { - Pair p = new Pair(w, phi[k][w], false); + final Pair p = new Pair(w, phi[k][w], false); wordsProbsList.add(p); } // end foreach word @@ -386,7 +387,7 @@ public class Model { for (int i = 0; i < twords; i++) { if (data.localDict.contains((Integer) wordsProbsList.get(i).first)) { - String word = data.localDict.getWord((Integer) wordsProbsList.get(i).first); + final String word = data.localDict.getWord((Integer) wordsProbsList.get(i).first); writer.write("\t" + word + " " + wordsProbsList.get(i).second + "\n"); } @@ -394,7 +395,7 @@ public class Model { } // end foreach topic writer.close(); - } catch (Exception e) { + } catch (final Exception e) { log.error("Error while saving model twords: " + e.getMessage()); e.printStackTrace(); return false; @@ -405,7 +406,7 @@ public class Model { /** * Save model */ - public boolean saveModel(String modelName) { + public boolean saveModel(final String modelName) { if (!saveModelTAssign(dir + File.separator + modelName + tassignSuffix)) { return false; } @@ -435,7 +436,7 @@ public class Model { /** * initialize the model */ - protected boolean init(LDACmdOption option) { + protected boolean init(final LDACmdOption option) { if (option == null) return false; @@ -466,7 +467,7 @@ public class Model { * Init parameters for estimation */ @SuppressWarnings("unchecked") - public boolean initNewModel(LDACmdOption option) { + public boolean initNewModel(final LDACmdOption option) { if (!init(option)) return false; @@ -515,12 +516,12 @@ public class Model { z = new Vector[M]; for (m = 0; m < data.M; m++) { - int N = data.docs[m].length; + final int N = data.docs[m].length; z[m] = new Vector<Integer>(); // initilize for z for (n = 0; n < N; n++) { - int topic = (int) Math.floor(Math.random() * K); + final int topic = (int) Math.floor(Math.random() * K); z[m].add(topic); // number of instances of word assigned to topic j @@ -542,12 +543,12 @@ public class Model { /** * Init parameters for inference - * + * * @param newData * DataSet for which we do inference */ @SuppressWarnings("unchecked") - public boolean initNewModel(LDACmdOption option, LDADataset newData, Model trnModel) { + public boolean initNewModel(final LDACmdOption option, final LDADataset newData, final Model trnModel) { if (!init(option)) return false; @@ -600,12 +601,12 @@ public class Model { z = new Vector[M]; for (m = 0; m < data.M; m++) { - int N = data.docs[m].length; + final int N = data.docs[m].length; z[m] = new Vector<Integer>(); // initilize for z for (n = 0; n < N; n++) { - int topic = (int) Math.floor(Math.random() * K); + final int topic = (int) Math.floor(Math.random() * K); z[m].add(topic); // number of instances of word assigned to topic j @@ -628,11 +629,11 @@ public class Model { /** * Init parameters for inference reading new dataset from file */ - public boolean initNewModel(LDACmdOption option, Model trnModel) { + public boolean initNewModel(final LDACmdOption option, final Model trnModel) { if (!init(option)) return false; - LDADataset dataset = LDADataset.readDataSet(dir + File.separator + dfile, trnModel.data.localDict); + final LDADataset dataset = LDADataset.readDataSet(dir + File.separator + dfile, trnModel.data.localDict); if (dataset == null) { log.error("Fail to read dataset!\n"); return false; @@ -644,7 +645,7 @@ public class Model { /** * init parameter for continue estimating or for later inference */ - public boolean initEstimatedModel(LDACmdOption option) { + public boolean initEstimatedModel(final LDACmdOption option) { if (!init(option)) return false; @@ -689,12 +690,12 @@ public class Model { } for (m = 0; m < data.M; m++) { - int N = data.docs[m].length; + final int N = data.docs[m].length; // assign values for nw, nd, nwsum, and ndsum for (n = 0; n < N; n++) { w = data.docs[m].words[n]; - int topic = (Integer) z[m].get(n); + final int topic = z[m].get(n); // number of instances of word i assigned to topic j nw[w][topic] += 1; diff --git a/jgibblda/src/main/java/jgibblda/Pair.java b/jgibblda/src/main/java/jgibblda/Pair.java index 7753f6597a558e474ba44defc33ebb0705154a9e..887b90694bf140315407c44e1416beb5798d6b2c 100644 --- a/jgibblda/src/main/java/jgibblda/Pair.java +++ b/jgibblda/src/main/java/jgibblda/Pair.java @@ -1,9 +1,9 @@ /* * Copyright (C) 2007 by - * + * * Xuan-Hieu Phan hieuxuan@ecei.tohoku.ac.jp or pxhieu@gmail.com Graduate School * of Information Sciences Tohoku University - * + * * Cam-Tu Nguyen ncamtu@gmail.com College of Technology Vietnam National * University, Hanoi * @@ -29,19 +29,20 @@ public class Pair implements Comparable<Pair> { public Comparable second; public static boolean naturalOrder = false; - public Pair(Object k, Comparable v) { + public Pair(final Object k, final Comparable v) { first = k; second = v; } - public Pair(Object k, Comparable v, boolean naturalOrder) { + public Pair(final Object k, final Comparable v, final boolean naturalOrder) { first = k; second = v; Pair.naturalOrder = naturalOrder; } + @Override @SuppressWarnings("unchecked") - public int compareTo(Pair p) { + public int compareTo(final Pair p) { if (naturalOrder) return this.second.compareTo(p.second); else diff --git a/vipra-backend/.settings/org.eclipse.jdt.ui.prefs b/vipra-backend/.settings/org.eclipse.jdt.ui.prefs index 5713c654549b40f76104760ab2f6cd031d71f011..67b3835098d95ab9541c4dbdc4cb4c5dd04ea5b5 100644 --- a/vipra-backend/.settings/org.eclipse.jdt.ui.prefs +++ b/vipra-backend/.settings/org.eclipse.jdt.ui.prefs @@ -1,3 +1,62 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=false +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_functional_interfaces=false +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=false +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=false +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=false +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup.use_type_arguments=false +cleanup_profile=_vipra +cleanup_settings_version=2 eclipse.preferences.version=1 formatter_profile=_vipra formatter_settings_version=12 diff --git a/vipra-backend/src/main/java/de/vipra/rest/model/APIError.java b/vipra-backend/src/main/java/de/vipra/rest/model/APIError.java index 2a3714b4dd05085370f4648d2edb324fc3bb05c9..b4a94eeb1a7f0d446ac7dd35a85592f10f37c006 100644 --- a/vipra-backend/src/main/java/de/vipra/rest/model/APIError.java +++ b/vipra-backend/src/main/java/de/vipra/rest/model/APIError.java @@ -11,14 +11,14 @@ public class APIError { public APIError() {} - public APIError(String status, String code, String title, String detail) { + public APIError(final String status, final String code, final String title, final String detail) { this.status = status; this.code = code; this.title = title; this.detail = detail; } - public APIError(Status status, String title, String detail) { + public APIError(final Status status, final String title, final String detail) { this(Integer.toString(status.getStatusCode()), status.getReasonPhrase(), title, detail); } @@ -26,7 +26,7 @@ public class APIError { return status; } - public void setStatus(String status) { + public void setStatus(final String status) { this.status = status; } @@ -34,7 +34,7 @@ public class APIError { return code; } - public void setCode(String code) { + public void setCode(final String code) { this.code = code; } @@ -42,7 +42,7 @@ public class APIError { return title; } - public void setTitle(String title) { + public void setTitle(final String title) { this.title = title; } @@ -50,7 +50,7 @@ public class APIError { return detail; } - public void setDetail(String detail) { + public void setDetail(final String detail) { this.detail = detail; } diff --git a/vipra-backend/src/main/java/de/vipra/rest/model/ResponseWrapper.java b/vipra-backend/src/main/java/de/vipra/rest/model/ResponseWrapper.java index c7642be81068e8569301c1e8ba979bf92d765598..d797207bd16913681fe7e0ed2c0c8420f3062b30 100644 --- a/vipra-backend/src/main/java/de/vipra/rest/model/ResponseWrapper.java +++ b/vipra-backend/src/main/java/de/vipra/rest/model/ResponseWrapper.java @@ -22,13 +22,13 @@ public class ResponseWrapper<T> { return errors; } - public void addError(APIError error) { + public void addError(final APIError error) { if (errors == null) errors = new ArrayList<>(); errors.add(error); } - public void addHeader(String name, Object value) { + public void addHeader(final String name, final Object value) { if (headers == null) headers = new HashMap<>(); headers.put("V-" + StringUtils.capitalize(name), value); @@ -38,18 +38,18 @@ public class ResponseWrapper<T> { return errors != null && errors.size() > 0; } - private void addHeaders(ResponseBuilder builder) { + private void addHeaders(final ResponseBuilder builder) { if (headers == null || headers.size() == 0) return; - for (Entry<String, Object> entry : headers.entrySet()) + for (final Entry<String, Object> entry : headers.entrySet()) builder.header(entry.getKey(), entry.getValue()); } /** * Status 200 */ - public Response ok(T data) { - ResponseBuilder builder = Response.ok().entity(data); + public Response ok(final T data) { + final ResponseBuilder builder = Response.ok().entity(data); addHeaders(builder); return builder.build(); } @@ -57,8 +57,8 @@ public class ResponseWrapper<T> { /** * Status 201 */ - public Response created(T data, URI loc) { - ResponseBuilder builder = Response.created(loc).entity(data); + public Response created(final T data, final URI loc) { + final ResponseBuilder builder = Response.created(loc).entity(data); addHeaders(builder); return builder.build(); } @@ -67,7 +67,7 @@ public class ResponseWrapper<T> { * Status 204 */ public Response noContent() { - ResponseBuilder builder = Response.noContent(); + final ResponseBuilder builder = Response.noContent(); addHeaders(builder); return builder.build(); } @@ -76,7 +76,7 @@ public class ResponseWrapper<T> { * Status 400 */ public Response badRequest() { - ResponseBuilder builder = Response.status(Status.BAD_REQUEST).entity(errors); + final ResponseBuilder builder = Response.status(Status.BAD_REQUEST).entity(errors); addHeaders(builder); return builder.build(); } @@ -85,7 +85,7 @@ public class ResponseWrapper<T> { * Status 404 */ public Response notFound() { - ResponseBuilder builder = Response.status(Status.NOT_FOUND).entity(errors); + final ResponseBuilder builder = Response.status(Status.NOT_FOUND).entity(errors); addHeaders(builder); return builder.build(); } @@ -94,7 +94,7 @@ public class ResponseWrapper<T> { * Status 500 */ public Response serverError() { - ResponseBuilder builder = Response.serverError().entity(errors); + final ResponseBuilder builder = Response.serverError().entity(errors); addHeaders(builder); return builder.build(); } diff --git a/vipra-backend/src/main/java/de/vipra/rest/provider/CORSResponseFilter.java b/vipra-backend/src/main/java/de/vipra/rest/provider/CORSResponseFilter.java index ac8cc2e9a107af41095a25abf33755b3c04cb7f3..c93f8553f999e1cce639de3c8df1bbbb9e54ea05 100644 --- a/vipra-backend/src/main/java/de/vipra/rest/provider/CORSResponseFilter.java +++ b/vipra-backend/src/main/java/de/vipra/rest/provider/CORSResponseFilter.java @@ -20,7 +20,8 @@ public class CORSResponseFilter implements ContainerResponseFilter { } @Override - public void filter(ContainerRequestContext request, ContainerResponseContext response) throws IOException { + public void filter(final ContainerRequestContext request, final ContainerResponseContext response) + throws IOException { response.getHeaders().add("Access-Control-Allow-Origin", "*"); response.getHeaders().add("Access-Control-Allow-Headers", "Origin, Content-Type, Accept, Authorization"); response.getHeaders().add("Access-Control-Allow-Credentials", "true"); diff --git a/vipra-backend/src/main/java/de/vipra/rest/provider/ObjectMapperProvider.java b/vipra-backend/src/main/java/de/vipra/rest/provider/ObjectMapperProvider.java index e78b661e6c1c1a1faa024e7d7f865cfa45f31d28..865069cda1dcb99d5f7c08d830efc6b7c09294f4 100644 --- a/vipra-backend/src/main/java/de/vipra/rest/provider/ObjectMapperProvider.java +++ b/vipra-backend/src/main/java/de/vipra/rest/provider/ObjectMapperProvider.java @@ -30,12 +30,12 @@ public class ObjectMapperProvider implements ContextResolver<ObjectMapper> { } @Override - public ObjectMapper getContext(Class<?> type) { + public ObjectMapper getContext(final Class<?> type) { return defaultObjectMapper; } public static ObjectMapper createDefaultMapper() { - SimpleModule module = new SimpleModule(); + final SimpleModule module = new SimpleModule(); module.addSerializer(ObjectId.class, new ObjectIdSerializer()); module.addDeserializer(ObjectId.class, new ObjectIdDeserializer()); diff --git a/vipra-backend/src/main/java/de/vipra/rest/resource/ArticleResource.java b/vipra-backend/src/main/java/de/vipra/rest/resource/ArticleResource.java index 2d93b45e5c945d4ca11ffeb3c9e9bcfc37aa36b4..d25cb8d0b7ede3ea6874b37be48a8ab487c21073 100644 --- a/vipra-backend/src/main/java/de/vipra/rest/resource/ArticleResource.java +++ b/vipra-backend/src/main/java/de/vipra/rest/resource/ArticleResource.java @@ -44,23 +44,24 @@ public class ArticleResource { final MongoService<ArticleFull, ObjectId> dbArticles; - public ArticleResource(@Context ServletContext servletContext) throws ConfigException, IOException { - Config config = Config.getConfig(); + public ArticleResource(@Context final ServletContext servletContext) throws ConfigException, IOException { + final Config config = Config.getConfig(); dbArticles = MongoService.getDatabaseService(config, ArticleFull.class); } @GET @Produces(MediaType.APPLICATION_JSON) - public Response getArticles(@QueryParam("skip") Integer skip, @QueryParam("limit") Integer limit, - @QueryParam("sort") @DefaultValue("date") String sortBy, @QueryParam("fields") String fields, - @QueryParam("query") String query) { - ResponseWrapper<List<ArticleFull>> res = new ResponseWrapper<>(); + public Response getArticles(@QueryParam("skip") final Integer skip, @QueryParam("limit") final Integer limit, + @QueryParam("sort") @DefaultValue("date") final String sortBy, @QueryParam("fields") final String fields, + @QueryParam("query") final String query) { + final ResponseWrapper<List<ArticleFull>> res = new ResponseWrapper<>(); if (res.hasErrors()) return res.badRequest(); try { - List<ArticleFull> articles = dbArticles.getMultiple(skip, limit, sortBy, StringUtils.getFields(fields)); + final List<ArticleFull> articles = dbArticles.getMultiple(skip, limit, sortBy, + StringUtils.getFields(fields)); if ((skip != null && skip > 0) || (limit != null && limit > 0)) res.addHeader("total", dbArticles.count(null)); @@ -68,7 +69,7 @@ public class ArticleResource { res.addHeader("total", articles.size()); return res.ok(articles); - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); res.addError(new APIError(Response.Status.BAD_REQUEST, "Error", e.getMessage())); return res.badRequest(); @@ -79,8 +80,8 @@ public class ArticleResource { @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @Path("{id}") - public Response getArticle(@PathParam("id") String id, @QueryParam("fields") String fields) { - ResponseWrapper<ArticleFull> res = new ResponseWrapper<>(); + public Response getArticle(@PathParam("id") final String id, @QueryParam("fields") final String fields) { + final ResponseWrapper<ArticleFull> res = new ResponseWrapper<>(); if (id == null || id.trim().length() == 0) { res.addError(new APIError(Response.Status.BAD_REQUEST, "ID is empty", String.format(Messages.BAD_REQUEST, "id cannot be empty"))); @@ -90,7 +91,7 @@ public class ArticleResource { ArticleFull article; try { article = dbArticles.getSingle(MongoUtils.objectId(id), false, StringUtils.getFields(fields)); - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); res.addError(new APIError(Response.Status.BAD_REQUEST, "Error", e.getMessage())); return res.badRequest(); @@ -109,10 +110,10 @@ public class ArticleResource { @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public Response createArticle(ArticleFull article) { - ResponseWrapper<ArticleFull> res = new ResponseWrapper<>(); + final ResponseWrapper<ArticleFull> res = new ResponseWrapper<>(); try { article = dbArticles.createSingle(article); - URI newUri = new URL(uri.getAbsolutePath().toURL(), article.getId().toString()).toURI(); + final URI newUri = new URL(uri.getAbsolutePath().toURL(), article.getId().toString()).toURI(); return res.created(article, newUri); } catch (DatabaseException | MalformedURLException | URISyntaxException e) { e.printStackTrace(); @@ -124,18 +125,18 @@ public class ArticleResource { @DELETE @Path("{id}") - public Response deleteArticle(@PathParam("id") String id) { - ResponseWrapper<ArticleFull> res = new ResponseWrapper<>(); + public Response deleteArticle(@PathParam("id") final String id) { + final ResponseWrapper<ArticleFull> res = new ResponseWrapper<>(); long deleted; try { deleted = dbArticles.deleteSingle(MongoUtils.objectId(id)); - } catch (DatabaseException e) { + } catch (final DatabaseException e) { e.printStackTrace(); res.addError(new APIError(Response.Status.INTERNAL_SERVER_ERROR, "item could not be deleted", "item could not be created due to an internal server error")); return res.serverError(); } - int del = deleted > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) deleted; + final int del = deleted > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) deleted; switch (del) { case 0: res.addError(new APIError(Response.Status.NOT_FOUND, "Article not found", @@ -152,13 +153,13 @@ public class ArticleResource { @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("{id}") - public Response replaceArticle(@PathParam("id") String id, ArticleFull article) { - ResponseWrapper<ArticleFull> res = new ResponseWrapper<>(); + public Response replaceArticle(@PathParam("id") final String id, final ArticleFull article) { + final ResponseWrapper<ArticleFull> res = new ResponseWrapper<>(); try { dbArticles.replaceSingle(article); return res.ok(article); - } catch (DatabaseException e) { + } catch (final DatabaseException e) { e.printStackTrace(); res.addError(new APIError(Response.Status.INTERNAL_SERVER_ERROR, "item could not be updated", "item could not be updated due to an internal server error")); diff --git a/vipra-backend/src/main/java/de/vipra/rest/resource/InfoResource.java b/vipra-backend/src/main/java/de/vipra/rest/resource/InfoResource.java index a34bcd54dca65c54622cff90da89cebf83826aac..4aba609f08fd06a70ac5402ba655e0254f950c20 100644 --- a/vipra-backend/src/main/java/de/vipra/rest/resource/InfoResource.java +++ b/vipra-backend/src/main/java/de/vipra/rest/resource/InfoResource.java @@ -33,17 +33,17 @@ public class InfoResource { @GET @Produces(MediaType.APPLICATION_JSON) public Response getInfo() { - ResponseWrapper<NestedMap> res = new ResponseWrapper<>(); - NestedMap info = new NestedMap(); + final ResponseWrapper<NestedMap> res = new ResponseWrapper<>(); + final NestedMap info = new NestedMap(); try { - RuntimeMXBean rb = ManagementFactory.getRuntimeMXBean(); - Runtime rt = Runtime.getRuntime(); - BuildInfo buildInfo = new BuildInfo(); - Config config = Config.getConfig(); - MongoService<Article, ObjectId> dbArticles = MongoService.getDatabaseService(config, Article.class); - MongoService<Topic, ObjectId> dbTopics = MongoService.getDatabaseService(config, Topic.class); - MongoService<Word, String> dbWords = MongoService.getDatabaseService(config, Word.class); + final RuntimeMXBean rb = ManagementFactory.getRuntimeMXBean(); + final Runtime rt = Runtime.getRuntime(); + final BuildInfo buildInfo = new BuildInfo(); + final Config config = Config.getConfig(); + final MongoService<Article, ObjectId> dbArticles = MongoService.getDatabaseService(config, Article.class); + final MongoService<Topic, ObjectId> dbTopics = MongoService.getDatabaseService(config, Topic.class); + final MongoService<Word, String> dbWords = MongoService.getDatabaseService(config, Word.class); // vm info info.put("vm.starttime", rb.getStartTime()); @@ -95,7 +95,7 @@ public class InfoResource { info.put("const.regexchar", Constants.REGEX_SINGLECHAR); info.put("const.excerptlength", Constants.EXCERPT_LENGTH); info.put("const.dateformat", Constants.DATETIME_FORMAT); - } catch (Exception e) { + } catch (final Exception e) { info.put("error", e.getMessage()); } diff --git a/vipra-backend/src/main/java/de/vipra/rest/resource/SearchResource.java b/vipra-backend/src/main/java/de/vipra/rest/resource/SearchResource.java index 314ae1535d608daa4c925d1c3af0165c7e23d222..ab3f0f2ecd7fb39603e6b21d6cfa2a35e373f795 100644 --- a/vipra-backend/src/main/java/de/vipra/rest/resource/SearchResource.java +++ b/vipra-backend/src/main/java/de/vipra/rest/resource/SearchResource.java @@ -41,8 +41,8 @@ public class SearchResource { final TransportClient client; - public SearchResource(@Context ServletContext servletContext) throws ConfigException, IOException { - Config config = Config.getConfig(); + public SearchResource(@Context final ServletContext servletContext) throws ConfigException, IOException { + final Config config = Config.getConfig(); client = ESClient.getClient(config); } @@ -50,8 +50,8 @@ public class SearchResource { @GET @Produces(MediaType.APPLICATION_JSON) public Response doSearch(@QueryParam("skip") Integer skip, @QueryParam("limit") Integer limit, - @QueryParam("fields") String fields, @QueryParam("query") String query) { - ResponseWrapper<List<ArticleFull>> res = new ResponseWrapper<>(); + @QueryParam("fields") final String fields, @QueryParam("query") final String query) { + final ResponseWrapper<List<ArticleFull>> res = new ResponseWrapper<>(); if (skip == null || skip < 0) skip = 0; @@ -68,7 +68,7 @@ public class SearchResource { .setQuery(QueryBuilders.multiMatchQuery(query, "topics^" + Constants.ES_BOOST_TOPICS, "title^" + Constants.ES_BOOST_TITLES, "_all")) .setFrom(skip).setSize(limit).execute().actionGet(); - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); res.addError(new APIError(Response.Status.BAD_REQUEST, "Error", e.getMessage())); return res.badRequest(); @@ -79,11 +79,11 @@ public class SearchResource { allowedFields = new HashSet<>(Arrays.asList(fields.split(","))); } - SearchHits hits = response.getHits(); - List<ArticleFull> articles = new ArrayList<>(10); - for (SearchHit hit : hits) { - Map<String, Object> source = hit.getSource(); - ArticleFull article = new ArticleFull(); + final SearchHits hits = response.getHits(); + final List<ArticleFull> articles = new ArrayList<>(10); + for (final SearchHit hit : hits) { + final Map<String, Object> source = hit.getSource(); + final ArticleFull article = new ArticleFull(); article.setId(MongoUtils.objectId(hit.getId())); if (allowedFields == null || allowedFields.contains("title")) article.setTitle(source.get("title").toString()); diff --git a/vipra-backend/src/main/java/de/vipra/rest/resource/TopicResource.java b/vipra-backend/src/main/java/de/vipra/rest/resource/TopicResource.java index de832f21cf8d821a796ea498249ae96d1bc91a7e..4016c92809268778cfe01b5256ea26fb14fea22d 100644 --- a/vipra-backend/src/main/java/de/vipra/rest/resource/TopicResource.java +++ b/vipra-backend/src/main/java/de/vipra/rest/resource/TopicResource.java @@ -46,23 +46,23 @@ public class TopicResource { public static final Logger log = LogManager.getLogger(TopicResource.class); - public TopicResource(@Context ServletContext servletContext) throws ConfigException, IOException { - Config config = Config.getConfig(); + public TopicResource(@Context final ServletContext servletContext) throws ConfigException, IOException { + final Config config = Config.getConfig(); dbTopics = MongoService.getDatabaseService(config, TopicFull.class); dbArticles = MongoService.getDatabaseService(config, ArticleFull.class); } @GET @Produces(MediaType.APPLICATION_JSON) - public Response getTopics(@QueryParam("skip") Integer skip, @QueryParam("limit") Integer limit, - @QueryParam("sort") @DefaultValue("name") String sortBy, @QueryParam("fields") String fields) { - ResponseWrapper<List<TopicFull>> res = new ResponseWrapper<>(); + public Response getTopics(@QueryParam("skip") final Integer skip, @QueryParam("limit") final Integer limit, + @QueryParam("sort") @DefaultValue("name") final String sortBy, @QueryParam("fields") final String fields) { + final ResponseWrapper<List<TopicFull>> res = new ResponseWrapper<>(); if (res.hasErrors()) return Response.status(Response.Status.BAD_REQUEST).entity(res).build(); try { - List<TopicFull> topics = dbTopics.getMultiple(skip, limit, sortBy, StringUtils.getFields(fields)); + final List<TopicFull> topics = dbTopics.getMultiple(skip, limit, sortBy, StringUtils.getFields(fields)); if ((skip != null && skip > 0) || (limit != null && limit > 0)) res.addHeader("total", dbTopics.count(null)); @@ -70,7 +70,7 @@ public class TopicResource { res.addHeader("total", topics.size()); return res.ok(topics); - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); res.addError(new APIError(Response.Status.BAD_REQUEST, "Error", e.getMessage())); return Response.status(Response.Status.BAD_REQUEST).entity(res).build(); @@ -80,9 +80,9 @@ public class TopicResource { @GET @Produces(MediaType.APPLICATION_JSON) @Path("{id}") - public Response getTopic(@PathParam("id") String id, @QueryParam("fields") String fields) + public Response getTopic(@PathParam("id") final String id, @QueryParam("fields") final String fields) throws ConfigException, IOException { - ResponseWrapper<TopicFull> res = new ResponseWrapper<>(); + final ResponseWrapper<TopicFull> res = new ResponseWrapper<>(); if (id == null || id.trim().length() == 0) { res.addError(new APIError(Response.Status.BAD_REQUEST, "ID is empty", String.format(Messages.BAD_REQUEST, "id cannot be empty"))); @@ -92,7 +92,7 @@ public class TopicResource { TopicFull topic; try { topic = dbTopics.getSingle(MongoUtils.objectId(id), false, StringUtils.getFields(fields)); - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); res.addError(new APIError(Response.Status.BAD_REQUEST, "Error", e.getMessage())); return res.badRequest(); @@ -110,18 +110,18 @@ public class TopicResource { @GET @Produces(MediaType.APPLICATION_JSON) @Path("{id}/articles") - public Response getArticles(@PathParam("id") String id, @QueryParam("skip") Integer skip, - @QueryParam("limit") Integer limit, @QueryParam("sort") @DefaultValue("title") String sortBy, - @QueryParam("fields") String fields) { - ResponseWrapper<List<ArticleFull>> res = new ResponseWrapper<>(); + public Response getArticles(@PathParam("id") final String id, @QueryParam("skip") final Integer skip, + @QueryParam("limit") final Integer limit, @QueryParam("sort") @DefaultValue("title") final String sortBy, + @QueryParam("fields") final String fields) { + final ResponseWrapper<List<ArticleFull>> res = new ResponseWrapper<>(); try { - Topic topic = new Topic(MongoUtils.objectId(id)); - QueryBuilder query = QueryBuilder.builder().criteria("topics.topic", topic).skip(skip).limit(limit) + final Topic topic = new Topic(MongoUtils.objectId(id)); + final QueryBuilder query = QueryBuilder.builder().criteria("topics.topic", topic).skip(skip).limit(limit) .sortBy(sortBy); if (fields != null && !fields.isEmpty()) query.fields(true, StringUtils.getFields(fields)); - List<ArticleFull> articles = dbArticles.getMultiple(query); + final List<ArticleFull> articles = dbArticles.getMultiple(query); if ((skip != null && skip > 0) || (limit != null && limit > 0)) res.addHeader("total", dbArticles.count(QueryBuilder.builder().criteria("topics.topic", topic))); @@ -129,7 +129,7 @@ public class TopicResource { res.addHeader("total", articles.size()); return res.ok(articles); - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); res.addError(new APIError(Response.Status.BAD_REQUEST, "Error", e.getMessage())); return res.badRequest(); @@ -139,9 +139,9 @@ public class TopicResource { @GET @Produces(MediaType.APPLICATION_JSON) @Path("{id}/similar/by-words") - public Response similarTopicsByWords(@PathParam("id") String id, @QueryParam("skip") Integer skip, - @QueryParam("limit") Integer limit, @QueryParam("sort") @DefaultValue("title") String sortBy, - @QueryParam("fields") String fields) { + public Response similarTopicsByWords(@PathParam("id") final String id, @QueryParam("skip") final Integer skip, + @QueryParam("limit") final Integer limit, @QueryParam("sort") @DefaultValue("title") final String sortBy, + @QueryParam("fields") final String fields) { // TODO implement return null; } @@ -149,9 +149,9 @@ public class TopicResource { @GET @Produces(MediaType.APPLICATION_JSON) @Path("{id}/similar/by-articles") - public Response similarTopicsByArticles(@PathParam("id") String id, @QueryParam("skip") Integer skip, - @QueryParam("limit") Integer limit, @QueryParam("sort") @DefaultValue("title") String sortBy, - @QueryParam("fields") String fields) { + public Response similarTopicsByArticles(@PathParam("id") final String id, @QueryParam("skip") final Integer skip, + @QueryParam("limit") final Integer limit, @QueryParam("sort") @DefaultValue("title") final String sortBy, + @QueryParam("fields") final String fields) { // TODO implement return null; } @@ -160,13 +160,13 @@ public class TopicResource { @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("{id}") - public Response replaceTopic(@PathParam("id") String id, TopicFull topic) { - ResponseWrapper<TopicFull> res = new ResponseWrapper<>(); + public Response replaceTopic(@PathParam("id") final String id, final TopicFull topic) { + final ResponseWrapper<TopicFull> res = new ResponseWrapper<>(); try { dbTopics.replaceSingle(topic); return res.ok(topic); - } catch (DatabaseException e) { + } catch (final DatabaseException e) { e.printStackTrace(); res.addError(new APIError(Response.Status.INTERNAL_SERVER_ERROR, "item could not be updated", "item could not be updated due to an internal server error")); diff --git a/vipra-backend/src/main/java/de/vipra/rest/resource/WordResource.java b/vipra-backend/src/main/java/de/vipra/rest/resource/WordResource.java index 9cdb550afac6fad44033921b1f9c5e59c0fef569..d45e45f8600b2a7f451eabbf96d636bb2dd904e5 100644 --- a/vipra-backend/src/main/java/de/vipra/rest/resource/WordResource.java +++ b/vipra-backend/src/main/java/de/vipra/rest/resource/WordResource.java @@ -38,23 +38,23 @@ public class WordResource { final MongoService<Word, String> dbWords; final MongoService<TopicFull, ObjectId> dbTopics; - public WordResource(@Context ServletContext servletContext) throws ConfigException, IOException { - Config config = Config.getConfig(); + public WordResource(@Context final ServletContext servletContext) throws ConfigException, IOException { + final Config config = Config.getConfig(); dbWords = MongoService.getDatabaseService(config, Word.class); dbTopics = MongoService.getDatabaseService(config, TopicFull.class); } @GET @Produces(MediaType.APPLICATION_JSON) - public Response getWords(@QueryParam("skip") Integer skip, @QueryParam("limit") Integer limit, - @QueryParam("sort") @DefaultValue("id") String sortBy, @QueryParam("fields") String fields) { - ResponseWrapper<List<Word>> res = new ResponseWrapper<>(); + public Response getWords(@QueryParam("skip") final Integer skip, @QueryParam("limit") final Integer limit, + @QueryParam("sort") @DefaultValue("id") final String sortBy, @QueryParam("fields") final String fields) { + final ResponseWrapper<List<Word>> res = new ResponseWrapper<>(); if (res.hasErrors()) return res.badRequest(); try { - List<Word> words = dbWords.getMultiple(skip, limit, sortBy, StringUtils.getFields(fields)); + final List<Word> words = dbWords.getMultiple(skip, limit, sortBy, StringUtils.getFields(fields)); if ((skip != null && skip > 0) || (limit != null && limit > 0)) res.addHeader("total", dbWords.count(null)); @@ -62,7 +62,7 @@ public class WordResource { res.addHeader("total", words.size()); return res.ok(words); - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); res.addError(new APIError(Response.Status.BAD_REQUEST, "Error", e.getMessage())); return res.badRequest(); @@ -73,8 +73,8 @@ public class WordResource { @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @Path("{id}") - public Response getWord(@PathParam("id") String id, @QueryParam("fields") String fields) { - ResponseWrapper<Word> res = new ResponseWrapper<>(); + public Response getWord(@PathParam("id") final String id, @QueryParam("fields") final String fields) { + final ResponseWrapper<Word> res = new ResponseWrapper<>(); if (id == null || id.trim().length() == 0) { res.addError(new APIError(Response.Status.BAD_REQUEST, "ID is empty", String.format(Messages.BAD_REQUEST, "id cannot be empty"))); @@ -84,7 +84,7 @@ public class WordResource { Word word; try { word = dbWords.getSingle(id, false, StringUtils.getFields(fields)); - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); res.addError(new APIError(Response.Status.BAD_REQUEST, "Error", e.getMessage())); return res.badRequest(); @@ -93,7 +93,7 @@ public class WordResource { if (word != null) { return res.ok(word); } else { - String msg = String.format(Messages.NOT_FOUND, "id", id); + final String msg = String.format(Messages.NOT_FOUND, "id", id); res.addError(new APIError(Response.Status.NOT_FOUND, "Resource not found", msg)); return res.notFound(); } @@ -103,16 +103,16 @@ public class WordResource { @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @Path("{id}/topics") - public Response getWordTopics(@PathParam("id") String id, @QueryParam("fields") String fields) { - ResponseWrapper<List<TopicFull>> res = new ResponseWrapper<>(); + public Response getWordTopics(@PathParam("id") final String id, @QueryParam("fields") final String fields) { + final ResponseWrapper<List<TopicFull>> res = new ResponseWrapper<>(); try { - Word word = new Word(id); - QueryBuilder query = QueryBuilder.builder().fields(true, "id", "name").criteria("words.word", word); + final Word word = new Word(id); + final QueryBuilder query = QueryBuilder.builder().fields(true, "id", "name").criteria("words.word", word); if (fields != null && !fields.isEmpty()) query.fields(true, StringUtils.getFields(fields)); - List<TopicFull> topics = dbTopics.getMultiple(query); + final List<TopicFull> topics = dbTopics.getMultiple(query); return res.ok(topics); - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); res.addError(new APIError(Response.Status.BAD_REQUEST, "Error", e.getMessage())); return res.badRequest(); diff --git a/vipra-backend/src/main/java/de/vipra/rest/serializer/ObjectIdDeserializer.java b/vipra-backend/src/main/java/de/vipra/rest/serializer/ObjectIdDeserializer.java index 4a6f5994ef36e243e63d642c73a76a12781ede36..d3d6c3d3a05536ed1c26c65261539d1b86bc5053 100644 --- a/vipra-backend/src/main/java/de/vipra/rest/serializer/ObjectIdDeserializer.java +++ b/vipra-backend/src/main/java/de/vipra/rest/serializer/ObjectIdDeserializer.java @@ -14,7 +14,8 @@ import de.vipra.util.MongoUtils; public class ObjectIdDeserializer extends JsonDeserializer<ObjectId> { @Override - public ObjectId deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException { + public ObjectId deserialize(final JsonParser p, final DeserializationContext ctxt) + throws IOException, JsonProcessingException { return MongoUtils.objectId(p.getValueAsString()); } diff --git a/vipra-backend/src/main/java/de/vipra/rest/serializer/ObjectIdSerializer.java b/vipra-backend/src/main/java/de/vipra/rest/serializer/ObjectIdSerializer.java index b6653911281c5436f63fbbc4cb5af93e633905cd..ee8256e9cbba2b8e9a99f92b2774bd9db130fade 100644 --- a/vipra-backend/src/main/java/de/vipra/rest/serializer/ObjectIdSerializer.java +++ b/vipra-backend/src/main/java/de/vipra/rest/serializer/ObjectIdSerializer.java @@ -12,7 +12,7 @@ import com.fasterxml.jackson.databind.SerializerProvider; public class ObjectIdSerializer extends JsonSerializer<ObjectId> { @Override - public void serialize(ObjectId value, JsonGenerator gen, SerializerProvider serializers) + public void serialize(final ObjectId value, final JsonGenerator gen, final SerializerProvider serializers) throws IOException, JsonProcessingException { gen.writeString(value.toString()); } diff --git a/vipra-backend/src/main/java/de/vipra/ws/State.java b/vipra-backend/src/main/java/de/vipra/ws/State.java index ec76e527854c2102693717b5b661f4f8990e7588..cf5731a2a7687dd6ee09809f58bc12f0d559a46f 100644 --- a/vipra-backend/src/main/java/de/vipra/ws/State.java +++ b/vipra-backend/src/main/java/de/vipra/ws/State.java @@ -11,7 +11,7 @@ public enum State { private final String state; - State(String state) { + State(final String state) { this.state = state; } @@ -19,8 +19,8 @@ public enum State { return state; } - public static State find(String str) { - for (State state : State.values()) + public static State find(final String str) { + for (final State state : State.values()) if (state.state.equalsIgnoreCase(str)) return state; return ID; diff --git a/vipra-backend/src/main/java/de/vipra/ws/StateSession.java b/vipra-backend/src/main/java/de/vipra/ws/StateSession.java index 2552bdf6cf753bbb2acb150016658310053f5d19..be6ba8e4d9d22b9873b7b8e0a5ed86ac0e792694 100644 --- a/vipra-backend/src/main/java/de/vipra/ws/StateSession.java +++ b/vipra-backend/src/main/java/de/vipra/ws/StateSession.java @@ -7,7 +7,7 @@ public class StateSession { private final Session session; private State state; - public StateSession(Session session) { + public StateSession(final Session session) { if (session == null) throw new NullPointerException("session cannot be null"); this.session = session; @@ -17,11 +17,11 @@ public class StateSession { return state; } - public void setState(State state) { + public void setState(final State state) { this.state = state; } - public void setState(String state) { + public void setState(final String state) { this.state = State.find(state); } diff --git a/vipra-backend/src/main/java/de/vipra/ws/StateSessionMap.java b/vipra-backend/src/main/java/de/vipra/ws/StateSessionMap.java index 1d8d5ac8c19d1c8bb74617646e6b293b7b790865..6dc65296e9e7247554e7d4d82bcc28a05170d6e4 100644 --- a/vipra-backend/src/main/java/de/vipra/ws/StateSessionMap.java +++ b/vipra-backend/src/main/java/de/vipra/ws/StateSessionMap.java @@ -9,11 +9,11 @@ public class StateSessionMap extends HashMap<StateSession, StateSession> { private static final long serialVersionUID = 1L; - public Stream<Session> stream(State state) { + public Stream<Session> stream(final State state) { return this.entrySet().stream().filter(s -> s.getKey().getState() == state).map(s -> s.getKey().getSession()); } - public void add(StateSession session) { + public void add(final StateSession session) { this.put(session, session); } diff --git a/vipra-backend/src/main/java/de/vipra/ws/WebSocket.java b/vipra-backend/src/main/java/de/vipra/ws/WebSocket.java index 46a2b58bf01cbd422ce1cf5d4e296f8cafbe4829..ee8e5f00e02942b578a0e8b1d455522ae68318ba 100644 --- a/vipra-backend/src/main/java/de/vipra/ws/WebSocket.java +++ b/vipra-backend/src/main/java/de/vipra/ws/WebSocket.java @@ -29,48 +29,48 @@ public class WebSocket { public static final StateSessionMap sessions = new StateSessionMap(); @OnOpen - public void open(Session session) { + public void open(final Session session) { log.debug("connect"); sessions.add(new StateSession(session)); } @OnClose - public void close(Session session) { + public void close(final Session session) { log.debug("disconnect"); sessions.remove(session); } @OnError - public void onError(Throwable error) { + public void onError(final Throwable error) { log.error(error); } @OnMessage - public void handleMessage(String input, Session session) + public void handleMessage(final String input, final Session session) throws JsonParseException, JsonMappingException, IOException { log.trace("message received"); try { - WebSocketMessage msg = mapper.readValue(input, WebSocketMessage.class); + final WebSocketMessage msg = mapper.readValue(input, WebSocketMessage.class); switch (msg.getType()) { case 1: handleInitMessage(mapper.readValue(msg.getData(), InitMessage.class), session); break; } - } catch (IOException e) { + } catch (final IOException e) { log.error(e); } } - public void handleInitMessage(InitMessage message, Session session) { + public void handleInitMessage(final InitMessage message, final Session session) { log.debug("init message received. state = " + message.getState()); sessions.get(session).setState(message.getState()); } - public static void sendToState(State state, Object message) { + public static void sendToState(final State state, final Object message) { String json; try { json = mapper.writeValueAsString(message); - } catch (JsonProcessingException e) { + } catch (final JsonProcessingException e) { log.error(e); return; } diff --git a/vipra-backend/src/main/java/de/vipra/ws/msg/InitMessage.java b/vipra-backend/src/main/java/de/vipra/ws/msg/InitMessage.java index ab5054001839622fb68e2d57b16dc1f5153944b7..93769d7da4637c69e1990c8375c91b379c540e8d 100644 --- a/vipra-backend/src/main/java/de/vipra/ws/msg/InitMessage.java +++ b/vipra-backend/src/main/java/de/vipra/ws/msg/InitMessage.java @@ -8,7 +8,7 @@ public class InitMessage extends WebSocketMessage { return state; } - public void setState(String state) { + public void setState(final String state) { this.state = state; } diff --git a/vipra-backend/src/main/java/de/vipra/ws/msg/WebSocketMessage.java b/vipra-backend/src/main/java/de/vipra/ws/msg/WebSocketMessage.java index 1c2b586ae3270551a4b0c66489e6ee2e75cde61b..ac769465dddb9a759f91388575b36a25caf6d737 100644 --- a/vipra-backend/src/main/java/de/vipra/ws/msg/WebSocketMessage.java +++ b/vipra-backend/src/main/java/de/vipra/ws/msg/WebSocketMessage.java @@ -10,7 +10,7 @@ public class WebSocketMessage { return type; } - public void setType(int type) { + public void setType(final int type) { this.type = type; } @@ -18,7 +18,7 @@ public class WebSocketMessage { return data; } - public void setData(String data) { + public void setData(final String data) { this.data = data; } diff --git a/vipra-cmd/.settings/org.eclipse.jdt.ui.prefs b/vipra-cmd/.settings/org.eclipse.jdt.ui.prefs index 5713c654549b40f76104760ab2f6cd031d71f011..67b3835098d95ab9541c4dbdc4cb4c5dd04ea5b5 100644 --- a/vipra-cmd/.settings/org.eclipse.jdt.ui.prefs +++ b/vipra-cmd/.settings/org.eclipse.jdt.ui.prefs @@ -1,3 +1,62 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=false +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_functional_interfaces=false +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=false +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=false +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=false +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup.use_type_arguments=false +cleanup_profile=_vipra +cleanup_settings_version=2 eclipse.preferences.version=1 formatter_profile=_vipra formatter_settings_version=12 diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/CmdOptions.java b/vipra-cmd/src/main/java/de/vipra/cmd/CmdOptions.java index 8158313b39dfe0da7a857ddfa62dd7870f83cbcb..a7c34652663974ccf87fb0a66d3dea7b46bb0758 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/CmdOptions.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/CmdOptions.java @@ -62,8 +62,8 @@ public class CmdOptions extends Options { addOption(Option.builder(OPT_INDEXING).longOpt(OPT_INDEXING_LONG).desc("regenerate search index").build()); } - public void printHelp(String cmd) { - HelpFormatter formatter = new HelpFormatter(); + public void printHelp(final String cmd) { + final HelpFormatter formatter = new HelpFormatter(); formatter.printHelp(cmd, this, true); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/Main.java b/vipra-cmd/src/main/java/de/vipra/cmd/Main.java index c57aa58d6180c9a08c57acb1678658a17ae1a122..c441664c9a651a61f77568d19578f772560484bc 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/Main.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/Main.java @@ -54,14 +54,14 @@ public class Main { System.err.close(); } - public static void main(String[] args) { - CommandLineParser parser = new DefaultParser(); - CmdOptions options = new CmdOptions(); + public static void main(final String[] args) { + final CommandLineParser parser = new DefaultParser(); + final CmdOptions options = new CmdOptions(); String cmd = "vipra-cmd.jar"; CommandLine cline; try { cline = parser.parse(options, args); - } catch (ParseException e) { + } catch (final ParseException e) { log.error(e.getMessage()); options.printHelp(cmd); return; @@ -80,24 +80,24 @@ public class Main { } // logger configuration - LoggerContext loggerContext = (LoggerContext) LogManager.getContext(false); - Configuration loggerConfigs = loggerContext.getConfiguration(); + final LoggerContext loggerContext = (LoggerContext) LogManager.getContext(false); + final Configuration loggerConfigs = loggerContext.getConfiguration(); if (cline.hasOption(OPT_DEBUG)) loggerConfigs.getLoggerConfig(LogManager.ROOT_LOGGER_NAME).setLevel(Level.DEBUG); if (cline.hasOption(OPT_SILENT)) { - for (Entry<String, LoggerConfig> loggerConfig : loggerConfigs.getLoggers().entrySet()) + for (final Entry<String, LoggerConfig> loggerConfig : loggerConfigs.getLoggers().entrySet()) loggerConfig.getValue().setLevel(Level.OFF); } loggerContext.updateLoggers(); // check if default decisions should be auto chosen - boolean defaults = cline.hasOption(OPT_DEFAULTS); + final boolean defaults = cline.hasOption(OPT_DEFAULTS); // get commands - List<Command> commands = new ArrayList<>(); + final List<Command> commands = new ArrayList<>(); if (cline.hasOption(OPT_CONFIG)) commands.add(new ConfigCommand()); @@ -122,18 +122,18 @@ public class Main { // run commands if (commands.size() > 0) { - for (ListIterator<Command> it = commands.listIterator(); it.hasNext();) { - Command c = it.next(); + for (final ListIterator<Command> it = commands.listIterator(); it.hasNext();) { + final Command c = it.next(); try { c.run(); - } catch (MongoTimeoutException e) { + } catch (final MongoTimeoutException e) { log.error("timeout while trying to connect to the database"); log.debug(e.getMessage(), e); - } catch (NoNodeAvailableException e) { + } catch (final NoNodeAvailableException e) { log.error("could not connect to elasticsearch instance"); log.debug(e.getMessage(), e); - } catch (Exception e) { - Throwable cause = e.getCause(); + } catch (final Exception e) { + final Throwable cause = e.getCause(); if (cause != null) log.error(cause.getMessage()); else diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/ex/AnalyzerException.java b/vipra-cmd/src/main/java/de/vipra/cmd/ex/AnalyzerException.java index 70b6207b65a7e148c98cb7344b7535bc4bb529df..99566f56ef4d5e20a7c4a5a4637d2ce5b00c830f 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/ex/AnalyzerException.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/ex/AnalyzerException.java @@ -4,11 +4,11 @@ public class AnalyzerException extends Exception { private static final long serialVersionUID = 1L; - public AnalyzerException(String msg) { + public AnalyzerException(final String msg) { super(msg); } - public AnalyzerException(Exception e) { + public AnalyzerException(final Exception e) { super(e); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/ex/FilebaseException.java b/vipra-cmd/src/main/java/de/vipra/cmd/ex/FilebaseException.java index 22df17d513133864ef13de2b90d9fd5c5dd9d9b4..c74dc60ada0c74718f1c014f52d74d4c63949baa 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/ex/FilebaseException.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/ex/FilebaseException.java @@ -4,15 +4,15 @@ public class FilebaseException extends Exception { private static final long serialVersionUID = 1L; - public FilebaseException(String msg) { + public FilebaseException(final String msg) { super(msg); } - public FilebaseException(Exception e) { + public FilebaseException(final Exception e) { super(e); } - public FilebaseException(String msg, Exception e) { + public FilebaseException(final String msg, final Exception e) { super(msg, e); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/ex/ProcessorException.java b/vipra-cmd/src/main/java/de/vipra/cmd/ex/ProcessorException.java index 4889e6fcac0f66993e4126b836a4991034c5d6d1..13f1be81d6e3301038bf26669ef1ee93c1fe50ff 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/ex/ProcessorException.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/ex/ProcessorException.java @@ -4,11 +4,11 @@ public class ProcessorException extends Exception { private static final long serialVersionUID = 1L; - public ProcessorException(String msg) { + public ProcessorException(final String msg) { super(msg); } - public ProcessorException(Exception e) { + public ProcessorException(final Exception e) { super(e); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/file/DTMFilebase.java b/vipra-cmd/src/main/java/de/vipra/cmd/file/DTMFilebase.java index facea8ce635771f88a2e6a5c00291c5af8397c7e..ff1c200c6a38005827047c6561d4d0687590dc3a 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/file/DTMFilebase.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/file/DTMFilebase.java @@ -24,10 +24,10 @@ public class DTMFilebase extends Filebase { private final DTMVocabulary vocab; private final File modelFile; - public DTMFilebase(File dataDir) throws FilebaseException { + public DTMFilebase(final File dataDir) throws FilebaseException { super(dataDir, "dtm"); - File modelDir = getModelDir(); + final File modelDir = getModelDir(); try { this.seqindex = new DTMSequenceIndex(modelDir); } catch (IOException | ConfigException | ParseException e) { @@ -36,28 +36,29 @@ public class DTMFilebase extends Filebase { try { this.vocab = new DTMVocabulary(modelDir, false); - } catch (IOException e) { + } catch (final IOException e) { throw new FilebaseException("could not read vocabulary file", e); } this.modelFile = getModelFile(FILE_NAME); } @Override - public synchronized void write(List<ArticleFull> articles) throws IOException { + public synchronized void write(final List<ArticleFull> articles) throws IOException { if (!articles.isEmpty()) { - for (ArticleFull article : articles) + for (final ArticleFull article : articles) seqindex.add(article.getDate(), vocab.transform(article.getProcessedText())); // use temp file - File modelFileTmp = getModelFile(FILE_NAME + ".tmp"); + final File modelFileTmp = getModelFile(FILE_NAME + ".tmp"); Iterator<String> lines = null; if (modelFile.exists()) lines = FileUtils.iterateFileLines(modelFile); // concatenates the existing model file with new article entries in // the temp file - BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(modelFileTmp))); - for (DTMDateIndexEntry e : seqindex) { + final BufferedWriter writer = new BufferedWriter( + new OutputStreamWriter(new FileOutputStream(modelFileTmp))); + for (final DTMDateIndexEntry e : seqindex) { if (e.exists) { if (lines == null) { writer.close(); diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/file/DTMSequenceIndex.java b/vipra-cmd/src/main/java/de/vipra/cmd/file/DTMSequenceIndex.java index 90cf68eb9278d9fb2696a92285d757112027580f..b378881a430b50668d22bc95213e17b50b04e76f 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/file/DTMSequenceIndex.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/file/DTMSequenceIndex.java @@ -31,14 +31,14 @@ public class DTMSequenceIndex implements Closeable, Iterable<DTMSequenceIndex.DT public boolean exists; public String line; - public DTMDateIndexEntry(Date date, boolean exists, String line) { + public DTMDateIndexEntry(final Date date, final boolean exists, final String line) { this.date = date; this.exists = exists; this.line = line; } @Override - public int compareTo(DTMDateIndexEntry o) { + public int compareTo(final DTMDateIndexEntry o) { if (o == null) return 1; if (date == null) @@ -54,19 +54,20 @@ public class DTMSequenceIndex implements Closeable, Iterable<DTMSequenceIndex.DT private static SimpleDateFormat df = new SimpleDateFormat(Constants.DATETIME_FORMAT); private static CountMap<String> windowSizes = new CountMap<>(); - public DTMSequenceIndex(File modelDir) throws IOException, ParseException, ConfigException { + public DTMSequenceIndex(final File modelDir) throws IOException, ParseException, ConfigException { this(modelDir, false); } - public DTMSequenceIndex(File modelDir, boolean reread) throws IOException, ParseException, ConfigException { + public DTMSequenceIndex(final File modelDir, final boolean reread) + throws IOException, ParseException, ConfigException { this.file = new File(modelDir, "dates"); - Config config = Config.getConfig(); + final Config config = Config.getConfig(); this.windowResolution = config.windowResolution; if (file.exists()) { if (entries == null || reread) { - List<String> dates = FileUtils.readFile(file); + final List<String> dates = FileUtils.readFile(file); entries = new ArrayList<>(dates.size()); - for (String date : dates) + for (final String date : dates) add(df.parse(date)); } } else if (entries == null || reread) { @@ -74,11 +75,11 @@ public class DTMSequenceIndex implements Closeable, Iterable<DTMSequenceIndex.DT } } - private void add(Date date) { + private void add(final Date date) { add(date, null); } - public void add(Date date, String line) { + public void add(final Date date, final String line) { entries.add(new DTMDateIndexEntry(date, line == null, line)); windowSizes.count(windowResolution.fromDate(date)); } @@ -96,22 +97,22 @@ public class DTMSequenceIndex implements Closeable, Iterable<DTMSequenceIndex.DT // write date index BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, false))); - for (DTMDateIndexEntry entry : entries) { + for (final DTMDateIndexEntry entry : entries) { writer.write(df.format(entry.date)); writer.write(Constants.LINE_SEP); } writer.close(); // write window index - File seqFile = new File(file.getParentFile(), FILE_NAME); + final File seqFile = new File(file.getParentFile(), FILE_NAME); writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(seqFile, false))); writer.write(Integer.toString(windowSizes.size())); writer.write(Constants.LINE_SEP); // write window sizes - String[] windows = windowSizes.keySet().toArray(new String[windowSizes.size()]); + final String[] windows = windowSizes.keySet().toArray(new String[windowSizes.size()]); Arrays.sort(windows); - for (String window : windows) { + for (final String window : windows) { writer.write(Integer.toString(windowSizes.get(window))); writer.write(Constants.LINE_SEP); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/file/DTMVocabulary.java b/vipra-cmd/src/main/java/de/vipra/cmd/file/DTMVocabulary.java index 3a5c8975b11617068588ea9096a6cf8c45e28407..10cb615726a6228f7da001497a820540b5281241 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/file/DTMVocabulary.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/file/DTMVocabulary.java @@ -17,23 +17,23 @@ public class DTMVocabulary implements Closeable, Iterable<String> { public static final String FILE_NAME = "vocab"; - private File file; + private final File file; private static List<String> vocables; private static Map<String, Integer> vocablesMap; private static int nextIndex = 0; - public DTMVocabulary(File modelDir) throws IOException { + public DTMVocabulary(final File modelDir) throws IOException { this(modelDir, false); } - public DTMVocabulary(File modelDir, boolean reread) throws IOException { + public DTMVocabulary(final File modelDir, final boolean reread) throws IOException { this.file = new File(modelDir, FILE_NAME); if (file.exists()) { if (vocables == null || reread) vocables = new ArrayList<>(FileUtils.readFile(file)); if (vocablesMap == null || reread) vocablesMap = new HashMap<>(vocables.size() + 200); - for (String vocable : vocables) + for (final String vocable : vocables) vocablesMap.put(vocable, nextIndex++); } else { if (vocables == null || reread) @@ -44,10 +44,10 @@ public class DTMVocabulary implements Closeable, Iterable<String> { } public void write() throws IOException { - FileUtils.writeLines(file, Constants.FILEBASE_ENCODING.name(), vocables, null, false); + org.apache.commons.io.FileUtils.writeLines(file, Constants.FILEBASE_ENCODING.name(), vocables, null, false); } - private int index(String word) { + private int index(final String word) { Integer index = vocablesMap.get(word); if (index == null) { index = nextIndex++; @@ -61,11 +61,11 @@ public class DTMVocabulary implements Closeable, Iterable<String> { return vocablesMap.size(); } - public String transform(String[] words) { + public String transform(final String[] words) { // count unique words - Map<String, Integer> wordMap = new HashMap<>(words.length); - for (String word : words) { - Integer count = wordMap.get(word); + final Map<String, Integer> wordMap = new HashMap<>(words.length); + for (final String word : words) { + final Integer count = wordMap.get(word); if (count == null) wordMap.put(word, 1); else @@ -74,17 +74,17 @@ public class DTMVocabulary implements Closeable, Iterable<String> { // assemble string // <unique word count> <index1>:<count1> <index2>:<count2> ... - StringBuilder sb = new StringBuilder(); + final StringBuilder sb = new StringBuilder(); sb.append(wordMap.size()); - for (Entry<String, Integer> e : wordMap.entrySet()) { - int index = index(e.getKey()); + for (final Entry<String, Integer> e : wordMap.entrySet()) { + final int index = index(e.getKey()); sb.append(" ").append(index).append(":").append(e.getValue()); } return sb.toString(); } - public String get(int index) { + public String get(final int index) { return vocables.get(index); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/file/Filebase.java b/vipra-cmd/src/main/java/de/vipra/cmd/file/Filebase.java index dfe0148ce6368d489d989526b7755c7d1cafd31d..97507171d5039b162072c05f22c4ffb28148c5d8 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/file/Filebase.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/file/Filebase.java @@ -24,7 +24,7 @@ public abstract class Filebase implements Closeable { private final FilebaseIndex index; private final List<ArticleFull> articles; - public Filebase(File dataDir, String modelName) throws FilebaseException { + public Filebase(final File dataDir, final String modelName) throws FilebaseException { this.modelName = modelName; this.modelDir = new File(dataDir, modelName); if (!modelDir.exists()) { @@ -34,7 +34,7 @@ public abstract class Filebase implements Closeable { } try { this.index = new FilebaseIndex(modelDir); - } catch (IOException e) { + } catch (final IOException e) { throw new FilebaseException("could not read index: " + e.getMessage()); } this.articles = new ArrayList<>(Constants.IMPORT_BUFFER_MAX); @@ -44,7 +44,7 @@ public abstract class Filebase implements Closeable { return modelDir; } - public File getModelFile(String fileName) { + public File getModelFile(final String fileName) { if (fileName != null) return new File(modelDir, fileName); return new File(modelDir, modelName); @@ -64,7 +64,7 @@ public abstract class Filebase implements Closeable { index.close(); } - public void add(ArticleFull article) throws FilebaseException { + public void add(final ArticleFull article) throws FilebaseException { index.add(article.getId().toString()); articles.add(article); @@ -73,7 +73,7 @@ public abstract class Filebase implements Closeable { log.info("buffer filled, writing filebase"); write(articles); articles.clear(); - } catch (IOException e) { + } catch (final IOException e) { throw new FilebaseException(e); } } @@ -81,8 +81,8 @@ public abstract class Filebase implements Closeable { public abstract void write(List<ArticleFull> articles) throws IOException; - public static Filebase getFilebase(Config config) throws FilebaseException, ConfigException { - File dataDir = config.getDataDirectory(); + public static Filebase getFilebase(final Config config) throws FilebaseException, ConfigException { + final File dataDir = config.getDataDirectory(); switch (config.analyzer) { case DTM: return new DTMFilebase(dataDir); diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/file/FilebaseIndex.java b/vipra-cmd/src/main/java/de/vipra/cmd/file/FilebaseIndex.java index 5fe238eeff45571c6b6933975e6761899880dd6a..d3ed722056133d5cbdd4448c3bdc85c9f8cc6c4b 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/file/FilebaseIndex.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/file/FilebaseIndex.java @@ -17,7 +17,7 @@ public class FilebaseIndex implements Closeable, Iterable<String> { private final File file; private final List<String> index; - public FilebaseIndex(File modelDir) throws IOException { + public FilebaseIndex(final File modelDir) throws IOException { this.file = new File(modelDir, FILE_NAME); if (file.exists()) { index = new ArrayList<>(FileUtils.readFile(file)); @@ -27,10 +27,10 @@ public class FilebaseIndex implements Closeable, Iterable<String> { } public void write() throws IOException { - FileUtils.writeLines(file, Constants.FILEBASE_ENCODING.name(), index, null, false); + org.apache.commons.io.FileUtils.writeLines(file, Constants.FILEBASE_ENCODING.name(), index, null, false); } - public int add(String id) { + public int add(final String id) { int i = indexOf(id); if (i == -1) { index.add(id); @@ -39,15 +39,15 @@ public class FilebaseIndex implements Closeable, Iterable<String> { return i; } - public int indexOf(String id) { + public int indexOf(final String id) { return index.indexOf(id); } - public String get(int i) { + public String get(final int i) { return index.get(i); } - public boolean remove(String id) { + public boolean remove(final String id) { return index.remove(id); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/file/JGibbFilebase.java b/vipra-cmd/src/main/java/de/vipra/cmd/file/JGibbFilebase.java index f15c290819abcfd719ca640331d49d50bea563a7..7b1957f2be53787b68eeb01b298297f1316401ac 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/file/JGibbFilebase.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/file/JGibbFilebase.java @@ -15,16 +15,16 @@ public class JGibbFilebase extends Filebase { private final File modelFile; - public JGibbFilebase(File dataDir) throws FilebaseException { + public JGibbFilebase(final File dataDir) throws FilebaseException { super(dataDir, "jgibb"); this.modelFile = getModelFile(null); } @Override - public synchronized void write(List<ArticleFull> articles) throws IOException { + public synchronized void write(final List<ArticleFull> articles) throws IOException { if (!articles.isEmpty()) { - BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(modelFile))); - for (ArticleFull article : articles) + final BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(modelFile))); + for (final ArticleFull article : articles) writer.write(StringUtils.join(article.getProcessedText()) + "\n"); writer.close(); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/lda/Analyzer.java b/vipra-cmd/src/main/java/de/vipra/cmd/lda/Analyzer.java index 77b7f29f8b7577a08a7941ba968b40ce273f11f2..15a3765acf0afc580a0e8d362b8e1cddf98dc068 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/lda/Analyzer.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/lda/Analyzer.java @@ -7,7 +7,7 @@ public abstract class Analyzer { private final String name; - protected Analyzer(String name) { + protected Analyzer(final String name) { this.name = name; } @@ -19,7 +19,7 @@ public abstract class Analyzer { public abstract void analyze() throws AnalyzerException; - public static Analyzer getAnalyzer(Config config) throws AnalyzerException { + public static Analyzer getAnalyzer(final Config config) throws AnalyzerException { Analyzer analyzer = null; switch (config.analyzer) { case DTM: diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/lda/DTMAnalyzer.java b/vipra-cmd/src/main/java/de/vipra/cmd/lda/DTMAnalyzer.java index 71928d84ed167c363c6a937277c337a81c80d135..0bfd303c175020c06c03d5fb00bfea0b4facfebf 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/lda/DTMAnalyzer.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/lda/DTMAnalyzer.java @@ -61,9 +61,9 @@ public class DTMAnalyzer extends Analyzer { } @Override - public void init(Config config) throws AnalyzerException { + public void init(final Config config) throws AnalyzerException { try { - File dataDir = config.getDataDirectory(); + final File dataDir = config.getDataDirectory(); this.modelDir = new File(dataDir, NAME); this.outDir = new File(modelDir, "out"); this.outDirSeq = new File(outDir, "lda-seq"); @@ -85,10 +85,10 @@ public class DTMAnalyzer extends Analyzer { throw new AnalyzerException( "dtm binary not found at path: " + config.dtmPath + ", check config key 'tm.dtmpath'"); - String corpusPrefix = this.modelDir.getAbsolutePath() + File.separator + NAME; - String outname = this.outDir.getAbsolutePath(); + final String corpusPrefix = this.modelDir.getAbsolutePath() + File.separator + NAME; + final String outname = this.outDir.getAbsolutePath(); - String[] parameters = { + final String[] parameters = { // number of topics "--ntopics=" + Constants.K_TOPICS, // topc modeling mode @@ -118,7 +118,7 @@ public class DTMAnalyzer extends Analyzer { @Override public void analyze() throws AnalyzerException { try { - Process p = Runtime.getRuntime().exec(command, null); + final Process p = Runtime.getRuntime().exec(command, null); if (!p.isAlive()) throw new AnalyzerException("dtm process is dead"); @@ -140,16 +140,16 @@ public class DTMAnalyzer extends Analyzer { // TODO find out what proportions are good for and where to store // them - File gamFile = new File(outDirSeq, "gam.dat"); + final File gamFile = new File(outDirSeq, "gam.dat"); in = new BufferedReader(new InputStreamReader(new FileInputStream(gamFile))); for (int idxArticle = 0; idxArticle < index.size(); idxArticle++) { double topicTotalProportions = 0; - double[] topicProportions = new double[Constants.K_TOPICS]; + final double[] topicProportions = new double[Constants.K_TOPICS]; // gather individual topic proportions and sum of proportions for (int idxTopic = 0; idxTopic < Constants.K_TOPICS; idxTopic++) { - double topicProportion = Double.parseDouble(in.readLine()); + final double topicProportion = Double.parseDouble(in.readLine()); topicTotalProportions += topicProportion; topicProportions[idxTopic] = topicProportion; } @@ -165,24 +165,25 @@ public class DTMAnalyzer extends Analyzer { // read topic definition files and create topics - int sequencesCount = sequences.size(); - int wordCount = vocab.size(); + final int sequencesCount = sequences.size(); + final int wordCount = vocab.size(); // collects created topics - List<TopicFull> newTopics = new ArrayList<>(Constants.K_TOPICS); + final List<TopicFull> newTopics = new ArrayList<>(Constants.K_TOPICS); // collects created words - List<Word> newWords = new ArrayList<>(wordCount); + final List<Word> newWords = new ArrayList<>(wordCount); // collect mapping between words and topics @SuppressWarnings("unchecked") - Tuple<Double, Integer>[] wordTopicMapping = (Tuple<Double, Integer>[]) new Tuple[wordCount]; + final Tuple<Double, Integer>[] wordTopicMapping = new Tuple[wordCount]; // for each topic file for (int i = 0; i < Constants.K_TOPICS; i++) { - File seqFile = new File(outDirSeq, "topic-" + StringUtils.padNumber(i, 3) + "-var-e-log-prob.dat"); + final File seqFile = new File(outDirSeq, + "topic-" + StringUtils.padNumber(i, 3) + "-var-e-log-prob.dat"); // create new topic - TopicFull newTopic = new TopicFull(); - List<Sequence> newSequences = new ArrayList<>(sequencesCount); - List<TopicWord> newTopicWords = new ArrayList<>(wordCount); + final TopicFull newTopic = new TopicFull(); + final List<Sequence> newSequences = new ArrayList<>(sequencesCount); + final List<TopicWord> newTopicWords = new ArrayList<>(wordCount); newTopic.setSequences(newSequences); newTopic.setWords(newTopicWords); newTopics.add(newTopic); @@ -191,14 +192,14 @@ public class DTMAnalyzer extends Analyzer { // read file lines into word x sequence matrix // gather maximum likeliness per sequence and per word - double[] maxSeqLikelinesses = new double[sequencesCount]; + final double[] maxSeqLikelinesses = new double[sequencesCount]; Arrays.fill(maxSeqLikelinesses, Integer.MIN_VALUE); - double[] maxWordLikelinesses = new double[wordCount]; + final double[] maxWordLikelinesses = new double[wordCount]; Arrays.fill(maxWordLikelinesses, Integer.MIN_VALUE); - double[][] likelinesses = new double[wordCount][sequencesCount]; + final double[][] likelinesses = new double[wordCount][sequencesCount]; for (int idxWord = 0; idxWord < wordCount; idxWord++) { for (int idxSeq = 0; idxSeq < sequencesCount; idxSeq++) { - double likeliness = Double.parseDouble(in.readLine()); + final double likeliness = Double.parseDouble(in.readLine()); likelinesses[idxWord][idxSeq] = likeliness; if (likeliness > maxSeqLikelinesses[idxSeq]) maxSeqLikelinesses[idxSeq] = likeliness; @@ -212,7 +213,7 @@ public class DTMAnalyzer extends Analyzer { // compare to current word <-> topic mapping, accept higher // likeliness as better for (int idxWord = 0; idxWord < maxWordLikelinesses.length; idxWord++) { - Tuple<Double, Integer> tuple = wordTopicMapping[idxWord]; + final Tuple<Double, Integer> tuple = wordTopicMapping[idxWord]; if (tuple == null) wordTopicMapping[idxWord] = new Tuple<>(maxWordLikelinesses[idxWord], i); else if (maxWordLikelinesses[idxWord] > tuple.first()) @@ -221,7 +222,7 @@ public class DTMAnalyzer extends Analyzer { // find maximum overall likeliness double maxOverallLikeliness = Integer.MIN_VALUE; - for (double likeliness : maxSeqLikelinesses) { + for (final double likeliness : maxSeqLikelinesses) { if (likeliness > maxOverallLikeliness) maxOverallLikeliness = likeliness; } @@ -230,9 +231,9 @@ public class DTMAnalyzer extends Analyzer { // most likely words form the static topic over all sequences for (int idxWord = 0; idxWord < wordCount; idxWord++) { if (maxWordLikelinesses[idxWord] >= Constants.MINIMUM_RELATIVE_PROB * maxOverallLikeliness) { - Word newWord = new Word(vocab.get(idxWord)); + final Word newWord = new Word(vocab.get(idxWord)); newWords.add(newWord); - TopicWord newTopicWord = new TopicWord(newWord, maxWordLikelinesses[idxWord]); + final TopicWord newTopicWord = new TopicWord(newWord, maxWordLikelinesses[idxWord]); newTopicWords.add(newTopicWord); } } @@ -241,20 +242,20 @@ public class DTMAnalyzer extends Analyzer { // go through each sequence and gather all words that are above // the minimum relative word likeliness for (int idxSeq = 0; idxSeq < sequencesCount; idxSeq++) { - double maxLikeliness = maxSeqLikelinesses[idxSeq]; - List<TopicWord> newSeqTopicWords = new ArrayList<>(wordCount); + final double maxLikeliness = maxSeqLikelinesses[idxSeq]; + final List<TopicWord> newSeqTopicWords = new ArrayList<>(wordCount); for (int idxWord = 0; idxWord < wordCount; idxWord++) { - double likeliness = likelinesses[idxWord][idxSeq]; + final double likeliness = likelinesses[idxWord][idxSeq]; if (likeliness >= Constants.MINIMUM_RELATIVE_PROB * maxLikeliness) { - Word newWord = new Word(vocab.get(idxWord)); + final Word newWord = new Word(vocab.get(idxWord)); newWords.add(newWord); - TopicWord newTopicWord = new TopicWord(newWord, likeliness); + final TopicWord newTopicWord = new TopicWord(newWord, likeliness); newSeqTopicWords.add(newTopicWord); } } Collections.sort(newSeqTopicWords, Comparator.reverseOrder()); - Sequence newSequence = new Sequence(); + final Sequence newSequence = new Sequence(); newSequence.setNumber(idxSeq); newSequence.setWords(newSeqTopicWords); newSequences.add(newSequence); @@ -267,28 +268,28 @@ public class DTMAnalyzer extends Analyzer { try { dbTopics.createMultiple(newTopics); dbWords.createMultiple(newWords); - } catch (DatabaseException e) { + } catch (final DatabaseException e) { throw new AnalyzerException(e); } // create topic references - File multFile = new File(modelDir, "dtm-mult.dat"); + final File multFile = new File(modelDir, "dtm-mult.dat"); in = new BufferedReader(new InputStreamReader(new FileInputStream(multFile))); - Pattern wordCountPattern = Pattern.compile("(\\d+):(\\d+)"); + final Pattern wordCountPattern = Pattern.compile("(\\d+):(\\d+)"); int articleIndex = 0; // for each article in the model file while ((line = in.readLine()) != null) { // get topic id from word id, count topics - CountMap<Integer> countMap = new CountMap<>(); - Matcher matcher = wordCountPattern.matcher(line); + final CountMap<Integer> countMap = new CountMap<>(); + final Matcher matcher = wordCountPattern.matcher(line); double totalCount = 0; while (matcher.find()) { - Integer wordId = Integer.parseInt(matcher.group(1)); - Tuple<Double, Integer> wordTopicTuple = wordTopicMapping[wordId]; + final Integer wordId = Integer.parseInt(matcher.group(1)); + final Tuple<Double, Integer> wordTopicTuple = wordTopicMapping[wordId]; if (wordTopicTuple != null) { - int count = Integer.parseInt(matcher.group(2)); + final int count = Integer.parseInt(matcher.group(2)); countMap.count(wordTopicTuple.second(), count); totalCount += count; } @@ -297,17 +298,17 @@ public class DTMAnalyzer extends Analyzer { // create list of topics refs referencing topics with counted // occurrences, sum accepted topic word count long reducedCount = 0; - List<TopicRef> newTopicRefs = new ArrayList<>(countMap.size()); - for (Entry<Integer, Integer> entry : countMap.entrySet()) { + final List<TopicRef> newTopicRefs = new ArrayList<>(countMap.size()); + for (final Entry<Integer, Integer> entry : countMap.entrySet()) { // check if topic above threshold if ((entry.getValue() / totalCount) >= Constants.TOPIC_THRESHOLD) { reducedCount += entry.getValue(); - TopicFull topic = newTopics.get(entry.getKey()); + final TopicFull topic = newTopics.get(entry.getKey()); // TODO words with low relative likeliness are ignored. // topic references from this file are possibly wrong. // fix this by checking if the word is actually accepted // by the referenced topic. - TopicRef ref = new TopicRef(); + final TopicRef ref = new TopicRef(); ref.setCount(entry.getValue()); ref.setTopic(new Topic(topic.getId())); newTopicRefs.add(ref); @@ -315,21 +316,21 @@ public class DTMAnalyzer extends Analyzer { } // calculate each accepted topic share - for (TopicRef ref : newTopicRefs) + for (final TopicRef ref : newTopicRefs) ref.setShare((double) ref.getCount() / reducedCount); if (!newTopicRefs.isEmpty()) { Collections.sort(newTopicRefs, Comparator.reverseOrder()); // update article with topic references (partial update) - ArticleFull article = new ArticleFull(); + final ArticleFull article = new ArticleFull(); article.setId(index.get(articleIndex++)); article.setTopics(newTopicRefs); try { // TODO: using field name here. Hard to refactor dbArticles.updateSingle(article, "topics"); - } catch (DatabaseException e) { + } catch (final DatabaseException e) { log.error(e); } } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/lda/JGibbAnalyzer.java b/vipra-cmd/src/main/java/de/vipra/cmd/lda/JGibbAnalyzer.java index ce3b4adb9dac71f4e4ee2aecccfed4403791fa8b..23064625d1fa20889dd17f9e4a9a54408f93c3e8 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/lda/JGibbAnalyzer.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/lda/JGibbAnalyzer.java @@ -61,7 +61,7 @@ public class JGibbAnalyzer extends Analyzer { try { dataDir = config.getDataDirectory(); - } catch (ConfigException e) { + } catch (final ConfigException e) { throw new AnalyzerException(e); } @@ -84,7 +84,7 @@ public class JGibbAnalyzer extends Analyzer { dbTopics = MongoService.getDatabaseService(config, TopicFull.class); dbWords = MongoService.getDatabaseService(config, Word.class); index = new FilebaseIndex(modelDir); - } catch (Exception e) { + } catch (final Exception e) { throw new AnalyzerException(e); } } @@ -94,42 +94,42 @@ public class JGibbAnalyzer extends Analyzer { if (!modelFile.exists()) { throw new AnalyzerException("model file does not exist: " + modelFile.getAbsolutePath()); } - Estimator estimator = new Estimator(); + final Estimator estimator = new Estimator(); estimator.init(options); estimator.estimate(); // read topic definitions and save - File twords = new File(modelDir, NAME + ".twords"); + final File twords = new File(modelDir, NAME + ".twords"); List<String> lines; try { lines = FileUtils.readFile(twords); - } catch (IOException e) { + } catch (final IOException e) { throw new AnalyzerException(e); } // the list of new topics - List<TopicFull> newTopics = new ArrayList<>(options.K); + final List<TopicFull> newTopics = new ArrayList<>(options.K); // set of new words - Set<Word> newWords = new HashSet<>(); + final Set<Word> newWords = new HashSet<>(); List<TopicWord> topicWords = null; int topicIndex = -1; - double[] maxLikelinesses = new double[Constants.K_TOPICS]; + final double[] maxLikelinesses = new double[Constants.K_TOPICS]; // create topics and determine maximum likeliness for each topic - for (String line : lines) { + for (final String line : lines) { if (!line.startsWith("\t")) { topicIndex++; topicWords = new ArrayList<>(Constants.K_TOPIC_WORDS); - TopicFull newTopic = new TopicFull(); + final TopicFull newTopic = new TopicFull(); newTopic.setWords(topicWords); newTopics.add(newTopic); continue; } - String[] parts = line.trim().split("\\s+"); - double likeliness = Double.parseDouble(parts[1]); + final String[] parts = line.trim().split("\\s+"); + final double likeliness = Double.parseDouble(parts[1]); // determine maximum likeliness of this topic if (likeliness > maxLikelinesses[topicIndex]) @@ -142,10 +142,10 @@ public class JGibbAnalyzer extends Analyzer { // filter out words below minimum relative likeliness, add accepted // words to list of new words for (topicIndex = 0; topicIndex < newTopics.size(); topicIndex++) { - TopicFull topic = newTopics.get(topicIndex); - double maxLikeliness = maxLikelinesses[topicIndex]; - ArrayList<TopicWord> filteredTopicWords = new ArrayList<>(topic.getWords().size()); - for (TopicWord word : topic.getWords()) { + final TopicFull topic = newTopics.get(topicIndex); + final double maxLikeliness = maxLikelinesses[topicIndex]; + final ArrayList<TopicWord> filteredTopicWords = new ArrayList<>(topic.getWords().size()); + for (final TopicWord word : topic.getWords()) { if (word.getLikeliness() >= Constants.MINIMUM_RELATIVE_PROB * maxLikeliness) { filteredTopicWords.add(word); newWords.add(word.getWord()); @@ -155,7 +155,7 @@ public class JGibbAnalyzer extends Analyzer { } // sort topic words and generate topic name - for (TopicFull topic : newTopics) { + for (final TopicFull topic : newTopics) { Collections.sort(topic.getWords(), Collections.reverseOrder()); topic.setName(TopicFull.getNameFromWords(topic.getWords())); } @@ -166,14 +166,14 @@ public class JGibbAnalyzer extends Analyzer { try { dbTopics.createMultiple(newTopics); dbWords.createMultiple(newWords); - } catch (DatabaseException e) { + } catch (final DatabaseException e) { throw new AnalyzerException(e); } // read documents and reference topics - File tassign = new File(modelDir, NAME + ".tassign"); - Pattern topicIndexPattern = Pattern.compile(":(\\d+)"); + final File tassign = new File(modelDir, NAME + ".tassign"); + final Pattern topicIndexPattern = Pattern.compile(":(\\d+)"); BufferedReader in = null; try { @@ -185,8 +185,8 @@ public class JGibbAnalyzer extends Analyzer { // <word-id>:<topic-id> while ((line = in.readLine()) != null) { // extract topic ids and count them - CountMap<String> countMap = new CountMap<>(); - Matcher matcher = topicIndexPattern.matcher(line); + final CountMap<String> countMap = new CountMap<>(); + final Matcher matcher = topicIndexPattern.matcher(line); double totalCount = 0; while (matcher.find()) { countMap.count(matcher.group(1)); @@ -196,17 +196,17 @@ public class JGibbAnalyzer extends Analyzer { // create list of topics refs referencing topics with counted // occurrences, sum accepted topic word count long reducedCount = 0; - List<TopicRef> newTopicRefs = new ArrayList<>(countMap.size()); - for (Entry<String, Integer> entry : countMap.entrySet()) { + final List<TopicRef> newTopicRefs = new ArrayList<>(countMap.size()); + for (final Entry<String, Integer> entry : countMap.entrySet()) { // check if topic above threshold if ((entry.getValue() / totalCount) >= Constants.TOPIC_THRESHOLD) { reducedCount += entry.getValue(); - TopicFull topic = newTopics.get(Integer.parseInt(entry.getKey())); + final TopicFull topic = newTopics.get(Integer.parseInt(entry.getKey())); // TODO words with low relative likeliness are ignored. // topic references from this file are possibly wrong. // fix this by checking if the word is actually accepted // by the referenced topic. - TopicRef ref = new TopicRef(); + final TopicRef ref = new TopicRef(); ref.setCount(entry.getValue()); ref.setTopic(new Topic(topic.getId())); newTopicRefs.add(ref); @@ -214,21 +214,21 @@ public class JGibbAnalyzer extends Analyzer { } // calculate each accepted topic share - for (TopicRef ref : newTopicRefs) + for (final TopicRef ref : newTopicRefs) ref.setShare((double) ref.getCount() / reducedCount); if (!newTopicRefs.isEmpty()) { Collections.sort(newTopicRefs, Comparator.reverseOrder()); // update article with topic references (partial update) - ArticleFull article = new ArticleFull(); + final ArticleFull article = new ArticleFull(); article.setId(index.get(articleIndex++)); article.setTopics(newTopicRefs); try { // TODO: using field name here. Hard to refactor dbArticles.updateSingle(article, "topics"); - } catch (DatabaseException e) { + } catch (final DatabaseException e) { log.error(e); } } @@ -236,7 +236,7 @@ public class JGibbAnalyzer extends Analyzer { in.close(); - } catch (IOException e) { + } catch (final IOException e) { throw new AnalyzerException(e); } } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/ClearCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/ClearCommand.java index 24333e55f2a7704f7c81f32b35f9ba02c0d2ad03..67f0bcaed40b4de669733e297feac96ac288a0a7 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/option/ClearCommand.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/ClearCommand.java @@ -21,14 +21,14 @@ public class ClearCommand implements Command { public static final Logger log = LogManager.getLogger(ClearCommand.class); - private boolean defaults; + private final boolean defaults; private Config config; private MongoService<Article, ObjectId> dbArticles; private MongoService<TopicFull, ObjectId> dbTopics; private MongoService<Word, String> dbWords; private Client elasticClient; - public ClearCommand(boolean defaults) { + public ClearCommand(final boolean defaults) { this.defaults = defaults; } @@ -49,11 +49,11 @@ public class ClearCommand implements Command { try { log.info("clearing filebase"); - File dataDir = config.getDataDirectory(); + final File dataDir = config.getDataDirectory(); if (dataDir.exists() && dataDir.isDirectory()) { FileUtils.deleteDirectory(dataDir); } - } catch (IOException e) { + } catch (final IOException e) { log.warn("could not delete data directory: " + config.getDataDirectory().getAbsolutePath()); } } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/ConfigCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/ConfigCommand.java index b5d9f4b597608966a451672439a6b0235ca6c33c..b93b3a3434999f30ecdb37ba03890a78fbe01bb7 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/option/ConfigCommand.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/ConfigCommand.java @@ -11,7 +11,7 @@ public class ConfigCommand implements Command { @Override public void run() throws Exception { - Config config = Config.getConfig(); + final Config config = Config.getConfig(); log.info("Current configuration:"); config.print(System.out, "", " : ", true, true, ' '); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java index 062bd93a5ea0388bb800a9b7cf6246a8f94a1c31..8a75ca2357b0871ce9e3c32e994b03c5a92738c5 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/ImportCommand.java @@ -38,14 +38,14 @@ public class ImportCommand implements Command { public static class ArticleBuffer { - private MongoService<ArticleFull, ObjectId> dbArticles; - private List<ArticleFull> articles = new ArrayList<>(Constants.IMPORT_BUFFER_MAX); + private final MongoService<ArticleFull, ObjectId> dbArticles; + private final List<ArticleFull> articles = new ArrayList<>(Constants.IMPORT_BUFFER_MAX); - public ArticleBuffer(MongoService<ArticleFull, ObjectId> dbArticles) { + public ArticleBuffer(final MongoService<ArticleFull, ObjectId> dbArticles) { this.dbArticles = dbArticles; } - public void add(ArticleFull article) throws DatabaseException { + public void add(final ArticleFull article) throws DatabaseException { articles.add(article); if (articles.size() >= Constants.IMPORT_BUFFER_MAX) { save(); @@ -67,7 +67,8 @@ public class ImportCommand implements Command { private final ArticleBuffer buffer; private final Filebase filebase; - public ImportTask(JSONObject object, Processor processor, ArticleBuffer buffer, Filebase filebase) { + public ImportTask(final JSONObject object, final Processor processor, final ArticleBuffer buffer, + final Filebase filebase) { this.object = object; this.processor = processor; this.buffer = buffer; @@ -76,15 +77,15 @@ public class ImportCommand implements Command { @Override public void run() { - ArticleFull article = articleFromJSON(object); + final ArticleFull article = articleFromJSON(object); try { // preprocess text - ProcessedText processedText = processor.process(article.getText()); + final ProcessedText processedText = processor.process(article.getText()); article.setProcessedText(processedText.getWords()); // generate article stats - ArticleStats stats = new ArticleStats(); + final ArticleStats stats = new ArticleStats(); stats.setWordCount(processedText.getWordCount()); stats.setProcessedWordCount(processedText.getReducedWordCount()); stats.setReductionRatio(processedText.getReductionRatio()); @@ -101,17 +102,17 @@ public class ImportCommand implements Command { log.info("imported \"" + object.get("title") + "\"\r\n â”” text reduction: " + (processedText.getReductionRatio() * 100) + "%, text length: [" + processedText.getWordCount() + " -> " + processedText.getReducedWordCount() + "]" + (imported ? "" : " SKIPPED")); - } catch (ProcessorException e) { + } catch (final ProcessorException e) { log.error("could not preprocess text of article '" + article.getTitle() + "'"); - } catch (DatabaseException e) { + } catch (final DatabaseException e) { log.error("could not save processed article in the database '" + article.getTitle() + "'"); - } catch (FilebaseException e) { + } catch (final FilebaseException e) { log.error("could not save processed article in the filebase '" + article.getTitle() + "'"); } } - private ArticleFull articleFromJSON(JSONObject obj) { - ArticleFull article = new ArticleFull(); + private ArticleFull articleFromJSON(final JSONObject obj) { + final ArticleFull article = new ArticleFull(); article.setId(new ObjectId()); if (obj.containsKey("title")) article.setTitle(obj.get("title").toString()); @@ -128,8 +129,8 @@ public class ImportCommand implements Command { public static final Logger log = LogManager.getLogger(ImportCommand.class); - private ArrayList<File> files = new ArrayList<>(); - private JSONParser parser = new JSONParser(); + private final ArrayList<File> files = new ArrayList<>(); + private final JSONParser parser = new JSONParser(); private Config config; private MongoService<ArticleFull, ObjectId> dbArticles; private Filebase filebase; @@ -141,34 +142,34 @@ public class ImportCommand implements Command { * Import command to import articles into the database, do topic modeling * and save everything. Use {@link ImportCommand#run()} to execute this * command. - * + * * @param paths * Paths to all *.json files containing artiles or folders * containing *.json files. Not recursive. */ - public ImportCommand(String[] paths) { + public ImportCommand(final String[] paths) { addPaths(paths); } - private void addPaths(String[] paths) { - for (int i = 0; i < paths.length; i++) { - addPath(new File(paths[i])); + private void addPaths(final String[] paths) { + for (final String path : paths) { + addPath(new File(path)); } } - public void addPaths(File[] paths) { - for (int i = 0; i < paths.length; i++) { - addPath(paths[i]); + public void addPaths(final File[] paths) { + for (final File path : paths) { + addPath(path); } } - public void addPath(File file) { + public void addPath(final File file) { if (file.isFile()) { files.add(file); } else if (file.isDirectory()) { - File[] files = file.listFiles(new FilenameFilter() { + final File[] files = file.listFiles(new FilenameFilter() { @Override - public boolean accept(File dir, String name) { + public boolean accept(final File dir, final String name) { return dir.isFile() && dir.exists(); } }); @@ -179,33 +180,33 @@ public class ImportCommand implements Command { /** * import a single article into the database and filebase - * + * * @param object * @return * @throws Exception */ - private void importArticle(JSONObject object) { - ImportTask task = new ImportTask(object, processor, buffer, filebase); + private void importArticle(final JSONObject object) { + final ImportTask task = new ImportTask(object, processor, buffer, filebase); executor.execute(task); } /** * Imports a file into the database and the filebase - * + * * @param file * @throws ParseException * @throws IOException * @throws FileNotFoundException * @throws Exception */ - private int importFile(File file) throws FileNotFoundException, IOException, ParseException { - Object data = parser.parse(new FileReader(file)); + private int importFile(final File file) throws FileNotFoundException, IOException, ParseException { + final Object data = parser.parse(new FileReader(file)); int imported = 0; if (data instanceof JSONArray) { - JSONArray objects = (JSONArray) data; + final JSONArray objects = (JSONArray) data; imported += objects.size(); - for (Object object : objects) + for (final Object object : objects) importArticle((JSONObject) object); } else if (data instanceof JSONObject) { importArticle((JSONObject) data); @@ -217,9 +218,9 @@ public class ImportCommand implements Command { return imported; } - private int importFiles(List<File> files) throws FileNotFoundException, IOException, ParseException { + private int importFiles(final List<File> files) throws FileNotFoundException, IOException, ParseException { int imported = 0; - for (File file : files) { + for (final File file : files) { imported += importFile(file); } return imported; @@ -228,7 +229,7 @@ public class ImportCommand implements Command { @Override public void run() throws IOException, ConfigException, FilebaseException, ParseException, DatabaseException, InterruptedException { - int threadCount = Runtime.getRuntime().availableProcessors() * 10; + final int threadCount = Runtime.getRuntime().availableProcessors() * 10; config = Config.getConfig(); dbArticles = MongoService.getDatabaseService(config, ArticleFull.class); filebase = Filebase.getFilebase(config); @@ -240,14 +241,14 @@ public class ImportCommand implements Command { log.info("using preprocessor: " + processor.getName()); log.info("using " + threadCount + " " + StringUtils.quantity(threadCount, "thread")); - Timer timer = new Timer(); + final Timer timer = new Timer(); timer.restart(); /* * import files into database and filebase */ log.info("file import"); - int imported = importFiles(files); + final int imported = importFiles(files); executor.shutdown(); executor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS); buffer.save(); diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/IndexingCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/IndexingCommand.java index 29977e57cc16f76126474999bbf89194d79fd2e5..6efae559bce826c8c89548955889a11054b9d4a7 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/option/IndexingCommand.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/IndexingCommand.java @@ -23,28 +23,29 @@ public class IndexingCommand implements Command { @Override public void run() throws Exception { - Config config = Config.getConfig(); - MongoService<ArticleFull, ObjectId> dbArticles = MongoService.getDatabaseService(config, ArticleFull.class); - Filebase filebase = Filebase.getFilebase(config); - FilebaseIndex index = filebase.getIndex(); - Client elasticClient = ESClient.getClient(config); - ESSerializer<ArticleFull> elasticSerializer = new ESSerializer<>(ArticleFull.class); + final Config config = Config.getConfig(); + final MongoService<ArticleFull, ObjectId> dbArticles = MongoService.getDatabaseService(config, + ArticleFull.class); + final Filebase filebase = Filebase.getFilebase(config); + final FilebaseIndex index = filebase.getIndex(); + final Client elasticClient = ESClient.getClient(config); + final ESSerializer<ArticleFull> elasticSerializer = new ESSerializer<>(ArticleFull.class); // clear index elasticClient.admin().indices().prepareDelete("_all").get(); - Iterator<String> indexIter = index.iterator(); + final Iterator<String> indexIter = index.iterator(); while (indexIter.hasNext()) { // get article from database - String id = indexIter.next(); - ArticleFull article = dbArticles.getSingle(MongoUtils.objectId(id), true); + final String id = indexIter.next(); + final ArticleFull article = dbArticles.getSingle(MongoUtils.objectId(id), true); if (article == null) { log.error("no article found in db for id " + id); continue; } // index article - Map<String, Object> source = elasticSerializer.serialize(article); + final Map<String, Object> source = elasticSerializer.serialize(article); elasticClient.prepareIndex("articles", "article", article.getId().toString()).setSource(source).get(); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/ModelingCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/ModelingCommand.java index 0955733317d86fbdc15de6c8b58823e7f7b88805..796fad9cbe29f7e46f93e5aa810ce9b354541c65 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/option/ModelingCommand.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/ModelingCommand.java @@ -22,7 +22,7 @@ public class ModelingCommand implements Command { log.info("using analyzer: " + analyzer.getName()); - Timer timer = new Timer(); + final Timer timer = new Timer(); timer.restart(); /* diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/option/TestCommand.java b/vipra-cmd/src/main/java/de/vipra/cmd/option/TestCommand.java index c57fe1eaec3afc8d1005c572d14d3fd3f7aa43f9..b9b1418c02a854aff45fca4f9119debd8cf4d651 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/option/TestCommand.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/option/TestCommand.java @@ -19,16 +19,16 @@ public class TestCommand implements Command { public void run() throws Exception { // test if configuration readable log.info("reading configuration..."); - Config config = Config.getConfig(); + final Config config = Config.getConfig(); // test if database is accessible log.info("testing mongodb connection..."); - MongoService<Article, ObjectId> dbArticles = MongoService.getDatabaseService(config, Article.class); + final MongoService<Article, ObjectId> dbArticles = MongoService.getDatabaseService(config, Article.class); dbArticles.count(null); // test if elasticsearch is accessible log.info("testing elasticsearch connection..."); - TransportClient esclient = ESClient.getClient(config); + final TransportClient esclient = ESClient.getClient(config); if (esclient.connectedNodes().isEmpty()) { throw new NoNodeAvailableException("no elasticsearch nodes available"); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/plugin/ClassNameRegexFilter.java b/vipra-cmd/src/main/java/de/vipra/cmd/plugin/ClassNameRegexFilter.java index 35ab0ec537a492b9eaf0239c867edd0da800d21d..b1c618c6787b738fb8892171b499d2f1bd6e0544 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/plugin/ClassNameRegexFilter.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/plugin/ClassNameRegexFilter.java @@ -46,7 +46,7 @@ public final class ClassNameRegexFilter extends AbstractFilter { /** * Create a Filter that matches a regular expression. - * + * * @param regex * The regular expression to match. * @param match diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/text/CoreNLPProcessor.java b/vipra-cmd/src/main/java/de/vipra/cmd/text/CoreNLPProcessor.java index 3e4ab99172e662117285aa2a95418a8bff6aa39c..1975adc881bc26d0b787d16b6e1ef8fbfd23bd20 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/text/CoreNLPProcessor.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/text/CoreNLPProcessor.java @@ -21,12 +21,12 @@ public class CoreNLPProcessor extends Processor { public static final Logger log = LogManager.getLogger(CoreNLPProcessor.class); - private StanfordCoreNLP nlp; + private final StanfordCoreNLP nlp; - public CoreNLPProcessor(List<String> stopWordsList) { + public CoreNLPProcessor(final List<String> stopWordsList) { super("Stanford CoreNLP Processor"); - Properties props = new Properties(); + final Properties props = new Properties(); props.setProperty("customAnnotatorClass.stopwords", StopwordsAnnotator.class.getCanonicalName()); props.setProperty("customAnnotatorClass.frequency", FrequencyAnnotator.class.getCanonicalName()); // tokenize: transform words to tokens @@ -42,25 +42,25 @@ public class CoreNLPProcessor extends Processor { } @Override - public ProcessedText process(String input) throws ProcessorException { - Annotation doc = new Annotation(input.toLowerCase()); + public ProcessedText process(final String input) throws ProcessorException { + final Annotation doc = new Annotation(input.toLowerCase()); nlp.annotate(doc); - StringBuilder sb = new StringBuilder(); + final StringBuilder sb = new StringBuilder(); long wordCount = 0; // loop sentences - for (CoreMap sentence : doc.get(SentencesAnnotation.class)) { - List<CoreLabel> words = sentence.get(TokensAnnotation.class); + for (final CoreMap sentence : doc.get(SentencesAnnotation.class)) { + final List<CoreLabel> words = sentence.get(TokensAnnotation.class); // count words wordCount += words.size(); // loop words - for (CoreLabel word : words) { + for (final CoreLabel word : words) { // filter out stopwords - Boolean b = word.get(StopwordsAnnotator.class); + final Boolean b = word.get(StopwordsAnnotator.class); if (b == null || !b) { // filter out infrequent words - Long count = word.get(FrequencyAnnotator.class); + final Long count = word.get(FrequencyAnnotator.class); if (count != null && count >= Constants.DOCUMENT_MIN_WORD_FREQ) { - String lemma = word.get(LemmaAnnotation.class); + final String lemma = word.get(LemmaAnnotation.class); // collect unique words sb.append(lemma).append(" "); } @@ -68,7 +68,7 @@ public class CoreNLPProcessor extends Processor { } } - String text = clean(sb.toString()); + final String text = clean(sb.toString()); return new ProcessedText(text, wordCount); } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/text/FrequencyAnnotator.java b/vipra-cmd/src/main/java/de/vipra/cmd/text/FrequencyAnnotator.java index ae39104e90f29e498ce4816b7ff5395f8d5b24fb..78a41473997b01732c3535d855b9e675108cd394 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/text/FrequencyAnnotator.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/text/FrequencyAnnotator.java @@ -18,11 +18,11 @@ public class FrequencyAnnotator implements Annotator, CoreAnnotation<Long> { public static final String NAME = "frequency"; @Override - public void annotate(Annotation annotation) { - List<CoreLabel> tokens = annotation.get(TokensAnnotation.class); - Map<String, Long> words = tokens.stream() + public void annotate(final Annotation annotation) { + final List<CoreLabel> tokens = annotation.get(TokensAnnotation.class); + final Map<String, Long> words = tokens.stream() .collect(Collectors.groupingBy(p -> p.get(LemmaAnnotation.class), Collectors.counting())); - for (CoreLabel token : tokens) { + for (final CoreLabel token : tokens) { token.set(FrequencyAnnotator.class, words.get(token.get(LemmaAnnotation.class))); } } diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/text/ProcessedText.java b/vipra-cmd/src/main/java/de/vipra/cmd/text/ProcessedText.java index dcc842518205229beb8fca4f9bf5e3d94a437e3b..9c495434a2327b48c473471ff3546dbf7a7b400f 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/text/ProcessedText.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/text/ProcessedText.java @@ -7,7 +7,7 @@ public class ProcessedText { private final long reducedWordCount; private final double reductionRatio; - public ProcessedText(String text, long wordCount) { + public ProcessedText(final String text, final long wordCount) { this.words = text.split("\\s+"); this.originalWordCount = wordCount; this.reducedWordCount = this.words.length; diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/text/Processor.java b/vipra-cmd/src/main/java/de/vipra/cmd/text/Processor.java index 6ea52b604972b155160ccdbfd00bbb64d6225d3a..db4b9ca4dbde696c7be763ad45d2a1b0801a7056 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/text/Processor.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/text/Processor.java @@ -10,7 +10,7 @@ public abstract class Processor { private final String name; - public Processor(String name) { + public Processor(final String name) { this.name = name; } @@ -20,8 +20,8 @@ public abstract class Processor { public abstract ProcessedText process(String input) throws ProcessorException; - public static Processor getProcessor(Config config) { - List<String> stopWords = Constants.STOPWORDS; + public static Processor getProcessor(final Config config) { + final List<String> stopWords = Constants.STOPWORDS; switch (config.processor) { case CORENLP: @@ -31,7 +31,7 @@ public abstract class Processor { } } - public static String clean(String in) { + public static String clean(final String in) { return in.replaceAll(Constants.REGEX_EMAIL, "").replaceAll(Constants.REGEX_URL, "") .replaceAll(Constants.REGEX_NUMBER, "").replaceAll(Constants.CHARS_DISALLOWED, "") .replaceAll(Constants.REGEX_SINGLECHAR, "").replaceAll("\\s+", " ").trim(); diff --git a/vipra-cmd/src/main/java/de/vipra/cmd/text/StopwordsAnnotator.java b/vipra-cmd/src/main/java/de/vipra/cmd/text/StopwordsAnnotator.java index 42185b9acbce33159c4d67c7e97c33ec10705463..0157f41fd941c92e7b6d3285b3197a26d32731c3 100644 --- a/vipra-cmd/src/main/java/de/vipra/cmd/text/StopwordsAnnotator.java +++ b/vipra-cmd/src/main/java/de/vipra/cmd/text/StopwordsAnnotator.java @@ -17,16 +17,16 @@ public class StopwordsAnnotator implements Annotator, CoreAnnotation<Boolean> { public static final String NAME = "stopwords"; - private Set<String> stopWords; + private final Set<String> stopWords; - public StopwordsAnnotator(String input, Properties props) { + public StopwordsAnnotator(final String input, final Properties props) { stopWords = new HashSet<String>(Arrays.asList(props.getProperty(NAME).split(" "))); stopWords.addAll(Arrays.asList("-LRB-", "-RRB-", "-LSB-", "-RSB-", "-LCB-", "-RCB-")); } @Override - public void annotate(Annotation annotation) { - List<CoreLabel> tokens = annotation.get(TokensAnnotation.class); + public void annotate(final Annotation annotation) { + final List<CoreLabel> tokens = annotation.get(TokensAnnotation.class); tokens.stream().filter(t -> stopWords.contains(t.word())).forEach(t -> t.set(StopwordsAnnotator.class, true)); } diff --git a/vipra-util/.settings/org.eclipse.jdt.ui.prefs b/vipra-util/.settings/org.eclipse.jdt.ui.prefs index 5713c654549b40f76104760ab2f6cd031d71f011..67b3835098d95ab9541c4dbdc4cb4c5dd04ea5b5 100644 --- a/vipra-util/.settings/org.eclipse.jdt.ui.prefs +++ b/vipra-util/.settings/org.eclipse.jdt.ui.prefs @@ -1,3 +1,62 @@ +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=false +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_functional_interfaces=false +cleanup.convert_to_enhanced_for_loop=true +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.insert_inferred_type_arguments=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=true +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=true +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_redundant_type_arguments=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_anonymous_class_creation=false +cleanup.use_blocks=false +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_lambda=true +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=false +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=false +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup.use_type_arguments=false +cleanup_profile=_vipra +cleanup_settings_version=2 eclipse.preferences.version=1 formatter_profile=_vipra formatter_settings_version=12 diff --git a/vipra-util/src/main/java/de/vipra/util/BuildInfo.java b/vipra-util/src/main/java/de/vipra/util/BuildInfo.java index befee3124c23557728bdff9007d16c1ac111c13b..7489aa05dc2d27db3c03fc2ef87ef4ef106c162f 100644 --- a/vipra-util/src/main/java/de/vipra/util/BuildInfo.java +++ b/vipra-util/src/main/java/de/vipra/util/BuildInfo.java @@ -10,17 +10,17 @@ public class BuildInfo { private static Properties getProperties() { if (properties == null) { - InputStream inputStream = FileUtils.getResource("buildNumber.properties"); + final InputStream inputStream = FileUtils.getResource("buildNumber.properties"); properties = new Properties(); try { properties.load(inputStream); - } catch (IOException e) { + } catch (final IOException e) { throw new RuntimeException("Failed to read properties file", e); } finally { if (inputStream != null) { try { inputStream.close(); - } catch (IOException e) { + } catch (final IOException e) { // Ignore } } @@ -35,7 +35,7 @@ public class BuildInfo { private final String buildDate; public BuildInfo() { - Properties props = getProperties(); + final Properties props = getProperties(); this.gitSHA1 = props.getProperty("git-sha-1"); this.version = props.getProperty("version"); this.buildDate = props.getProperty("builddate"); diff --git a/vipra-util/src/main/java/de/vipra/util/CalendarUtils.java b/vipra-util/src/main/java/de/vipra/util/CalendarUtils.java index f504b9e25de07dbe43dfb0a012c7d09b4c0fe366..bab86af0e9777f7dabf6c3b87fb1135e3d263e66 100644 --- a/vipra-util/src/main/java/de/vipra/util/CalendarUtils.java +++ b/vipra-util/src/main/java/de/vipra/util/CalendarUtils.java @@ -10,12 +10,12 @@ public class CalendarUtils { /** * Returns the quarter of the passed calendar. Months are turned into * quarters of 4: Jan-Mar: 1, Apr-Jun: 2, Jul-Sep: 3, Oct:Dec: 4. - * + * * @param c * the calendar to be used * @return the quarter of the calendar month */ - public static final int getQuarter(Calendar c) { + public static final int getQuarter(final 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 0b1244d23fb8326d2feaa7114b3c595af356d3b3..849819b8a6d0adc7b787e38d2bf73c1f0e77a14b 100644 --- a/vipra-util/src/main/java/de/vipra/util/Config.java +++ b/vipra-util/src/main/java/de/vipra/util/Config.java @@ -103,17 +103,17 @@ public class Config { private static int printMaxFieldNameLength = 0; static { - Map<String, Field> foundFields = new HashMap<>(); + final Map<String, Field> foundFields = new HashMap<>(); - for (Field field : Config.class.getDeclaredFields()) { - int modifiers = field.getModifiers(); + for (final Field field : Config.class.getDeclaredFields()) { + final int modifiers = field.getModifiers(); if (Modifier.isFinal(modifiers)) continue; if (!field.isAccessible()) field.setAccessible(true); - ConfigKey ck = field.getDeclaredAnnotation(ConfigKey.class); + final ConfigKey ck = field.getDeclaredAnnotation(ConfigKey.class); if (ck == null) continue; @@ -138,20 +138,20 @@ public class Config { InputStream in = null; // config from environment - String configPath = System.getenv("VIPRA_CONFIG"); + final String configPath = System.getenv("VIPRA_CONFIG"); if (configPath != null && configPath.length() > 0) { - File file = new File(configPath); + final File file = new File(configPath); if (file.exists() && file.isFile()) { - in = FileUtils.openInputStream(file); + in = org.apache.commons.io.FileUtils.openInputStream(file); } } // config from generic config dir - File configDir = getGenericConfigDir(); + final File configDir = getGenericConfigDir(); if (configDir != null && configDir.exists() && configDir.isDirectory()) { - File file = new File(configDir, Constants.CONFIG_FILE); + final File file = new File(configDir, Constants.CONFIG_FILE); if (file.exists() && file.isFile()) { - in = FileUtils.openInputStream(file); + in = org.apache.commons.io.FileUtils.openInputStream(file); } } @@ -169,12 +169,12 @@ public class Config { } // read values - for (Entry<String, Field> entry : fields) { - String value = props.getProperty(entry.getKey()); + for (final Entry<String, Field> entry : fields) { + final String value = props.getProperty(entry.getKey()); if (value != null) { Object parsedValue = null; try { - Class<?> clazz = entry.getValue().getType(); + final Class<?> clazz = entry.getValue().getType(); if (clazz == String.class) { parsedValue = value; } else if (clazz == Boolean.class || clazz == Boolean.TYPE) { @@ -212,7 +212,7 @@ public class Config { } entry.getValue().set(this, parsedValue); - } catch (Exception e) { + } catch (final Exception e) { log.error("could not read config value " + entry.getKey(), e); } } @@ -222,12 +222,12 @@ public class Config { /** * Returns the data directory used for topic modeling and configuration * storage - * + * * @return the data directory to be used * @throws ConfigException */ public File getDataDirectory() throws ConfigException { - File dataDir = getGenericDataDir(); + final File dataDir = getGenericDataDir(); if (!dataDir.exists()) { if (!dataDir.mkdirs()) { @@ -240,7 +240,7 @@ public class Config { /** * Returns a representation of the used mongodb connection - * + * * @return mongo connection * @throws ConfigException */ @@ -250,20 +250,20 @@ public class Config { /** * Create a database service abstraction to interact with the database. - * + * * @param clazz * the DAO class, extending Model * @return the database service * @throws ConfigException */ - public <Type extends Model<IdType>, IdType> MongoService<Type, IdType> getDatabaseService(Class<Type> clazz) + public <Type extends Model<IdType>, IdType> MongoService<Type, IdType> getDatabaseService(final Class<Type> clazz) throws ConfigException { return MongoService.getDatabaseService(this, clazz); } /** * Prints out the current configuration values - * + * * @param out * OutputStream to be used for printing. Usually System.out * @param prefix @@ -279,14 +279,15 @@ public class Config { * @param padChar * the pad character to be used for padding, if enabled */ - public void print(OutputStream out, String prefix, String separator, boolean pad, boolean padRight, char padChar) { - PrintWriter pw = new PrintWriter(out); - String padding = padChar + ""; - for (Entry<String, Field> e : fields) { + public void print(final OutputStream out, final String prefix, final String separator, final boolean pad, + final boolean padRight, final char padChar) { + final PrintWriter pw = new PrintWriter(out); + final String padding = padChar + ""; + for (final Entry<String, Field> e : fields) { try { String key = e.getKey() + separator; if (pad) { - int diff = printMaxFieldNameLength - e.getKey().length(); + final int diff = printMaxFieldNameLength - e.getKey().length(); if (diff > 0) { if (padRight) key = e.getKey() + StringUtils.repeat(padding, diff) + separator; @@ -302,27 +303,27 @@ public class Config { /** * Returns a generic data directory, if none is configured. - * + * * @return generic data directory */ public static File getGenericDataDir() { - File base = PathUtils.appDataDir(); + final File base = PathUtils.appDataDir(); return new File(base, Constants.FILEBASE_DIR); } /** * Returns a generic config directory, if none is configured. - * + * * @return generic config directory */ public static File getGenericConfigDir() { - File base = PathUtils.appConfigDir(); + final File base = PathUtils.appConfigDir(); return new File(base, Constants.FILEBASE_DIR); } /** * Config class is a singleton. This method returns its instantiation. - * + * * @return config object instantiation * @throws IOException * if reading the config file fails diff --git a/vipra-util/src/main/java/de/vipra/util/ConsoleUtils.java b/vipra-util/src/main/java/de/vipra/util/ConsoleUtils.java index 05741bc111962e83ba7cd07d408997394f57e40d..f24878cde607405dbc7a6ebf2f67ec318a374961 100644 --- a/vipra-util/src/main/java/de/vipra/util/ConsoleUtils.java +++ b/vipra-util/src/main/java/de/vipra/util/ConsoleUtils.java @@ -25,14 +25,14 @@ public class ConsoleUtils { public final String choice; public final String shortChoice; - Choice(String choice, String shortChoice) { + Choice(final String choice, final String shortChoice) { this.choice = choice; this.shortChoice = shortChoice; } - public static Choice fromString(String text) { + public static Choice fromString(final String text) { if (text != null) { - for (Choice b : Choice.values()) { + for (final Choice b : Choice.values()) { if (text.equalsIgnoreCase(b.choice) || text.equalsIgnoreCase(b.shortChoice)) { return b; } @@ -49,14 +49,14 @@ public class ConsoleUtils { /** * Read a line from the console - * + * * @return read line, without newline character */ public static String readLine() { - BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + final BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { return in.readLine(); - } catch (IOException e) { + } catch (final IOException e) { log.error("io error while reading line from console: " + e.getMessage()); return ""; } @@ -64,20 +64,20 @@ public class ConsoleUtils { /** * Request user confirmation - * + * * @param confirm * the confirm string, has to be typed in by the user * @return wether user input matches confirm string */ - public static boolean confirm(String confirm) { + public static boolean confirm(final String confirm) { System.out.print("> "); - String in = readLine().toLowerCase().trim(); + final String in = readLine().toLowerCase().trim(); return in.equals(confirm); } /** * Promt a user choice from multiple options - * + * * @param choice * default choice * @param acceptDefault @@ -86,10 +86,10 @@ public class ConsoleUtils { * all choices that can be selected * @return the selected choice */ - public static String prompt(String choice, boolean acceptDefault, String... choices) { + public static String prompt(final String choice, final boolean acceptDefault, final String... choices) { if (acceptDefault && choice != null) return choice; - Set<String> set = new LinkedHashSet<>(Arrays.asList(choices)); + final Set<String> set = new LinkedHashSet<>(Arrays.asList(choices)); if (choice != null) set.add(choice); String msg = "(" + StringUtils.join(set, ",") + "): "; @@ -97,7 +97,7 @@ public class ConsoleUtils { msg = "[" + choice + "] " + msg; } System.out.print(msg); - String in = readLine().toLowerCase().trim(); + final String in = readLine().toLowerCase().trim(); if (set.contains(in)) { return in; } @@ -108,7 +108,7 @@ public class ConsoleUtils { /** * Promt a user choice from multiple options - * + * * @param choice * default choice * @param acceptDefault @@ -117,7 +117,7 @@ public class ConsoleUtils { * all choices that can be selected * @return the selected choice */ - public static Choice prompt(Choice choice, boolean acceptDefault, Choice... choices) { + public static Choice prompt(final Choice choice, final boolean acceptDefault, final Choice... choices) { return Choice.fromString( prompt(choice != null ? choice.choice : null, acceptDefault, ListUtils.toStringArray(choices))); } 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 c719c6785a2f4827d9f027e1ccc70a811231a650..2d3d58d09d9122f9e855a12b0a8d4131eff1fcb1 100644 --- a/vipra-util/src/main/java/de/vipra/util/Constants.java +++ b/vipra-util/src/main/java/de/vipra/util/Constants.java @@ -247,11 +247,11 @@ public class Constants { public final String name; - private Processor(String name) { + private Processor(final String name) { this.name = name; } - private Processor(Processor def) { + private Processor(final Processor def) { this.name = def.name; } @@ -259,9 +259,9 @@ public class Constants { return CORENLP; } - public static Processor fromString(String text) { + public static Processor fromString(final String text) { if (text != null) { - for (Processor b : Processor.values()) { + for (final Processor b : Processor.values()) { if (text.equalsIgnoreCase(b.name)) { return b; } @@ -280,11 +280,11 @@ public class Constants { public final String name; - private Analyzer(String name) { + private Analyzer(final String name) { this.name = name; } - private Analyzer(Analyzer def) { + private Analyzer(final Analyzer def) { this.name = def.name; } @@ -292,9 +292,9 @@ public class Constants { return DTM; } - public static Analyzer fromString(String text) { + public static Analyzer fromString(final String text) { if (text != null) { - for (Analyzer b : Analyzer.values()) { + for (final Analyzer b : Analyzer.values()) { if (text.equalsIgnoreCase(b.name)) { return b; } @@ -314,16 +314,16 @@ public class Constants { public final String name; - private WindowResolution(String name) { + private WindowResolution(final String name) { this.name = name; } - private WindowResolution(WindowResolution def) { + private WindowResolution(final WindowResolution def) { this.name = def.name; } - public String fromDate(Date date) { - Calendar c = new GregorianCalendar(); + public String fromDate(final Date date) { + final Calendar c = new GregorianCalendar(); c.setTime(date); String str = c.get(Calendar.YEAR) + ""; switch (this) { @@ -331,7 +331,7 @@ public class Constants { str += "-" + CalendarUtils.getQuarter(c); break; case MONTHLY: - int month = c.get(Calendar.MONTH); + final int month = c.get(Calendar.MONTH); str += "-" + (month < 10 ? "0" : "") + month; break; default: @@ -344,9 +344,9 @@ public class Constants { return YEARLY; } - public static WindowResolution fromString(String text) { + public static WindowResolution fromString(final String text) { if (text != null) { - for (WindowResolution b : WindowResolution.values()) { + for (final WindowResolution b : WindowResolution.values()) { if (text.equalsIgnoreCase(b.name)) { return b; } diff --git a/vipra-util/src/main/java/de/vipra/util/CountMap.java b/vipra-util/src/main/java/de/vipra/util/CountMap.java index 7de5817e701f397457324c783322c653ccbc59af..bd66f6ec38e358bfa3710ce22916058591528807 100644 --- a/vipra-util/src/main/java/de/vipra/util/CountMap.java +++ b/vipra-util/src/main/java/de/vipra/util/CountMap.java @@ -13,16 +13,16 @@ public class CountMap<T> { this.map = new HashMap<>(); } - public CountMap(Map<T, Integer> map) { + public CountMap(final Map<T, Integer> map) { this.map = map; } - public void count(T t) { + public void count(final T t) { count(t, 1); } - public void count(T t, int add) { - Integer count = map.get(t); + public void count(final T t, final int add) { + final Integer count = map.get(t); if (count == null) map.put(t, add); else @@ -37,7 +37,7 @@ public class CountMap<T> { return map.size(); } - public Integer get(T key) { + public Integer get(final T key) { return map.get(key); } diff --git a/vipra-util/src/main/java/de/vipra/util/ESClient.java b/vipra-util/src/main/java/de/vipra/util/ESClient.java index e58d0dcd13f05ceb6b2ed3d7b119092d39fa5a62..e901af4c570f223f7346be6644373887f6cb8ab2 100644 --- a/vipra-util/src/main/java/de/vipra/util/ESClient.java +++ b/vipra-util/src/main/java/de/vipra/util/ESClient.java @@ -15,13 +15,13 @@ public abstract class ESClient { /** * get a elasticsearch transport client - * + * * @param config * application configuration singleton * @return elasticsearch transport client * @throws UnknownHostException */ - public static TransportClient getClient(Config config) throws UnknownHostException { + public static TransportClient getClient(final Config config) throws UnknownHostException { if (client == null) { client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress( InetAddress.getByName(config.elasticsearchHost), config.elasticsearchPort)); diff --git a/vipra-util/src/main/java/de/vipra/util/ESSerializer.java b/vipra-util/src/main/java/de/vipra/util/ESSerializer.java index 333eb1e95a4a0d4b45797118e65f35e8b21aed70..032751e66d6950fd17073289dcdf5eaf4ae17a9a 100644 --- a/vipra-util/src/main/java/de/vipra/util/ESSerializer.java +++ b/vipra-util/src/main/java/de/vipra/util/ESSerializer.java @@ -13,19 +13,19 @@ import de.vipra.util.an.ElasticIndex; public class ESSerializer<T> { - private Set<Entry<String, Field>> fields; - private Set<Entry<String, Method>> methods; + private final Set<Entry<String, Field>> fields; + private final Set<Entry<String, Method>> methods; - public ESSerializer(Class<T> clazz) { - Map<String, Field> foundFields = new HashMap<>(); - Map<String, Method> foundMethods = new HashMap<>(); + public ESSerializer(final Class<T> clazz) { + final Map<String, Field> foundFields = new HashMap<>(); + final Map<String, Method> foundMethods = new HashMap<>(); - for (Field field : clazz.getDeclaredFields()) { + for (final Field field : clazz.getDeclaredFields()) { if (!Modifier.isStatic(field.getModifiers())) { if (!field.isAccessible()) field.setAccessible(true); - ElasticIndex ei = field.getDeclaredAnnotation(ElasticIndex.class); + final ElasticIndex ei = field.getDeclaredAnnotation(ElasticIndex.class); if (ei == null) continue; @@ -33,12 +33,12 @@ public class ESSerializer<T> { } } - for (Method method : clazz.getDeclaredMethods()) { + for (final Method method : clazz.getDeclaredMethods()) { if (!Modifier.isStatic(method.getModifiers()) && method.getParameterCount() == 0) { if (!method.isAccessible()) method.setAccessible(true); - ElasticIndex ei = method.getDeclaredAnnotation(ElasticIndex.class); + final ElasticIndex ei = method.getDeclaredAnnotation(ElasticIndex.class); if (ei == null) continue; @@ -50,16 +50,16 @@ public class ESSerializer<T> { this.methods = foundMethods.entrySet(); } - public Map<String, Object> serialize(T t) { - Map<String, Object> values = new HashMap<>(); - for (Entry<String, Field> e : fields) { + public Map<String, Object> serialize(final T t) { + final Map<String, Object> values = new HashMap<>(); + for (final Entry<String, Field> e : fields) { try { values.put(e.getKey(), e.getValue().get(t)); } catch (IllegalArgumentException | IllegalAccessException e1) { throw new RuntimeException("could not serialize field value " + e.getKey(), e1); } } - for (Entry<String, Method> m : methods) { + for (final Entry<String, Method> m : methods) { try { values.put(m.getKey(), m.getValue().invoke(t)); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e1) { diff --git a/vipra-util/src/main/java/de/vipra/util/EnumTools.java b/vipra-util/src/main/java/de/vipra/util/EnumTools.java index 9afa4e8a16b3b663e01b40284ddf79c642023c90..0bc760f5b99d9fdb39c7b8d6e411a42f83c453a9 100644 --- a/vipra-util/src/main/java/de/vipra/util/EnumTools.java +++ b/vipra-util/src/main/java/de/vipra/util/EnumTools.java @@ -7,15 +7,15 @@ public class EnumTools { /** * Finds an enum value by its name, ignoring case. - * + * * @param enumeration * Enum to be searched * @param search * Enum value to be searched * @return the found enum value, or null */ - public static <T extends Enum<?>> T searchEnum(Class<T> enumeration, String search) { - for (T each : enumeration.getEnumConstants()) { + public static <T extends Enum<?>> T searchEnum(final Class<T> enumeration, final String search) { + for (final T each : enumeration.getEnumConstants()) { if (each.name().compareToIgnoreCase(search) == 0) { return each; } diff --git a/vipra-util/src/main/java/de/vipra/util/FileUtils.java b/vipra-util/src/main/java/de/vipra/util/FileUtils.java index 03b22281138b4646bb2c5bf840a531dcb2b0fc8b..78534524ae444d16977a5735547b4c4054f759d5 100644 --- a/vipra-util/src/main/java/de/vipra/util/FileUtils.java +++ b/vipra-util/src/main/java/de/vipra/util/FileUtils.java @@ -18,21 +18,21 @@ public class FileUtils extends org.apache.commons.io.FileUtils { public static final boolean isJAR; static { - String classResource = FileUtils.class.getResource("FileUtils.class").toString(); + final String classResource = FileUtils.class.getResource("FileUtils.class").toString(); isJAR = classResource.startsWith("jar:"); } /** * If this method is run from within a runnable jar, returns the runnable * jar file, else null - * + * * @return jar file or null */ public static File getJAR() { if (isJAR) try { return new File(FileUtils.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); - } catch (URISyntaxException e) { + } catch (final URISyntaxException e) { e.printStackTrace(); } return null; @@ -42,17 +42,17 @@ public class FileUtils extends org.apache.commons.io.FileUtils { * returns a File object, relative to this class. This is execution * sensitive. If this method is called from within a runnable jar file, the * file path is relative to the jar file. - * + * * @param relPath * the relative path to the file * @return found file or null */ - public static File getFile(String relPath) { + public static File getFile(final String relPath) { try { - File thisFile = new File( + final File thisFile = new File( FileUtils.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()); return new File(thisFile.getParent(), relPath); - } catch (URISyntaxException e) { + } catch (final URISyntaxException e) { e.printStackTrace(); } return null; @@ -60,26 +60,26 @@ public class FileUtils extends org.apache.commons.io.FileUtils { /** * Reads a file and returns a list of lines - * + * * @param file * the file to be read * @return list of lines * @throws IOException */ - public static List<String> readFile(File file) throws IOException { + public static List<String> readFile(final File file) throws IOException { return Files.readAllLines(Paths.get(file.getAbsolutePath()), Constants.FILEBASE_ENCODING); } /** * Returns a resource file. Resource files are stored in various locations, * depending on execution schema (direct execution, runnable jar etc.) - * + * * @param name * name of resource * @Param clazz class to use to retrieve resource * @return resource or null */ - public static InputStream getResource(String name, Class<?> clazz) { + public static InputStream getResource(String name, final Class<?> clazz) { while (name.startsWith("/")) name = name.substring(1); InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(name); @@ -98,20 +98,20 @@ public class FileUtils extends org.apache.commons.io.FileUtils { /** * @see {@link FileUtils#getResource(String, Class)} */ - public static InputStream getResource(String name) { + public static InputStream getResource(final String name) { return getResource(name, null); } /** * Counts the lines in a file - * + * * @param file * the file to be opened * @return line count of file * @throws IOException */ - public static int countLines(File file) throws IOException { - BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file))); + public static int countLines(final File file) throws IOException { + final BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file))); int lines = 0; while (reader.readLine() != null) lines++; @@ -122,13 +122,13 @@ public class FileUtils extends org.apache.commons.io.FileUtils { /** * Iterates the lines of a file. Closes the reader automatically when it * hits the end of the file - * + * * @param file * the file to be read * @return iterator over file lines * @throws FileNotFoundException */ - public static Iterator<String> iterateFileLines(File file) throws FileNotFoundException { + public static Iterator<String> iterateFileLines(final File file) throws FileNotFoundException { return (new Iterator<String>() { private BufferedReader reader; @@ -143,14 +143,14 @@ public class FileUtils extends org.apache.commons.io.FileUtils { nextLine = null; try { nextLine = reader.readLine(); - } catch (IOException e1) { + } catch (final IOException e1) { e1.printStackTrace(); } next = nextLine != null; if (!next) try { reader.close(); - } catch (IOException e) { + } catch (final IOException e) { e.printStackTrace(); } } @@ -162,7 +162,7 @@ public class FileUtils extends org.apache.commons.io.FileUtils { return nextLine; } - public Iterator<String> init(File file) throws FileNotFoundException { + public Iterator<String> init(final File file) throws FileNotFoundException { reader = new BufferedReader(new InputStreamReader(new FileInputStream(file))); return this; } diff --git a/vipra-util/src/main/java/de/vipra/util/ListUtils.java b/vipra-util/src/main/java/de/vipra/util/ListUtils.java index 8daf6a8a59d8b8f9ecee92a336ef7696a2a30970..a8363c5b06275e91b1056d3482f001e60d296161 100644 --- a/vipra-util/src/main/java/de/vipra/util/ListUtils.java +++ b/vipra-util/src/main/java/de/vipra/util/ListUtils.java @@ -7,24 +7,24 @@ import java.util.Set; public class ListUtils { - public static <T> List<T> removeDuplicates(List<T> list) { - Set<T> set = new LinkedHashSet<>(list); + public static <T> List<T> removeDuplicates(final List<T> list) { + final Set<T> set = new LinkedHashSet<>(list); list.clear(); list.addAll(set); return list; } - public static String[] toStringArray(Object[] array) { - String[] strings = new String[array.length]; + public static String[] toStringArray(final Object[] array) { + final String[] strings = new String[array.length]; for (int i = 0; i < array.length; i++) { strings[i] = array[i].toString(); } return strings; } - public static <T> List<T> toList(Iterable<T> it) { - List<T> list = new ArrayList<>(); - for (T t : it) + public static <T> List<T> toList(final Iterable<T> it) { + final List<T> list = new ArrayList<>(); + for (final T t : it) list.add(t); return list; } diff --git a/vipra-util/src/main/java/de/vipra/util/Mongo.java b/vipra-util/src/main/java/de/vipra/util/Mongo.java index 8f82187b1dac054de34184d0cf6ef98daf079831..cb1b5000d97db61df1749ba5e7d117ccc6abb2a5 100644 --- a/vipra-util/src/main/java/de/vipra/util/Mongo.java +++ b/vipra-util/src/main/java/de/vipra/util/Mongo.java @@ -26,17 +26,17 @@ public class Mongo { private final Morphia morphia; private final Datastore datastore; - private Mongo(Config config) throws ConfigException { - String host = config.databaseHost; - Integer port = config.databasePort; - String databaseName = config.databaseName; + private Mongo(final Config config) throws ConfigException { + final String host = config.databaseHost; + final Integer port = config.databasePort; + final String databaseName = config.databaseName; if (host == null || port == null || databaseName == null) { log.error("host/port/dbname missing in configuration"); throw new ConfigException("host/port/dbname missing in configuration"); } - MongoClientOptions options = MongoClientOptions.builder().connectTimeout(10000).build(); + final MongoClientOptions options = MongoClientOptions.builder().connectTimeout(10000).build(); client = new MongoClient(host + ":" + port, options); @@ -57,7 +57,7 @@ public class Mongo { return datastore; } - public static Mongo getInstance(Config config) throws ConfigException { + public static Mongo getInstance(final Config config) throws ConfigException { if (instance == null) { instance = new Mongo(config); } diff --git a/vipra-util/src/main/java/de/vipra/util/MongoUtils.java b/vipra-util/src/main/java/de/vipra/util/MongoUtils.java index 4e6f60acf850d51c0ad8d467c4f67f0fd09dec1e..ad076611f5de8385c88541cba323f103d8a72e19 100644 --- a/vipra-util/src/main/java/de/vipra/util/MongoUtils.java +++ b/vipra-util/src/main/java/de/vipra/util/MongoUtils.java @@ -11,11 +11,11 @@ import org.bson.types.ObjectId; public class MongoUtils { - public static Bson getSorts(String sortBy) { + public static Bson getSorts(final String sortBy) { if (sortBy == null) return null; - String[] sortKeys = sortBy.split(","); - ArrayList<Bson> sorts = new ArrayList<Bson>(sortKeys.length); + final String[] sortKeys = sortBy.split(","); + final ArrayList<Bson> sorts = new ArrayList<Bson>(sortKeys.length); for (String sort : sortKeys) { if (sort.startsWith("-")) { sorts.add(descending(sort.substring(1))); @@ -27,10 +27,10 @@ public class MongoUtils { return orderBy(sorts); } - public static ObjectId objectId(String id) { + public static ObjectId objectId(final String id) { try { return new ObjectId(id); - } catch (IllegalArgumentException e) { + } catch (final IllegalArgumentException e) { return null; } } diff --git a/vipra-util/src/main/java/de/vipra/util/MultiMap.java b/vipra-util/src/main/java/de/vipra/util/MultiMap.java index bcd8411dcdde956cbe4620726251cb7d7b09092c..8d677f4471a587df88e4b1b45640aa3c5341f62a 100644 --- a/vipra-util/src/main/java/de/vipra/util/MultiMap.java +++ b/vipra-util/src/main/java/de/vipra/util/MultiMap.java @@ -15,7 +15,7 @@ public class MultiMap<K, V> { this.map = new HashMap<K, Set<V>>(); } - public void put(K key, V value) { + public void put(final K key, final V value) { Set<V> set = map.get(key); if (set == null) set = new HashSet<>(); @@ -23,7 +23,7 @@ public class MultiMap<K, V> { map.put(key, set); } - public void put(K key, Collection<V> values) { + public void put(final K key, final Collection<V> values) { Set<V> set = map.get(key); if (set == null) set = new HashSet<>(); @@ -31,7 +31,7 @@ public class MultiMap<K, V> { map.put(key, set); } - public Set<V> get(K key) { + public Set<V> get(final K key) { return map.get(key); } diff --git a/vipra-util/src/main/java/de/vipra/util/NestedMap.java b/vipra-util/src/main/java/de/vipra/util/NestedMap.java index 4c7856e853d23f01b7cbbe1435efaa50dc7182ff..e42a4b95ecfe2750a02fb59c4cf73bd313771a98 100644 --- a/vipra-util/src/main/java/de/vipra/util/NestedMap.java +++ b/vipra-util/src/main/java/de/vipra/util/NestedMap.java @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonValue; * Nested map. This map is a rough implementation of JSON objects, featuring map * nesting. Currently not supporting array notation. Can work with arbitrary * field delimiters. - * + * * Default field delimiter is . (dot). Accessing fields is the same as in JSON: * some.nested.object. Array notation is not implemented: some.nested[3].array */ @@ -22,12 +22,12 @@ public class NestedMap { public NestedMap() {} - public NestedMap(String delimiter) { + public NestedMap(final String delimiter) { this.delimiter = Pattern.quote(delimiter); } @JsonCreator - public NestedMap(Map<String, Object> map) { + public NestedMap(final Map<String, Object> map) { this.map = map; } @@ -37,15 +37,15 @@ public class NestedMap { } @SuppressWarnings("unchecked") - public void put(String key, Object value) { + public void put(final String key, final Object value) { Map<String, Object> current = map; - String[] parts = key.split(delimiter); - String name = parts.length > 0 ? parts[parts.length - 1] : key; + final String[] parts = key.split(delimiter); + final String name = parts.length > 0 ? parts[parts.length - 1] : key; for (int i = 0; i < parts.length - 1; i++) { - Object o = current.get(parts[i]); + final Object o = current.get(parts[i]); if (o == null || !(o instanceof Map)) { - HashMap<String, Object> newMap = new HashMap<>(); + final HashMap<String, Object> newMap = new HashMap<>(); current.put(parts[i], newMap); current = newMap; } else { diff --git a/vipra-util/src/main/java/de/vipra/util/NumberUtils.java b/vipra-util/src/main/java/de/vipra/util/NumberUtils.java index 4206e9fd528552d2af5c5458d8dc34318e7d8210..c3d0879b2a0650e400a030c6aa8f4d47c48d14cf 100644 --- a/vipra-util/src/main/java/de/vipra/util/NumberUtils.java +++ b/vipra-util/src/main/java/de/vipra/util/NumberUtils.java @@ -2,8 +2,8 @@ package de.vipra.util; public class NumberUtils { - public static double roundToPrecision(double d, int precision) { - double p = Math.pow(10, precision); + public static double roundToPrecision(final double d, final int precision) { + final double p = Math.pow(10, precision); return Math.round(d * p) / p; } diff --git a/vipra-util/src/main/java/de/vipra/util/PathUtils.java b/vipra-util/src/main/java/de/vipra/util/PathUtils.java index 7e5524fcfbdf300be8d1f74e4f67dd4908e3bdfa..47bd542aec2279330d6d8a6b8d3c484cbb60d8f7 100644 --- a/vipra-util/src/main/java/de/vipra/util/PathUtils.java +++ b/vipra-util/src/main/java/de/vipra/util/PathUtils.java @@ -5,7 +5,7 @@ import java.io.File; public class PathUtils { public static File appDataDir() { - String os = System.getProperty("os.name").toUpperCase(); + final String os = System.getProperty("os.name").toUpperCase(); File base = null; if (os.contains("WIN")) { base = new File(System.getProperty("APPDATA")); @@ -19,7 +19,7 @@ public class PathUtils { } public static File appConfigDir() { - String os = System.getProperty("os.name").toUpperCase(); + final String os = System.getProperty("os.name").toUpperCase(); File base = null; if (os.contains("WIN")) { base = new File(System.getProperty("APPDATA")); diff --git a/vipra-util/src/main/java/de/vipra/util/StringUtils.java b/vipra-util/src/main/java/de/vipra/util/StringUtils.java index 3f823beff07ff6b626763cd4b12d51b01928242e..442678da6266a5e9368da75d07add8cf50ed08b8 100644 --- a/vipra-util/src/main/java/de/vipra/util/StringUtils.java +++ b/vipra-util/src/main/java/de/vipra/util/StringUtils.java @@ -10,18 +10,18 @@ import java.util.regex.Pattern; public class StringUtils { - public static String ellipsize(String input, int maxLength) { - String ellip = "..."; + public static String ellipsize(final String input, final int maxLength) { + final String ellip = "..."; if (input == null || input.length() <= maxLength || input.length() < ellip.length()) { return input; } return input.substring(0, maxLength - ellip.length()).concat(ellip); } - public static String join(Iterable<String> it, String separator) { - Iterator<String> iter = it.iterator(); + public static String join(final Iterable<String> it, final String separator) { + final Iterator<String> iter = it.iterator(); if (iter.hasNext()) { - StringBuilder sb = new StringBuilder(iter.next()); + final StringBuilder sb = new StringBuilder(iter.next()); while (iter.hasNext()) { sb.append(separator).append(iter.next()); } @@ -30,46 +30,46 @@ public class StringUtils { return ""; } - public static String join(Iterable<String> it) { + public static String join(final Iterable<String> it) { return join(it, " "); } - public static String join(String[] arr, String separator) { + public static String join(final String[] arr, final String separator) { return join(Arrays.asList(arr), separator); } - public static String join(String[] arr) { + public static String join(final String[] arr) { return join(arr, " "); } public static String timeString(long nanos) { - List<String> parts = new ArrayList<String>(6); + final List<String> parts = new ArrayList<String>(6); - long days = TimeUnit.NANOSECONDS.toDays(nanos); + final long days = TimeUnit.NANOSECONDS.toDays(nanos); if (days > 0) { parts.add(days + "d"); nanos -= TimeUnit.DAYS.toNanos(days); } - long hours = TimeUnit.NANOSECONDS.toHours(nanos); + final long hours = TimeUnit.NANOSECONDS.toHours(nanos); if (hours > 0) { parts.add(hours + "h"); nanos -= TimeUnit.HOURS.toNanos(hours); } - long minutes = TimeUnit.NANOSECONDS.toMinutes(nanos); + final long minutes = TimeUnit.NANOSECONDS.toMinutes(nanos); if (minutes > 0) { parts.add(minutes + "m"); nanos -= TimeUnit.MINUTES.toNanos(minutes); } - long seconds = TimeUnit.NANOSECONDS.toSeconds(nanos); + final long seconds = TimeUnit.NANOSECONDS.toSeconds(nanos); if (seconds > 0) { parts.add(seconds + "s"); nanos -= TimeUnit.SECONDS.toNanos(seconds); } - long millis = TimeUnit.NANOSECONDS.toMillis(nanos); + final long millis = TimeUnit.NANOSECONDS.toMillis(nanos); if (millis > 0) { parts.add(millis + "ms"); } @@ -81,7 +81,7 @@ public class StringUtils { return StringUtils.join(parts); } - public static String padNumber(int number, int length) { + public static String padNumber(final int number, final int length) { String lc = Integer.toString(number); while (lc.length() < length) { lc = "0" + lc; @@ -92,45 +92,45 @@ public class StringUtils { /** * Turns byte counts into human readable strings. Taken from * https://stackoverflow.com/questions/3758606 - * + * * @param bytes * number of bytes * @param si * true to use SI units * @return formatted string */ - public static String humanReadableByteCount(long bytes, boolean si) { - int unit = si ? 1000 : 1024; + public static String humanReadableByteCount(final long bytes, final boolean si) { + final int unit = si ? 1000 : 1024; if (bytes < unit) return bytes + " B"; - int exp = (int) (Math.log(bytes) / Math.log(unit)); - String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp - 1) + (si ? "" : "i"); + final int exp = (int) (Math.log(bytes) / Math.log(unit)); + final String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp - 1) + (si ? "" : "i"); return String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre); } - public static String humanReadableByteCount(long bytes) { + public static String humanReadableByteCount(final long bytes) { return humanReadableByteCount(bytes, true); } private static Pattern firstNumberPattern = Pattern.compile("[0-9]+"); - public static Integer getFirstNumber(String in) { - Matcher m = firstNumberPattern.matcher(in); + public static Integer getFirstNumber(final String in) { + final Matcher m = firstNumberPattern.matcher(in); if (m.find()) { try { return Integer.parseInt(m.group()); - } catch (NumberFormatException e) {} + } catch (final NumberFormatException e) {} } return null; } - public static String quantity(Number qty, String singular, String plural) { + public static String quantity(final Number qty, final String singular, final String plural) { if (qty.intValue() == 1) return singular; return plural; } - public static String quantity(Number qty, String singular) { + public static String quantity(final Number qty, final String singular) { return quantity(qty, singular, singular + "s"); } @@ -143,37 +143,37 @@ public class StringUtils { return fields.split(","); } - public static String capitalize(String in) { + public static String capitalize(final String in) { if (in == null || in.length() == 0) return in; return in.substring(0, 1).toUpperCase() + in.substring(1); } - public static String decapitalize(String in) { + public static String decapitalize(final String in) { if (in == null || in.length() == 0) return in; return in.substring(0, 1).toLowerCase() + in.substring(1); } - public static String camelToDashCase(String in) { + public static String camelToDashCase(final String in) { if (in == null || in.length() == 0) return in; return in.replaceAll("([A-Z])", "-$1").toLowerCase(); } - public static String dashToCamelCase(String in) { + public static String dashToCamelCase(final String in) { if (in == null || in.length() == 0) return in; - StringBuilder sb = new StringBuilder(); - String[] parts = in.split("-"); + final StringBuilder sb = new StringBuilder(); + final String[] parts = in.split("-"); sb.append(parts[0]); for (int i = 1; i < parts.length; i++) sb.append(StringUtils.capitalize(parts[i])); return sb.toString(); } - public static String repeat(String pattern, int count) { - StringBuilder sb = new StringBuilder(); + public static String repeat(final String pattern, int count) { + final StringBuilder sb = new StringBuilder(); while (count-- > 0) sb.append(pattern); return sb.toString(); diff --git a/vipra-util/src/main/java/de/vipra/util/Timer.java b/vipra-util/src/main/java/de/vipra/util/Timer.java index fecf6572d6660783364f168595a089cfec572a8f..39849b4afacc01f6271f945669ce33ed65cc628f 100644 --- a/vipra-util/src/main/java/de/vipra/util/Timer.java +++ b/vipra-util/src/main/java/de/vipra/util/Timer.java @@ -21,7 +21,7 @@ public class Timer { /** * restart the timer (reset everything) and return the start time - * + * * @return start time */ public long restart() { @@ -32,7 +32,7 @@ public class Timer { /** * Return the current time since start or last lap, whichever is closer. - * + * * @return time since start or last lap */ public long current() { @@ -41,13 +41,13 @@ public class Timer { /** * Create a named lap and reset the lap start time. - * + * * @param name * Name of lap * @return lap time */ - public long lap(String name) { - long lap = System.nanoTime() - start; + public long lap(final String name) { + final long lap = System.nanoTime() - start; start = System.nanoTime(); laps.put(name, lap); return lap; @@ -55,7 +55,7 @@ public class Timer { /** * Get total time since start or last reset, ignoring laps - * + * * @return total time */ public long total() { @@ -66,8 +66,8 @@ public class Timer { public String toString() { String out = null; if (laps != null && laps.size() > 0) { - StringBuilder sb = new StringBuilder(); - for (Entry<String, Long> e : laps.entrySet()) { + final StringBuilder sb = new StringBuilder(); + for (final Entry<String, Long> e : laps.entrySet()) { sb.append(", ").append(e.getKey()).append(": ").append(StringUtils.timeString(e.getValue())); } out = sb.toString().substring(2); diff --git a/vipra-util/src/main/java/de/vipra/util/TopicSimilarity.java b/vipra-util/src/main/java/de/vipra/util/TopicSimilarity.java index f68e5e8e527838e4434a3803ba98c1d0a98240f1..f3d0bfadbcba15c3fae7e102097178627a2eb7f3 100644 --- a/vipra-util/src/main/java/de/vipra/util/TopicSimilarity.java +++ b/vipra-util/src/main/java/de/vipra/util/TopicSimilarity.java @@ -12,7 +12,7 @@ public class TopicSimilarity { return topic; } - public void setTopic(Topic topic) { + public void setTopic(final Topic topic) { this.topic = topic; } @@ -20,7 +20,7 @@ public class TopicSimilarity { return shareCount; } - public void setShareCount(int shareCount) { + public void setShareCount(final int shareCount) { this.shareCount = shareCount; } diff --git a/vipra-util/src/main/java/de/vipra/util/Tuple.java b/vipra-util/src/main/java/de/vipra/util/Tuple.java index fb7995d3b592f1d0e7715d5dd50d1a29dfddcfc5..47613e2f0fd86a184c983b9d35e231d255ee4b1f 100644 --- a/vipra-util/src/main/java/de/vipra/util/Tuple.java +++ b/vipra-util/src/main/java/de/vipra/util/Tuple.java @@ -7,7 +7,7 @@ public class Tuple<X, Y> { public Tuple() {} - public Tuple(X first, Y second) { + public Tuple(final X first, final Y second) { this.first = first; this.second = second; } @@ -16,7 +16,7 @@ public class Tuple<X, Y> { return first; } - public void setFirst(X first) { + public void setFirst(final X first) { this.first = first; } @@ -24,11 +24,11 @@ public class Tuple<X, Y> { return second; } - public void setSecond(Y second) { + public void setSecond(final Y second) { this.second = second; } - public static <X, Y> Tuple<X, Y> pair(X first, Y second) { + public static <X, Y> Tuple<X, Y> pair(final X first, final Y second) { return new Tuple<>(first, second); } diff --git a/vipra-util/src/main/java/de/vipra/util/ex/ConfigException.java b/vipra-util/src/main/java/de/vipra/util/ex/ConfigException.java index 02afde9221b2c4cf5f18f73410d9d12f589df169..c9aad0005be219e42a13bc81600f6e5c59e65e85 100644 --- a/vipra-util/src/main/java/de/vipra/util/ex/ConfigException.java +++ b/vipra-util/src/main/java/de/vipra/util/ex/ConfigException.java @@ -4,7 +4,7 @@ public class ConfigException extends Exception { private static final long serialVersionUID = 1L; - public ConfigException(String string) { + public ConfigException(final String string) { super(string); } diff --git a/vipra-util/src/main/java/de/vipra/util/ex/DatabaseException.java b/vipra-util/src/main/java/de/vipra/util/ex/DatabaseException.java index 6782255bffd24675ad65aa7f29641ccdf864e0a4..2f62371b0952a95357e4a593fc07ecfe03e61127 100644 --- a/vipra-util/src/main/java/de/vipra/util/ex/DatabaseException.java +++ b/vipra-util/src/main/java/de/vipra/util/ex/DatabaseException.java @@ -4,11 +4,11 @@ public class DatabaseException extends Exception { private static final long serialVersionUID = 1L; - public DatabaseException(String msg) { + public DatabaseException(final String msg) { super(msg); } - public DatabaseException(Exception e) { + public DatabaseException(final Exception e) { super(e); } diff --git a/vipra-util/src/main/java/de/vipra/util/model/Article.java b/vipra-util/src/main/java/de/vipra/util/model/Article.java index 36a13c525e6ffa5fee8fda9036920d2db05e89d0..4bfd8d55096952a75bf4f78b2d834feb4465f97a 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/Article.java +++ b/vipra-util/src/main/java/de/vipra/util/model/Article.java @@ -19,7 +19,7 @@ public class Article implements Model<ObjectId>, Serializable { public Article() {} - public Article(ObjectId id) { + public Article(final ObjectId id) { this.id = id; } @@ -29,7 +29,7 @@ public class Article implements Model<ObjectId>, Serializable { } @Override - public void setId(ObjectId id) { + public void setId(final ObjectId id) { this.id = id; } @@ -37,17 +37,17 @@ public class Article implements Model<ObjectId>, Serializable { return title; } - public void setTitle(String title) { + public void setTitle(final String title) { this.title = title; } @Override - public boolean equals(Object o) { + public boolean equals(final Object o) { if (o == null) return false; if (!(o instanceof Article)) return false; - Article a = (Article) o; + final Article a = (Article) o; if (id == null) return a.getId() == null; return id.equals(a.getId()); diff --git a/vipra-util/src/main/java/de/vipra/util/model/ArticleFull.java b/vipra-util/src/main/java/de/vipra/util/model/ArticleFull.java index ec0e92cf76332c85b4d344942645a2aaef0e05d5..2f123629ebc746941ec5a204b4818793f1eaec47 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/ArticleFull.java +++ b/vipra-util/src/main/java/de/vipra/util/model/ArticleFull.java @@ -73,11 +73,11 @@ public class ArticleFull extends FileModel<ObjectId> implements Serializable { } @Override - public void setId(ObjectId id) { + public void setId(final ObjectId id) { this.id = id; } - public void setId(String id) { + public void setId(final String id) { this.id = MongoUtils.objectId(id); } @@ -85,7 +85,7 @@ public class ArticleFull extends FileModel<ObjectId> implements Serializable { return title; } - public void setTitle(String title) { + public void setTitle(final String title) { this.title = title; } @@ -93,7 +93,7 @@ public class ArticleFull extends FileModel<ObjectId> implements Serializable { return text; } - public void setText(String text) { + public void setText(final String text) { this.text = text; } @@ -111,7 +111,7 @@ public class ArticleFull extends FileModel<ObjectId> implements Serializable { return processedText; } - public void setProcessedText(String[] processedText) { + public void setProcessedText(final String[] processedText) { this.processedText = processedText; } @@ -119,7 +119,7 @@ public class ArticleFull extends FileModel<ObjectId> implements Serializable { return url; } - public void setUrl(String url) { + public void setUrl(final String url) { this.url = url; } @@ -127,15 +127,15 @@ public class ArticleFull extends FileModel<ObjectId> implements Serializable { return date; } - public void setDate(Date date) { + public void setDate(final Date date) { this.date = date; } - public void setDate(String date) { - SimpleDateFormat df = new SimpleDateFormat(Constants.DATETIME_FORMAT); + public void setDate(final String date) { + final SimpleDateFormat df = new SimpleDateFormat(Constants.DATETIME_FORMAT); try { setDate(df.parse(date)); - } catch (ParseException e) { + } catch (final ParseException e) { log.error("could not parse date " + date); } } @@ -144,17 +144,17 @@ public class ArticleFull extends FileModel<ObjectId> implements Serializable { return topics; } - public void setTopics(List<TopicRef> topics) { + public void setTopics(final List<TopicRef> topics) { this.topics = topics; } @ElasticIndex("topics") public String[] serializeTopics() { - List<TopicRef> refs = getTopics(); + final List<TopicRef> refs = getTopics(); if (refs == null) return new String[0]; - List<String> topics = new ArrayList<>(refs.size()); - for (TopicRef ref : refs) { + final List<String> topics = new ArrayList<>(refs.size()); + for (final TopicRef ref : refs) { topics.add(ref.getTopic().getName()); } return topics.toArray(new String[topics.size()]); @@ -164,7 +164,7 @@ public class ArticleFull extends FileModel<ObjectId> implements Serializable { return stats; } - public void setStats(ArticleStats stats) { + public void setStats(final ArticleStats stats) { this.stats = stats; } @@ -172,7 +172,7 @@ public class ArticleFull extends FileModel<ObjectId> implements Serializable { return created; } - public void setCreated(Date created) { + public void setCreated(final Date created) { this.created = created; } @@ -180,7 +180,7 @@ public class ArticleFull extends FileModel<ObjectId> implements Serializable { return modified; } - public void setModified(Date modified) { + public void setModified(final Date modified) { this.modified = modified; } @@ -188,19 +188,19 @@ public class ArticleFull extends FileModel<ObjectId> implements Serializable { return meta; } - public void setMeta(NestedMap meta) { + public void setMeta(final NestedMap meta) { this.meta = meta; } - public void addMeta(String key, Object value) { + public void addMeta(final String key, final Object value) { if (meta == null) meta = new NestedMap(); meta.put(key, value); } @Override - public void fromFile(File file) throws IOException { - List<String> lines = FileUtils.readFile(file); + public void fromFile(final File file) throws IOException { + final List<String> lines = FileUtils.readFile(file); setTitle(lines.get(0)); setText(StringUtils.join(lines.subList(1, lines.size()))); } @@ -224,12 +224,12 @@ public class ArticleFull extends FileModel<ObjectId> implements Serializable { } @Override - public boolean equals(Object o) { + public boolean equals(final Object o) { if (o == null) return false; if (!(o instanceof ArticleFull)) return false; - ArticleFull a = (ArticleFull) o; + final ArticleFull a = (ArticleFull) o; if (id == null) return a.getId() == null; return id.equals(a.getId()); diff --git a/vipra-util/src/main/java/de/vipra/util/model/ArticleStats.java b/vipra-util/src/main/java/de/vipra/util/model/ArticleStats.java index 5e1dfedc955a7492be6a13e770a44ac72c179cbe..3861683d9c54a7b93ca9a4fdb58796c634ad98f0 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/ArticleStats.java +++ b/vipra-util/src/main/java/de/vipra/util/model/ArticleStats.java @@ -18,7 +18,7 @@ public class ArticleStats implements Serializable { return wordCount; } - public void setWordCount(Long wordCount) { + public void setWordCount(final Long wordCount) { this.wordCount = wordCount; } @@ -26,7 +26,7 @@ public class ArticleStats implements Serializable { return uniqueWordCount; } - public void setUniqueWordCount(Long uniqueWordCount) { + public void setUniqueWordCount(final Long uniqueWordCount) { this.uniqueWordCount = uniqueWordCount; } @@ -34,7 +34,7 @@ public class ArticleStats implements Serializable { return processedWordCount; } - public void setProcessedWordCount(Long processedWordCount) { + public void setProcessedWordCount(final Long processedWordCount) { this.processedWordCount = processedWordCount; } @@ -42,7 +42,7 @@ public class ArticleStats implements Serializable { return reductionRatio; } - public void setReductionRatio(Double reductionRatio) { + public void setReductionRatio(final Double reductionRatio) { this.reductionRatio = reductionRatio; } diff --git a/vipra-util/src/main/java/de/vipra/util/model/FileModel.java b/vipra-util/src/main/java/de/vipra/util/model/FileModel.java index a2e6c82f477efd90ffebac8686de7c89c4dd0a3e..aa681bd69818e8f48062ba429ca3a5560b8db2a8 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/FileModel.java +++ b/vipra-util/src/main/java/de/vipra/util/model/FileModel.java @@ -10,7 +10,7 @@ import de.vipra.util.Constants; @SuppressWarnings("serial") public abstract class FileModel<IdType> implements Model<IdType> { - public void writeToFile(File file) throws IOException { + public void writeToFile(final File file) throws IOException { FileUtils.writeStringToFile(file, toFileString(), Constants.FILEBASE_ENCODING, false); } diff --git a/vipra-util/src/main/java/de/vipra/util/model/Sequence.java b/vipra-util/src/main/java/de/vipra/util/model/Sequence.java index 23e8fbf06ee52e551602db4a89f0def29a87b6b1..4753ff9c51ccc608677d64727feb1fda2c79bbe6 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/Sequence.java +++ b/vipra-util/src/main/java/de/vipra/util/model/Sequence.java @@ -18,7 +18,7 @@ public class Sequence implements Comparable<Sequence>, Serializable { return number; } - public void setNumber(Integer number) { + public void setNumber(final Integer number) { this.number = number; } @@ -26,12 +26,12 @@ public class Sequence implements Comparable<Sequence>, Serializable { return words; } - public void setWords(List<TopicWord> words) { + public void setWords(final List<TopicWord> words) { this.words = words; } @Override - public int compareTo(Sequence o) { + public int compareTo(final Sequence o) { return this.number - o.getNumber(); } diff --git a/vipra-util/src/main/java/de/vipra/util/model/Topic.java b/vipra-util/src/main/java/de/vipra/util/model/Topic.java index 133be4d4b0ba5d5d4ec3e70f328474a9049772fd..c05d4be112d602e98fc7700b467d819e6dd2fec1 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/Topic.java +++ b/vipra-util/src/main/java/de/vipra/util/model/Topic.java @@ -21,11 +21,11 @@ public class Topic implements Model<ObjectId>, Serializable { public Topic() {} - public Topic(ObjectId id) { + public Topic(final ObjectId id) { this.id = id; } - public Topic(ObjectId id, String name) { + public Topic(final ObjectId id, final String name) { this.id = id; this.name = name; } @@ -36,11 +36,11 @@ public class Topic implements Model<ObjectId>, Serializable { } @Override - public void setId(ObjectId id) { + public void setId(final ObjectId id) { this.id = id; } - public void setId(String id) { + public void setId(final String id) { this.id = MongoUtils.objectId(id); } @@ -48,17 +48,17 @@ public class Topic implements Model<ObjectId>, Serializable { return name; } - public void setName(String name) { + public void setName(final String name) { this.name = name; } @Override - public boolean equals(Object o) { + public boolean equals(final Object o) { if (o == null) return false; if (!(o instanceof Topic)) return false; - Topic a = (Topic) o; + final Topic a = (Topic) o; if (id == null) return a.getId() == null; return id.equals(a.getId()); diff --git a/vipra-util/src/main/java/de/vipra/util/model/TopicFull.java b/vipra-util/src/main/java/de/vipra/util/model/TopicFull.java index 3d89fe1815ec6fff6063d22c894ce0c30c2f4a6f..edbd7e08a3fc9b961959d22b19a7df8ebd737498 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/TopicFull.java +++ b/vipra-util/src/main/java/de/vipra/util/model/TopicFull.java @@ -45,11 +45,11 @@ public class TopicFull implements Model<ObjectId>, Serializable { } @Override - public void setId(ObjectId id) { + public void setId(final ObjectId id) { this.id = id; } - public void setId(String id) { + public void setId(final String id) { this.id = MongoUtils.objectId(id); } @@ -57,7 +57,7 @@ public class TopicFull implements Model<ObjectId>, Serializable { return name; } - public void setName(String name) { + public void setName(final String name) { this.name = name; } @@ -65,7 +65,7 @@ public class TopicFull implements Model<ObjectId>, Serializable { return index; } - public void setIndex(Integer index) { + public void setIndex(final Integer index) { this.index = index; } @@ -73,7 +73,7 @@ public class TopicFull implements Model<ObjectId>, Serializable { return words; } - public void setWords(List<TopicWord> topicWords) { + public void setWords(final List<TopicWord> topicWords) { this.words = topicWords; } @@ -81,7 +81,7 @@ public class TopicFull implements Model<ObjectId>, Serializable { return sequences; } - public void setSequences(List<Sequence> sequences) { + public void setSequences(final List<Sequence> sequences) { this.sequences = sequences; } @@ -89,7 +89,7 @@ public class TopicFull implements Model<ObjectId>, Serializable { return created; } - public void setCreated(Date created) { + public void setCreated(final Date created) { this.created = created; } @@ -97,7 +97,7 @@ public class TopicFull implements Model<ObjectId>, Serializable { return modified; } - public void setModified(Date modified) { + public void setModified(final Date modified) { this.modified = modified; } @@ -114,11 +114,11 @@ public class TopicFull implements Model<ObjectId>, Serializable { this.created = modified; } - public static String getNameFromWords(List<TopicWord> words) { + public static String getNameFromWords(final List<TopicWord> words) { String name = null; if (words != null && words.size() > 0) { - int size = Math.min(Constants.TOPIC_AUTO_NAMING_WORDS, words.size()); - List<String> topWords = new ArrayList<>(size); + final int size = Math.min(Constants.TOPIC_AUTO_NAMING_WORDS, words.size()); + final List<String> topWords = new ArrayList<>(size); for (int i = 0; i < size; i++) { topWords.add(words.get(i).getWord().getId()); } @@ -128,12 +128,12 @@ public class TopicFull implements Model<ObjectId>, Serializable { } @Override - public boolean equals(Object o) { + public boolean equals(final Object o) { if (o == null) return false; if (!(o instanceof TopicFull)) return false; - TopicFull a = (TopicFull) o; + final TopicFull a = (TopicFull) o; if (id == null) return a.getId() == null; return id.equals(a.getId()); diff --git a/vipra-util/src/main/java/de/vipra/util/model/TopicRef.java b/vipra-util/src/main/java/de/vipra/util/model/TopicRef.java index 4cf31122d1776ee45e4e45a90eabc9bfb7d76000..dd5401126f378274fb4a4655a72456f04e5fb254 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/TopicRef.java +++ b/vipra-util/src/main/java/de/vipra/util/model/TopicRef.java @@ -20,7 +20,7 @@ public class TopicRef implements Comparable<TopicRef>, Serializable { return count; } - public void setCount(Integer count) { + public void setCount(final Integer count) { this.count = count; } @@ -28,7 +28,7 @@ public class TopicRef implements Comparable<TopicRef>, Serializable { return topic; } - public void setTopic(Topic topic) { + public void setTopic(final Topic topic) { this.topic = topic; } @@ -36,12 +36,12 @@ public class TopicRef implements Comparable<TopicRef>, Serializable { return share; } - public void setShare(Double share) { + public void setShare(final Double share) { this.share = share; } @Override - public int compareTo(TopicRef arg0) { + public int compareTo(final TopicRef arg0) { return count - arg0.getCount(); } diff --git a/vipra-util/src/main/java/de/vipra/util/model/TopicWord.java b/vipra-util/src/main/java/de/vipra/util/model/TopicWord.java index dcff079775e7f2448772a2fb5919c90b35d7c74e..15d01a0f7603c602b6e3df9bf9a3782363169585 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/TopicWord.java +++ b/vipra-util/src/main/java/de/vipra/util/model/TopicWord.java @@ -21,7 +21,7 @@ public class TopicWord implements Comparable<TopicWord>, Serializable { public TopicWord() {} - public TopicWord(Word word, Double likeliness) { + public TopicWord(final Word word, final Double likeliness) { this.word = word; this.likeliness = likeliness; } @@ -30,7 +30,7 @@ public class TopicWord implements Comparable<TopicWord>, Serializable { return word; } - public void setWord(Word word) { + public void setWord(final Word word) { this.word = word; } @@ -40,7 +40,7 @@ public class TopicWord implements Comparable<TopicWord>, Serializable { } @JsonSetter("id") - public void setWordString(String word) { + public void setWordString(final String word) { this.word = new Word(word); } @@ -48,13 +48,13 @@ public class TopicWord implements Comparable<TopicWord>, Serializable { return likeliness; } - public void setLikeliness(Double likeliness) { + public void setLikeliness(final Double likeliness) { this.likeliness = likeliness; } @Override - public int compareTo(TopicWord o) { - double l = likeliness - o.getLikeliness(); + public int compareTo(final TopicWord o) { + final double l = likeliness - o.getLikeliness(); if (l > 0) return 1; if (l < 0) diff --git a/vipra-util/src/main/java/de/vipra/util/model/Word.java b/vipra-util/src/main/java/de/vipra/util/model/Word.java index 0bcd53950ee4a27b421802692acdc84ec007587d..f7f79962da7315712a4e02f3b2ed303f0c156154 100644 --- a/vipra-util/src/main/java/de/vipra/util/model/Word.java +++ b/vipra-util/src/main/java/de/vipra/util/model/Word.java @@ -38,7 +38,7 @@ public class Word implements Model<String>, Serializable { public Word() {} - public Word(String id) { + public Word(final String id) { this.id = id; } @@ -48,7 +48,7 @@ public class Word implements Model<String>, Serializable { } @Override - public void setId(String id) { + public void setId(final String id) { this.id = id; } @@ -56,7 +56,7 @@ public class Word implements Model<String>, Serializable { return isCreated; } - public void setIsCreated(boolean created) { + public void setIsCreated(final boolean created) { this.isCreated = created; } @@ -64,7 +64,7 @@ public class Word implements Model<String>, Serializable { return created; } - public void setCreated(Date created) { + public void setCreated(final Date created) { this.created = created; } @@ -81,12 +81,12 @@ public class Word implements Model<String>, Serializable { } @Override - public boolean equals(Object o) { + public boolean equals(final Object o) { if (o == null) return false; if (!(o instanceof Word)) return false; - Word w = (Word) o; + final Word w = (Word) o; if (id == null) return w.getId() == null; return this.id.equals(w.getId()); diff --git a/vipra-util/src/main/java/de/vipra/util/service/MongoService.java b/vipra-util/src/main/java/de/vipra/util/service/MongoService.java index e0e2a7107cf9d1c80a698f1b294ef7dc5a648aa3..664382a65b546beb603f79fb6fd58bdee1d9b479 100644 --- a/vipra-util/src/main/java/de/vipra/util/service/MongoService.java +++ b/vipra-util/src/main/java/de/vipra/util/service/MongoService.java @@ -28,23 +28,23 @@ public class MongoService<Type extends Model<IdType>, IdType> implements Service private final String[] ignoredFieldsMultiQuery; private final Map<String, Field> updateFields; - public MongoService(Mongo mongo, Class<Type> clazz) { + public MongoService(final Mongo mongo, final Class<Type> clazz) { this.datastore = mongo.getDatastore(); this.clazz = clazz; - List<String> ignoreSingle = new ArrayList<>(); - List<String> ignoreMulti = new ArrayList<>(); - Field[] fields = clazz.getDeclaredFields(); + final List<String> ignoreSingle = new ArrayList<>(); + final List<String> ignoreMulti = new ArrayList<>(); + final Field[] fields = clazz.getDeclaredFields(); this.updateFields = new HashMap<>(fields.length); - for (Field field : fields) { + for (final Field field : fields) { if (!field.isAccessible()) field.setAccessible(true); - UpdateIgnore ui = field.getDeclaredAnnotation(UpdateIgnore.class); + final UpdateIgnore ui = field.getDeclaredAnnotation(UpdateIgnore.class); if (ui == null) this.updateFields.put(field.getName(), field); - QueryIgnore qi = field.getDeclaredAnnotation(QueryIgnore.class); + final QueryIgnore qi = field.getDeclaredAnnotation(QueryIgnore.class); if (qi != null) { if (qi.single() || qi.all()) ignoreSingle.add(field.getName()); @@ -57,34 +57,35 @@ public class MongoService<Type extends Model<IdType>, IdType> implements Service } @Override - public Type getSingle(IdType id, boolean allFields, String... fields) throws DatabaseException { + public Type getSingle(final IdType id, final boolean allFields, final String... fields) throws DatabaseException { if (id == null) throw new DatabaseException(new NullPointerException("id is null")); - Query<Type> query = datastore.createQuery(clazz).field("_id").equal(id); + final Query<Type> query = datastore.createQuery(clazz).field("_id").equal(id); if (fields != null && fields.length > 0) query.retrievedFields(true, fields); else if (!allFields && ignoredFieldsSingleQuery.length > 0) query.retrievedFields(false, ignoredFieldsSingleQuery); - Type t = query.get(); + final Type t = query.get(); return t; } @Override - public List<Type> getMultiple(Integer skip, Integer limit, String sortBy, String... fields) { + public List<Type> getMultiple(final Integer skip, final Integer limit, final String sortBy, + final String... fields) { return getMultiple(QueryBuilder.builder().skip(skip).limit(limit).sortBy(sortBy).fields(true, fields)); } @Override - public List<Type> getMultiple(Integer skip, Integer limit, String sortBy, Tuple<String, Object> criteria, - String... fields) { + public List<Type> getMultiple(final Integer skip, final Integer limit, final String sortBy, + final Tuple<String, Object> criteria, final String... fields) { return getMultiple( QueryBuilder.builder().skip(skip).limit(limit).sortBy(sortBy).fields(true, fields).criteria(criteria)); } @Override - public List<Type> getMultiple(QueryBuilder builder) { - Query<Type> query = datastore.createQuery(clazz); + public List<Type> getMultiple(final QueryBuilder builder) { + final Query<Type> query = datastore.createQuery(clazz); if (builder != null) { if (builder.getSkip() != null && builder.getSkip() > 0) @@ -94,10 +95,10 @@ public class MongoService<Type extends Model<IdType>, IdType> implements Service if (builder.getSortBy() != null) query.order(builder.getSortBy()); if (builder.getCriteria() != null) - for (Tuple<String, Object> criteria : builder.getCriteria()) + for (final Tuple<String, Object> criteria : builder.getCriteria()) query.field(criteria.first()).equal(criteria.second()); if (builder.getFields() != null) { - String[] fields = builder.getFields(); + final String[] fields = builder.getFields(); if (builder.isInclude()) { query.retrievedFields(true, fields); } else { @@ -109,17 +110,17 @@ public class MongoService<Type extends Model<IdType>, IdType> implements Service } else if (ignoredFieldsMultiQuery.length > 0) { query.retrievedFields(false, ignoredFieldsMultiQuery); } - List<Type> list = query.asList(); + final List<Type> list = query.asList(); return list; } @Override - public List<Type> getAll(String... fields) { + public List<Type> getAll(final String... fields) { return getMultiple(QueryBuilder.builder().fields(true, fields)); } @Override - public Type createSingle(Type t) throws DatabaseException { + public Type createSingle(final Type t) throws DatabaseException { if (t == null) throw new DatabaseException(new NullPointerException("entity is null")); @@ -128,34 +129,34 @@ public class MongoService<Type extends Model<IdType>, IdType> implements Service } @Override - public List<Type> createMultiple(Iterable<Type> t) throws DatabaseException { + public List<Type> createMultiple(final Iterable<Type> t) throws DatabaseException { if (t == null) throw new DatabaseException(new NullPointerException("entities are null")); - List<Type> list = ListUtils.toList(t); + final List<Type> list = ListUtils.toList(t); datastore.save(list); return list; } @Override - public long deleteSingle(IdType id) throws DatabaseException { + public long deleteSingle(final IdType id) throws DatabaseException { if (id == null) throw new DatabaseException(new NullPointerException("id is null")); - int deleted = datastore.delete(clazz, id).getN(); + final int deleted = datastore.delete(clazz, id).getN(); return deleted; } @Override - public long deleteMultiple(Iterable<IdType> ids) throws DatabaseException { + public long deleteMultiple(final Iterable<IdType> ids) throws DatabaseException { if (ids == null) throw new DatabaseException(new NullPointerException("ids are null")); - int deleted = datastore.delete(clazz, ids).getN(); + final int deleted = datastore.delete(clazz, ids).getN(); return deleted; } @Override - public void replaceSingle(Type t) throws DatabaseException { + public void replaceSingle(final Type t) throws DatabaseException { if (t == null) throw new DatabaseException(new NullPointerException("entity is null")); if (t.getId() == null) @@ -165,7 +166,7 @@ public class MongoService<Type extends Model<IdType>, IdType> implements Service } @Override - public void replaceMultiple(Iterable<Type> ts) throws DatabaseException { + public void replaceMultiple(final Iterable<Type> ts) throws DatabaseException { if (ts == null) throw new DatabaseException(new NullPointerException("entities are null")); @@ -173,7 +174,7 @@ public class MongoService<Type extends Model<IdType>, IdType> implements Service } @Override - public void updateSingle(Type t, String... fields) throws DatabaseException { + public void updateSingle(final Type t, final String... fields) throws DatabaseException { if (t == null) throw new DatabaseException(new NullPointerException("entity is null")); if (t.getId() == null) @@ -182,17 +183,17 @@ public class MongoService<Type extends Model<IdType>, IdType> implements Service if (fields == null || fields.length == 0) { replaceSingle(t); } else { - Query<Type> query = datastore.createQuery(clazz).field("_id").equal(t.getId()); - UpdateOperations<Type> ops = datastore.createUpdateOperations(clazz); + final Query<Type> query = datastore.createQuery(clazz).field("_id").equal(t.getId()); + final UpdateOperations<Type> ops = datastore.createUpdateOperations(clazz); boolean noChanges = true; - for (String fieldName : fields) { + for (final String fieldName : fields) { if (!this.updateFields.containsKey(fieldName)) throw new DatabaseException("field unknown: " + fieldName); - Field field = this.updateFields.get(fieldName); + final Field field = this.updateFields.get(fieldName); if (field == null) continue; try { - Object value = field.get(t); + final Object value = field.get(t); if (value == null) ops.unset(fieldName); else @@ -213,25 +214,25 @@ public class MongoService<Type extends Model<IdType>, IdType> implements Service } @Override - public long count(QueryBuilder builder) { + public long count(final QueryBuilder builder) { if (builder == null) return datastore.getCount(clazz); - Query<Type> query = datastore.createQuery(clazz); + final Query<Type> query = datastore.createQuery(clazz); if (builder.getSkip() != null && builder.getSkip() > 0) query.offset(builder.getSkip()); if (builder.getLimit() != null && builder.getLimit() > 0) query.limit(builder.getLimit()); if (builder.getCriteria() != null) - for (Tuple<String, Object> criteria : builder.getCriteria()) + for (final Tuple<String, Object> criteria : builder.getCriteria()) query.field(criteria.first()).equal(criteria.second()); return datastore.getCount(query); } - public static <Type extends Model<IdType>, IdType> MongoService<Type, IdType> getDatabaseService(Config config, - Class<Type> clazz) throws ConfigException { - Mongo mongo = config.getMongo(); + public static <Type extends Model<IdType>, IdType> MongoService<Type, IdType> getDatabaseService( + final Config config, final Class<Type> clazz) throws ConfigException { + final Mongo mongo = config.getMongo(); return new MongoService<Type, IdType>(mongo, clazz); } diff --git a/vipra-util/src/main/java/de/vipra/util/service/Service.java b/vipra-util/src/main/java/de/vipra/util/service/Service.java index 136e57580ddad941af8fb1632c29c4818192ad69..416903495ef3297f5fc00146164b3ac6b71b5e52 100644 --- a/vipra-util/src/main/java/de/vipra/util/service/Service.java +++ b/vipra-util/src/main/java/de/vipra/util/service/Service.java @@ -21,7 +21,7 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Returns a single entity from the database or null - * + * * @param id * id of the entity * @param fields @@ -44,7 +44,7 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Returns multiple entities from the database. - * + * * @param builder * query builder * @return found entities @@ -55,7 +55,7 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Return all entities. - * + * * @param fields * fields to be returned * @return all entities @@ -65,7 +65,7 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Create a single entity in the database - * + * * @param t * Entity to be created * @return Created entity, with inserted id if supported @@ -75,7 +75,7 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Create multiple entities in the database - * + * * @param t * Entities to be created * @return Created entities, with inserted ids if supported @@ -85,7 +85,7 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Deletes a single entity from the database - * + * * @param id * id of entity to be deleted * @return number of deleted entities @@ -95,7 +95,7 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Deletes multiple entries from the database - * + * * @param ids * Entities to be deleted * @return number of deleted entries @@ -105,7 +105,7 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Replaces a single entity in the database - * + * * @param t * Entity to be updated * @throws E @@ -114,7 +114,7 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Replaces multiple entities in the database - * + * * @param ts * Entities to be updated * @throws E @@ -123,7 +123,7 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Updates a single entity in the database - * + * * @param t * Entity to be updated * @param fields @@ -134,14 +134,14 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Drop all entities from the database - * + * * @throws E */ void drop() throws E; /** * Count entities in the database - * + * * @return number of entities in the database * @throws E */ @@ -150,7 +150,7 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * QueryBuilder instances are used to create complex queries for use with * the getMultiple method - * + * * @see {@link Service#getMultiple(QueryBuilder)} */ public static class QueryBuilder { @@ -170,12 +170,12 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Skip n entries - * + * * @param skip * entries to skip * @return QueryBuilder instance */ - public QueryBuilder skip(Integer skip) { + public QueryBuilder skip(final Integer skip) { if (skip == null || skip >= 0) this.skip = skip; return this; @@ -183,12 +183,12 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Limit return size. - * + * * @param limit * maximum return size * @return QueryBuilder instance */ - public QueryBuilder limit(Integer limit) { + public QueryBuilder limit(final Integer limit) { if (limit == null || limit >= 0) this.limit = limit; return this; @@ -196,12 +196,12 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Sort result by field - * + * * @param sortBy * field to sort by. * @return QueryBuilder instance */ - public QueryBuilder sortBy(String sortBy) { + public QueryBuilder sortBy(final String sortBy) { if (sortBy == null || !sortBy.isEmpty()) this.sortBy = sortBy; return this; @@ -209,14 +209,14 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Criteria used for filtering by field - * + * * @param field * field to compare * @param value * value to compare to * @return QueryBuilder instance */ - public QueryBuilder criteria(String field, Object value) { + public QueryBuilder criteria(final String field, final Object value) { if (field != null && value != null && !field.isEmpty()) criteria(Tuple.pair(field, value)); return this; @@ -224,12 +224,12 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Criteria used for filtering by field - * + * * @param pair * field value pair to compare * @return QueryBuilder instance */ - public QueryBuilder criteria(Tuple<String, Object> pair) { + public QueryBuilder criteria(final Tuple<String, Object> pair) { if (pair != null) { if (criteria == null) { criteria = new ArrayList<>(); @@ -242,14 +242,14 @@ public interface Service<Type extends Model<IdType>, IdType, E extends Exception /** * Fields to return. Set include to false to exclude. Cannot be applied * multiple times, previous calls will be overwritten by later calls. - * + * * @param include * true to include, false to exclude * @param strings * fields to in/exclude * @return QueryBuilder instance */ - public QueryBuilder fields(boolean include, String... strings) { + public QueryBuilder fields(final boolean include, final String... strings) { this.include = include; this.fields = strings; return this;