TextToken.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package de.jplag.text;
  2. import de.jplag.Token;
  3. public class TextToken extends Token {
  4. private static final long serialVersionUID = 4301179216570538972L;
  5. private static int getSerial(String text, Parser parser) {
  6. text = text.toLowerCase();
  7. Integer obj = parser.tokenStructure.table.get(text);
  8. if(obj == null) {
  9. obj = Integer.valueOf(parser.tokenStructure.serial);
  10. if(parser.tokenStructure.serial == Integer.MAX_VALUE)
  11. parser.outOfSerials();
  12. else
  13. parser.tokenStructure.serial++;
  14. parser.tokenStructure.table.put(text, obj);
  15. if(parser.tokenStructure.reverseMapping != null)
  16. parser.tokenStructure.reverseMapping = null;
  17. }
  18. return obj.intValue();
  19. }
  20. // ///////////////////// END OF STATIC MEMBERS
  21. private int line, column, length;
  22. private String text;
  23. public TextToken(int type, String file, Parser parser) {
  24. super(type, file, -1, -1, -1);
  25. }
  26. public TextToken(String text, String file, int line, int column,
  27. int length, Parser parser) {
  28. super(-1, file, line, column, length);
  29. this.type = getSerial(text, parser);
  30. this.text = text.toLowerCase();
  31. }
  32. @Override
  33. public int getLine() {
  34. return line;
  35. }
  36. @Override
  37. public int getColumn() {
  38. return column;
  39. }
  40. @Override
  41. public int getLength() {
  42. return length;
  43. }
  44. @Override
  45. public void setLine(int line) {
  46. this.line = line;
  47. }
  48. @Override
  49. public void setColumn(int column) {
  50. this.column = column;
  51. }
  52. @Override
  53. public void setLength(int length) {
  54. this.length = length;
  55. }
  56. public String getText() {
  57. return this.text;
  58. }
  59. }