/**
*/
package org.eclipse.viatra.solver.language.solverLanguage;
import org.eclipse.emf.common.util.EList;
/**
*
* A representation of the model object 'Class Declaration'.
*
*
*
* The following features are supported:
*
*
* - {@link org.eclipse.viatra.solver.language.solverLanguage.ClassDeclaration#getFields Fields}
* - {@link org.eclipse.viatra.solver.language.solverLanguage.ClassDeclaration#getName Name}
* - {@link org.eclipse.viatra.solver.language.solverLanguage.ClassDeclaration#isAbstract Abstract}
* - {@link org.eclipse.viatra.solver.language.solverLanguage.ClassDeclaration#getSupertypes Supertypes}
* - {@link org.eclipse.viatra.solver.language.solverLanguage.ClassDeclaration#isRoot Root}
*
*
* @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassDeclaration()
* @model
* @generated
*/
public interface ClassDeclaration extends Statement {
/**
* Returns the value of the 'Fields' containment reference list.
* The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Field}.
*
*
* @return the value of the 'Fields' containment reference list.
* @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassDeclaration_Fields()
* @model containment="true"
* @generated
*/
EList getFields();
/**
* Returns the value of the 'Name' attribute.
*
*
* @return the value of the 'Name' attribute.
* @see #setName(String)
* @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassDeclaration_Name()
* @model
* @generated
*/
String getName();
/**
* Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassDeclaration#getName Name}' attribute.
*
*
* @param value the new value of the 'Name' attribute.
* @see #getName()
* @generated
*/
void setName(String value);
/**
* Returns the value of the 'Abstract' attribute.
*
*
* @return the value of the 'Abstract' attribute.
* @see #setAbstract(boolean)
* @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassDeclaration_Abstract()
* @model
* @generated
*/
boolean isAbstract();
/**
* Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassDeclaration#isAbstract Abstract}' attribute.
*
*
* @param value the new value of the 'Abstract' attribute.
* @see #isAbstract()
* @generated
*/
void setAbstract(boolean value);
/**
* Returns the value of the 'Supertypes' reference list.
* The list contents are of type {@link org.eclipse.viatra.solver.language.solverLanguage.Symbol}.
*
*
* @return the value of the 'Supertypes' reference list.
* @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassDeclaration_Supertypes()
* @model
* @generated
*/
EList getSupertypes();
/**
* Returns the value of the 'Root' attribute.
*
*
* @return the value of the 'Root' attribute.
* @see #setRoot(boolean)
* @see org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage#getClassDeclaration_Root()
* @model
* @generated
*/
boolean isRoot();
/**
* Sets the value of the '{@link org.eclipse.viatra.solver.language.solverLanguage.ClassDeclaration#isRoot Root}' attribute.
*
*
* @param value the new value of the 'Root' attribute.
* @see #isRoot()
* @generated
*/
void setRoot(boolean value);
} // ClassDeclaration