package jplag.text; public class TextToken extends jplag.Token { private static final long serialVersionUID = 4301179216570538972L; public static int getSerial(String text, Parser parser) { text = text.toLowerCase(); Integer obj = (Integer) parser.tokenStructure.table.get(text); if(obj == null) { obj = new Integer(parser.tokenStructure.serial); if(parser.tokenStructure.serial == Integer.MAX_VALUE) parser.outOfSerials(); else parser.tokenStructure.serial++; parser.tokenStructure.table.put(text, obj); if(parser.tokenStructure.reverseMapping != null) parser.tokenStructure.reverseMapping = null; } return obj.intValue(); } // throw away this method soon: public static String type2string(int i, TokenStructure tokenStructure) { if(tokenStructure.reverseMapping == null) tokenStructure.createReverseMapping(); return tokenStructure.reverseMapping[i]; } // ///////////////////// END OF STATIC MEMBERS private int line, column, length; private String text; public TextToken(int type, String file, Parser parser) { super(type, file, -1, -1, -1); } public TextToken(String text, String file, int line, int column, int length, Parser parser) { super(-1, file, line, column, length); this.type = getSerial(text, parser); this.text = text.toLowerCase(); } public int getLine() { return line; } public int getColumn() { return column; } public int getLength() { return length; } public void setLine(int line) { this.line = line; } public void setColumn(int column) { this.column = column; } public void setLength(int length) { this.length = length; } public String getText() { return this.text; } public static int numberOfTokens(TokenStructure tokenStructure) { return tokenStructure.table.size(); } }