
net.rationalminds.util.Dictionary Maven / Gradle / Ivy
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package net.rationalminds.util;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Vaibhav Singh
*/
public class Dictionary {
public static PredictionModelNode monthPredictionTree = new PredictionModelNode();
public static PredictionModelNode weekPredictionTree = new PredictionModelNode();
public static PredictionModelNode patternPredictionTree = new PredictionModelNode();
public static PredictionModelNode timePredictionTree = new PredictionModelNode();
public static final List WEEKDAY_FULL = new ArrayList();
public static final List WEEKDAY_SHORT = new ArrayList();
public static final List MONTH_FULL = new ArrayList();
public static final List MONTH_SHORT = new ArrayList();
public static final List PATTERN = new ArrayList();
public static final List TIME_PATTERN = new ArrayList();
public static final int MONTH_LITERAL = 1;
public static final int WEEKDAY_LITERAL = 2;
public static final int DIGIT_LITERAL = 3;
public static final int THREE_DIGIT_LITERAL = 4;
public static final int FOUR_DIGIT_LITERAL = 5;
public static final int DATE_PHRASE = 6;
public static final int NOT_DATE_LITERAL = -1;
static {
WEEKDAY_FULL.add("sunday");
WEEKDAY_FULL.add("monday");
WEEKDAY_FULL.add("tuesday");
WEEKDAY_FULL.add("wednesday");
WEEKDAY_FULL.add("thursday");
WEEKDAY_FULL.add("friday");
WEEKDAY_FULL.add("saturday");
WEEKDAY_SHORT.add("sun");
WEEKDAY_SHORT.add("mon");
WEEKDAY_SHORT.add("tue");
WEEKDAY_SHORT.add("wed");
WEEKDAY_SHORT.add("thu");
WEEKDAY_SHORT.add("fri");
WEEKDAY_SHORT.add("sat");
MONTH_FULL.add("january");
MONTH_FULL.add("february");
MONTH_FULL.add("march");
MONTH_FULL.add("april");
MONTH_FULL.add("may");
MONTH_FULL.add("june");
MONTH_FULL.add("july");
MONTH_FULL.add("august");
MONTH_FULL.add("september");
MONTH_FULL.add("october");
MONTH_FULL.add("november");
MONTH_FULL.add("december");
MONTH_SHORT.add("jan");
MONTH_SHORT.add("feb");
MONTH_SHORT.add("mar");
MONTH_SHORT.add("apr");
MONTH_SHORT.add("may");
MONTH_SHORT.add("jun");
MONTH_SHORT.add("jul");
MONTH_SHORT.add("aug");
MONTH_SHORT.add("sep");
MONTH_SHORT.add("oct");
MONTH_SHORT.add("nov");
MONTH_SHORT.add("dec");
PATTERN.add("DDDD*DD*DD");
PATTERN.add("DDDD*D*DD");
PATTERN.add("DDDD*DD*D");
PATTERN.add("DDDD*D*D");
PATTERN.add("DD*DD*DD");
PATTERN.add("DD*D*DD");
PATTERN.add("DD*DD*D");
PATTERN.add("DD*D*D");
PATTERN.add("DD*DD*DDDD");
PATTERN.add("D*DD*DDDD");
PATTERN.add("DD*D*DDDD");
PATTERN.add("D*D*DDDD");
PATTERN.add("DD*DD*DD");
PATTERN.add("D*DD*DD");
PATTERN.add("DD*D*DD");
PATTERN.add("D*D*DD");
PATTERN.add("DDDD*M*DD");
PATTERN.add("DDDD*M*D");
PATTERN.add("DD*M*DD");
PATTERN.add("DD*M*D");
PATTERN.add("DD*M*DDDD");
PATTERN.add("D*M*DDDD");
PATTERN.add("DD*M*DD");
PATTERN.add("D*M*DD");
PATTERN.add("M*DD*DDDD");
PATTERN.add("M*D*DDDD");
PATTERN.add("M*DD*DD");
PATTERN.add("M*D*DD");
TIME_PATTERN.add("DD:DD:DD");
TIME_PATTERN.add("DD:DD:DD am");
TIME_PATTERN.add("DD:DD:DD pm");
TIME_PATTERN.add("DD:DD:DD.DDD");
TIME_PATTERN.add("DD:DD:DD.DDD am");
TIME_PATTERN.add("DD:DD:DD.DDD pm");
monthPredictionTree.level = 0;
monthPredictionTree.charcter = '0';
patternPredictionTree.level=0;
patternPredictionTree.charcter='0';
timePredictionTree.level=0;
timePredictionTree.charcter='0';
buildTree(MONTH_FULL, monthPredictionTree);
buildTree(MONTH_SHORT, monthPredictionTree);
buildTree(PATTERN, patternPredictionTree);
buildTree(TIME_PATTERN, timePredictionTree);
}
private static void buildTree(List itemList, PredictionModelNode parentNode) {
for (String s : itemList) {
PredictionModelNode parent = parentNode;
parentNode.charcter=0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
PredictionModelNode node = parent.getChild(c);
if (node == null) {
PredictionModelNode child = new PredictionModelNode();
child.charcter = c;
if (i + 1 == s.length()) {
child.explictDateFragment = true;
}
parent.addChild(child);
parent = child;
} else {
if (i + 1 == s.length()) {
node.explictDateFragment = true;
}
parent = node;
}
}
}
}
public static void printTree(PredictionModelNode tree) {
for (int i = 0; i < tree.level; i++) {
System.out.print("+");
}
if (tree.explictDateFragment) {
System.out.print(tree.charcter + "^");
} else {
System.out.print(tree.charcter);
}
System.out.println("");;
if (tree != null && tree.childern != null) {
for (PredictionModelNode child : tree.childern) {
printTree(child);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy