View Javadoc
1   package de.fhdw.wtf.common.ast;
2   
3   import de.fhdw.wtf.common.ast.visitor.OperationModifierVisitor;
4   import de.fhdw.wtf.common.ast.visitor.OperationModifierVisitorReturn;
5   import de.fhdw.wtf.common.token.Token;
6   
7   /**
8    * This class represents a modifier of an {@link Operation}. A modifier comes to effect at the code generation.
9    * 
10   */
11  public abstract class OperationModifier extends SyntaxObject {
12  	
13  	/**
14  	 * generated.
15  	 */
16  	private static final long serialVersionUID = -4853317676624075910L;
17  	
18  	/**
19  	 * Protected-Constructor of {@link OperationModifier}.
20  	 * 
21  	 * @param firstToken
22  	 *            firstToken
23  	 * @param lastToken
24  	 *            lastToken
25  	 */
26  	protected OperationModifier(final Token firstToken, final Token lastToken) {
27  		super(firstToken, lastToken);
28  	}
29  	
30  	/**
31  	 * Accepts the sub types of {@link OperationModifier} and implements the required functions.
32  	 * 
33  	 * @param visitor
34  	 *            is visitor that describes what has to be done for the particular {@link OperationModifier}.
35  	 * @return Boolean
36  	 */
37  	public abstract boolean accept(OperationModifierVisitor visitor);
38  	
39  	/**
40  	 * Accepts a visitor with dynamic return type.
41  	 * 
42  	 * @param visitor
43  	 *            The Visitor to be accepted.
44  	 * @param <X>
45  	 *            ReturnType
46  	 * @return X.
47  	 */
48  	public abstract <X> X accept(OperationModifierVisitorReturn<X> visitor);
49  	
50  }