View Javadoc
1   package de.fhdw.wtf.common.ast;
2   
3   import de.fhdw.wtf.common.ast.visitor.AttributModifierVisitor;
4   import de.fhdw.wtf.common.ast.visitor.AttributeModifierVisitorReturn;
5   import de.fhdw.wtf.common.ast.visitor.AttributeModifierVisitorReturnException;
6   import de.fhdw.wtf.common.token.IdentifierToken;
7   import de.fhdw.wtf.common.token.Token;
8   
9   /**
10   * A concrete {@link AttributeModifier}. An {@link Attribute} with this modifier will be generated with inverse-Getter.
11   */
12  public final class AttributeModifierSymmetric extends AttributeModifier {
13  	
14  	/**
15  	 * generated.
16  	 */
17  	private static final long serialVersionUID = -5971453819738161098L;
18  	
19  	/**
20  	 * Constant to define hashCode().
21  	 */
22  	private static final int HASHCODE_CONSTANT = 2932098;
23  	
24  	private final IdentifierToken identifierToken;
25  	
26  	public IdentifierToken getIdentifierToken() {
27  		return this.identifierToken;
28  	}
29  	
30  	/**
31  	 * Private Constructor of {@link AttributeModifierSymmetric}.
32  	 * 
33  	 * @param firstToken
34  	 *            firstToken
35  	 * @param identifierToken
36  	 *            identifierToken
37  	 * @param lastToken
38  	 *            lastToken
39  	 */
40  	private AttributeModifierSymmetric(final Token firstToken,
41  			final IdentifierToken identifierToken,
42  			final Token lastToken) {
43  		super(firstToken, lastToken);
44  		this.identifierToken = identifierToken;
45  	}
46  	
47  	/**
48  	 * Creates a {@link AttributeModifierSymmetric}-Object.
49  	 * 
50  	 * @param firstToken
51  	 *            firstToken
52  	 * @param identifierToken
53  	 *            identifierToken
54  	 * @param lastToken
55  	 *            lastToken
56  	 * @return The AttributeModifierSymmetric-Object
57  	 */
58  	public static AttributeModifierSymmetric create(final Token firstToken,
59  			final IdentifierToken identifierToken,
60  			final Token lastToken) {
61  		return new AttributeModifierSymmetric(firstToken, identifierToken, lastToken);
62  	}
63  	
64  	@Override
65  	public boolean accept(final AttributModifierVisitor visitor) {
66  		return visitor.handle(this);
67  	}
68  	
69  	@Override
70  	public <X> X accept(final AttributeModifierVisitorReturn<X> visitor) {
71  		return visitor.handle(this);
72  	}
73  	
74  	@Override
75  	public <X, Y extends Exception> X accept(final AttributeModifierVisitorReturnException<X, Y> visitor) throws Y {
76  		return visitor.handle(this);
77  	}
78  	
79  	@Override
80  	public boolean equals(final Object o) {
81  		return o instanceof AttributeModifierSymmetric;
82  	}
83  	
84  	@Override
85  	public int hashCode() {
86  		return HASHCODE_CONSTANT;
87  	}
88  	
89  }