Skip to content

Method: hashCodeTemplate()

1: package de.fhdw.wtf.common.token;
2:
3: /**
4: * This token contains a not-recognized string. e.g. invalid character sequences in the original input.
5: *
6: */
7: public final class InvalidToken extends MultiCharToken {
8:         
9:         /**
10:          * generated.
11:          */
12:         private static final long serialVersionUID = -8125327670667747456L;
13:         
14:         /**
15:          * Private Constructor for InvalidToken. Use create(...)-Factory instead!
16:          *
17:          * @param invalidString
18:          * initial invalid string
19:          * @param position
20:          * start position of this token in the original input
21:          */
22:         private InvalidToken(final String invalidString, final Position position) {
23:                 super(invalidString, position);
24:         }
25:         
26:         /**
27:          * Factory for a {@link InvalidToken}.
28:          *
29:          * @param invalidChar
30:          * initial invalid single-char
31:          * @param position
32:          * start position of this token in the original input
33:          * @return a new instance of this token
34:          */
35:         public static InvalidToken create(final char invalidChar, final Position position) {
36:                 return new InvalidToken(Character.toString(invalidChar), position);
37:         }
38:         
39:         /**
40:          * Factory for a {@link InvalidToken}.
41:          *
42:          * @param invalidString
43:          * initial invalid string.
44:          * @param position
45:          * start position of this token in the original input
46:          * @return a new instance of this token
47:          */
48:         public static InvalidToken create(final String invalidString, final Position position) {
49:                 return new InvalidToken(invalidString, position);
50:         }
51:         
52:         @Override
53:         public boolean isInvalidToken() {
54:                 return true;
55:         }
56:         
57:         /**
58:          * Invalid character-sequence represented by this token.
59:          *
60:          * @return the invalid string of this token
61:          */
62:         public String getInvalidString() {
63:                 return this.getTokenString();
64:         }
65:         
66:         @Override
67:         protected boolean equalsTemplate(final Token t) {
68:                 if (t.isInvalidToken()) {
69:                         final InvalidToken i = (InvalidToken) t;
70:                         return i.getInvalidString().equals(this.getInvalidString());
71:                 }
72:                 return false;
73:         }
74:         
75:         @Override
76:         protected int hashCodeTemplate() {
77:                 return this.getInvalidString().hashCode();
78:         }
79:         
80:         @Override
81:         public boolean equals(final Object o) {
82:                 if (o instanceof InvalidToken) {
83:                         return super.equals(o);
84:                 }
85:                 return false;
86:         }
87:         
88:         @Override
89:         public int hashCode() {
90:                 return super.hashCode();
91:         }
92: }