TextToken.java 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package de.jplag.text;
  2. import java.io.Serial;
  3. import de.jplag.Token;
  4. public class TextToken extends Token {
  5. @Serial
  6. private static final long serialVersionUID = 4301179216570538972L;
  7. private static int getSerial(String text, Parser parser) {
  8. text = text.toLowerCase();
  9. Integer serial = parser.table.get(text);
  10. if (serial == null) {
  11. serial = parser.serial;
  12. if (parser.serial == Integer.MAX_VALUE)
  13. parser.outOfSerials();
  14. else
  15. parser.serial++;
  16. parser.table.put(text, serial);
  17. }
  18. return serial;
  19. }
  20. private String text;
  21. public TextToken(int type, String file, Parser parser) {
  22. super(type, file, -1, -1, -1);
  23. }
  24. public TextToken(String text, String file, int line, int column, int length, Parser parser) {
  25. super(-1, file, line, column, length);
  26. this.type = getSerial(text, parser);
  27. this.text = text.toLowerCase();
  28. }
  29. public String getText() {
  30. return this.text;
  31. }
  32. @Override
  33. protected String type2string() {
  34. return getText();
  35. }
  36. }