View Javadoc
1   package de.fhdw.wtf.common.ast;
2   
3   import de.fhdw.wtf.common.ast.visitor.GroupElementExceptionVisitor;
4   import de.fhdw.wtf.common.ast.visitor.GroupElementReturnVisitor;
5   import de.fhdw.wtf.common.ast.visitor.GroupElementVisitor;
6   
7   /**
8    * This class represents an element contained by a {@link Group}. It has to be either a {@link Group} by itself or a
9    * <ClassType>.
10   */
11  public interface GroupElement extends SyntaxObjectInterface {
12  	
13  	/**
14  	 * Returns the {@link Name} of this element.
15  	 * 
16  	 * @return : Name.
17  	 */
18  	Name getName();
19  	
20  	/**
21  	 * Accepts the sub types of {@link GroupElement} and implements the required functions.
22  	 * 
23  	 * @param visitor
24  	 *            is visitor that describes what has to be done for the particular {@link GroupElement}.
25  	 */
26  	void accept(GroupElementVisitor visitor);
27  	
28  	/**
29  	 * Visitor for subtypes of common.ast.GroupElement. Throws any Exception.
30  	 * 
31  	 * @param visitor
32  	 *            : Visitor.
33  	 * @param <X>
34  	 *            ReturnType
35  	 * @throws X
36  	 *             : Exception.
37  	 */
38  	<X extends Exception> void accept(GroupElementExceptionVisitor<X> visitor) throws X;
39  	
40  	/**
41  	 * Accepts a return visitor.
42  	 * 
43  	 * @param visitor
44  	 *            Visitor
45  	 * @param <X>
46  	 *            ReturnType
47  	 * @return X
48  	 */
49  	<X> X accept(GroupElementReturnVisitor<X> visitor);
50  	
51  }