/*
* generated by Xtext
*/
package org.example.xbase.entities.serializer;
import com.google.inject.Inject;
import com.google.inject.Provider;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.common.types.JvmFormalParameter;
import org.eclipse.xtext.common.types.JvmGenericArrayTypeReference;
import org.eclipse.xtext.common.types.JvmInnerTypeReference;
import org.eclipse.xtext.common.types.JvmLowerBound;
import org.eclipse.xtext.common.types.JvmParameterizedTypeReference;
import org.eclipse.xtext.common.types.JvmTypeParameter;
import org.eclipse.xtext.common.types.JvmUpperBound;
import org.eclipse.xtext.common.types.JvmWildcardTypeReference;
import org.eclipse.xtext.common.types.TypesPackage;
import org.eclipse.xtext.serializer.acceptor.ISemanticSequenceAcceptor;
import org.eclipse.xtext.serializer.diagnostic.ISemanticSequencerDiagnosticProvider;
import org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic.Acceptor;
import org.eclipse.xtext.serializer.sequencer.GenericSequencer;
import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
import org.eclipse.xtext.serializer.sequencer.ITransientValueService;
import org.eclipse.xtext.xbase.XAssignment;
import org.eclipse.xtext.xbase.XBasicForLoopExpression;
import org.eclipse.xtext.xbase.XBinaryOperation;
import org.eclipse.xtext.xbase.XBlockExpression;
import org.eclipse.xtext.xbase.XBooleanLiteral;
import org.eclipse.xtext.xbase.XCasePart;
import org.eclipse.xtext.xbase.XCastedExpression;
import org.eclipse.xtext.xbase.XCatchClause;
import org.eclipse.xtext.xbase.XClosure;
import org.eclipse.xtext.xbase.XConstructorCall;
import org.eclipse.xtext.xbase.XDoWhileExpression;
import org.eclipse.xtext.xbase.XFeatureCall;
import org.eclipse.xtext.xbase.XForLoopExpression;
import org.eclipse.xtext.xbase.XIfExpression;
import org.eclipse.xtext.xbase.XInstanceOfExpression;
import org.eclipse.xtext.xbase.XListLiteral;
import org.eclipse.xtext.xbase.XMemberFeatureCall;
import org.eclipse.xtext.xbase.XNullLiteral;
import org.eclipse.xtext.xbase.XNumberLiteral;
import org.eclipse.xtext.xbase.XPostfixOperation;
import org.eclipse.xtext.xbase.XReturnExpression;
import org.eclipse.xtext.xbase.XSetLiteral;
import org.eclipse.xtext.xbase.XStringLiteral;
import org.eclipse.xtext.xbase.XSwitchExpression;
import org.eclipse.xtext.xbase.XSynchronizedExpression;
import org.eclipse.xtext.xbase.XThrowExpression;
import org.eclipse.xtext.xbase.XTryCatchFinallyExpression;
import org.eclipse.xtext.xbase.XTypeLiteral;
import org.eclipse.xtext.xbase.XUnaryOperation;
import org.eclipse.xtext.xbase.XVariableDeclaration;
import org.eclipse.xtext.xbase.XWhileExpression;
import org.eclipse.xtext.xbase.XbasePackage;
import org.eclipse.xtext.xbase.serializer.XbaseSemanticSequencer;
import org.eclipse.xtext.xtype.XFunctionTypeRef;
import org.eclipse.xtext.xtype.XImportDeclaration;
import org.eclipse.xtext.xtype.XImportSection;
import org.eclipse.xtext.xtype.XtypePackage;
import org.example.xbase.entities.entities.Attribute;
import org.example.xbase.entities.entities.EntitiesPackage;
import org.example.xbase.entities.entities.Entity;
import org.example.xbase.entities.entities.Model;
import org.example.xbase.entities.entities.Operation;
import org.example.xbase.entities.services.EntitiesGrammarAccess;
@SuppressWarnings("all")
public class EntitiesSemanticSequencer extends XbaseSemanticSequencer {
@Inject
private EntitiesGrammarAccess grammarAccess;
@Override
public void createSequence(EObject context, EObject semanticObject) {
if(semanticObject.eClass().getEPackage() == EntitiesPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
case EntitiesPackage.ATTRIBUTE:
sequence_Attribute(context, (Attribute) semanticObject);
return;
case EntitiesPackage.ENTITY:
sequence_Entity(context, (Entity) semanticObject);
return;
case EntitiesPackage.MODEL:
sequence_Model(context, (Model) semanticObject);
return;
case EntitiesPackage.OPERATION:
sequence_Operation(context, (Operation) semanticObject);
return;
}
else if(semanticObject.eClass().getEPackage() == TypesPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
case TypesPackage.JVM_FORMAL_PARAMETER:
if(context == grammarAccess.getFullJvmFormalParameterRule()) {
sequence_FullJvmFormalParameter(context, (JvmFormalParameter) semanticObject);
return;
}
else if(context == grammarAccess.getJvmFormalParameterRule()) {
sequence_JvmFormalParameter(context, (JvmFormalParameter) semanticObject);
return;
}
else break;
case TypesPackage.JVM_GENERIC_ARRAY_TYPE_REFERENCE:
sequence_JvmTypeReference(context, (JvmGenericArrayTypeReference) semanticObject);
return;
case TypesPackage.JVM_INNER_TYPE_REFERENCE:
sequence_JvmParameterizedTypeReference(context, (JvmInnerTypeReference) semanticObject);
return;
case TypesPackage.JVM_LOWER_BOUND:
if(context == grammarAccess.getJvmLowerBoundAndedRule()) {
sequence_JvmLowerBoundAnded(context, (JvmLowerBound) semanticObject);
return;
}
else if(context == grammarAccess.getJvmLowerBoundRule()) {
sequence_JvmLowerBound(context, (JvmLowerBound) semanticObject);
return;
}
else break;
case TypesPackage.JVM_PARAMETERIZED_TYPE_REFERENCE:
sequence_JvmParameterizedTypeReference(context, (JvmParameterizedTypeReference) semanticObject);
return;
case TypesPackage.JVM_TYPE_PARAMETER:
sequence_JvmTypeParameter(context, (JvmTypeParameter) semanticObject);
return;
case TypesPackage.JVM_UPPER_BOUND:
if(context == grammarAccess.getJvmUpperBoundAndedRule()) {
sequence_JvmUpperBoundAnded(context, (JvmUpperBound) semanticObject);
return;
}
else if(context == grammarAccess.getJvmUpperBoundRule()) {
sequence_JvmUpperBound(context, (JvmUpperBound) semanticObject);
return;
}
else break;
case TypesPackage.JVM_WILDCARD_TYPE_REFERENCE:
sequence_JvmWildcardTypeReference(context, (JvmWildcardTypeReference) semanticObject);
return;
}
else if(semanticObject.eClass().getEPackage() == XbasePackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
case XbasePackage.XASSIGNMENT:
sequence_XAssignment_XMemberFeatureCall(context, (XAssignment) semanticObject);
return;
case XbasePackage.XBASIC_FOR_LOOP_EXPRESSION:
sequence_XBasicForLoopExpression(context, (XBasicForLoopExpression) semanticObject);
return;
case XbasePackage.XBINARY_OPERATION:
sequence_XAdditiveExpression_XAndExpression_XAssignment_XEqualityExpression_XMultiplicativeExpression_XOrExpression_XOtherOperatorExpression_XRelationalExpression(context, (XBinaryOperation) semanticObject);
return;
case XbasePackage.XBLOCK_EXPRESSION:
if(context == grammarAccess.getXAdditiveExpressionRule() ||
context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
context == grammarAccess.getXAndExpressionRule() ||
context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
context == grammarAccess.getXAssignmentRule() ||
context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
context == grammarAccess.getXBlockExpressionRule() ||
context == grammarAccess.getXCastedExpressionRule() ||
context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
context == grammarAccess.getXEqualityExpressionRule() ||
context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
context == grammarAccess.getXExpressionRule() ||
context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
context == grammarAccess.getXMemberFeatureCallRule() ||
context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
context == grammarAccess.getXMultiplicativeExpressionRule() ||
context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
context == grammarAccess.getXOrExpressionRule() ||
context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
context == grammarAccess.getXOtherOperatorExpressionRule() ||
context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
context == grammarAccess.getXParenthesizedExpressionRule() ||
context == grammarAccess.getXPostfixOperationRule() ||
context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
context == grammarAccess.getXPrimaryExpressionRule() ||
context == grammarAccess.getXRelationalExpressionRule() ||
context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
context == grammarAccess.getXUnaryOperationRule()) {
sequence_XBlockExpression(context, (XBlockExpression) semanticObject);
return;
}
else if(context == grammarAccess.getXExpressionInClosureRule()) {
sequence_XExpressionInClosure(context, (XBlockExpression) semanticObject);
return;
}
else break;
case XbasePackage.XBOOLEAN_LITERAL:
sequence_XBooleanLiteral(context, (XBooleanLiteral) semanticObject);
return;
case XbasePackage.XCASE_PART:
sequence_XCasePart(context, (XCasePart) semanticObject);
return;
case XbasePackage.XCASTED_EXPRESSION:
sequence_XCastedExpression(context, (XCastedExpression) semanticObject);
return;
case XbasePackage.XCATCH_CLAUSE:
sequence_XCatchClause(context, (XCatchClause) semanticObject);
return;
case XbasePackage.XCLOSURE:
if(context == grammarAccess.getXAdditiveExpressionRule() ||
context == grammarAccess.getXAdditiveExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
context == grammarAccess.getXAndExpressionRule() ||
context == grammarAccess.getXAndExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
context == grammarAccess.getXAssignmentRule() ||
context == grammarAccess.getXAssignmentAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
context == grammarAccess.getXCastedExpressionRule() ||
context == grammarAccess.getXCastedExpressionAccess().getXCastedExpressionTargetAction_1_0_0_0() ||
context == grammarAccess.getXClosureRule() ||
context == grammarAccess.getXEqualityExpressionRule() ||
context == grammarAccess.getXEqualityExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
context == grammarAccess.getXExpressionRule() ||
context == grammarAccess.getXExpressionOrVarDeclarationRule() ||
context == grammarAccess.getXLiteralRule() ||
context == grammarAccess.getXMemberFeatureCallRule() ||
context == grammarAccess.getXMemberFeatureCallAccess().getXAssignmentAssignableAction_1_0_0_0_0() ||
context == grammarAccess.getXMemberFeatureCallAccess().getXMemberFeatureCallMemberCallTargetAction_1_1_0_0_0() ||
context == grammarAccess.getXMultiplicativeExpressionRule() ||
context == grammarAccess.getXMultiplicativeExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
context == grammarAccess.getXOrExpressionRule() ||
context == grammarAccess.getXOrExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
context == grammarAccess.getXOtherOperatorExpressionRule() ||
context == grammarAccess.getXOtherOperatorExpressionAccess().getXBinaryOperationLeftOperandAction_1_0_0_0() ||
context == grammarAccess.getXParenthesizedExpressionRule() ||
context == grammarAccess.getXPostfixOperationRule() ||
context == grammarAccess.getXPostfixOperationAccess().getXPostfixOperationOperandAction_1_0_0() ||
context == grammarAccess.getXPrimaryExpressionRule() ||
context == grammarAccess.getXRelationalExpressionRule() ||
context == grammarAccess.getXRelationalExpressionAccess().getXBinaryOperationLeftOperandAction_1_1_0_0_0() ||
context == grammarAccess.getXRelationalExpressionAccess().getXInstanceOfExpressionExpressionAction_1_0_0_0_0() ||
context == grammarAccess.getXUnaryOperationRule()) {
sequence_XClosure(context, (XClosure) semanticObject);
return;
}
else if(context == grammarAccess.getXShortClosureRule()) {
sequence_XShortClosure(context, (XClosure) semanticObject);
return;
}
else break;
case XbasePackage.XCONSTRUCTOR_CALL:
sequence_XConstructorCall(context, (XConstructorCall) semanticObject);
return;
case XbasePackage.XDO_WHILE_EXPRESSION:
sequence_XDoWhileExpression(context, (XDoWhileExpression) semanticObject);
return;
case XbasePackage.XFEATURE_CALL:
sequence_XFeatureCall(context, (XFeatureCall) semanticObject);
return;
case XbasePackage.XFOR_LOOP_EXPRESSION:
sequence_XForLoopExpression(context, (XForLoopExpression) semanticObject);
return;
case XbasePackage.XIF_EXPRESSION:
sequence_XIfExpression(context, (XIfExpression) semanticObject);
return;
case XbasePackage.XINSTANCE_OF_EXPRESSION:
sequence_XRelationalExpression(context, (XInstanceOfExpression) semanticObject);
return;
case XbasePackage.XLIST_LITERAL:
sequence_XListLiteral(context, (XListLiteral) semanticObject);
return;
case XbasePackage.XMEMBER_FEATURE_CALL:
sequence_XMemberFeatureCall(context, (XMemberFeatureCall) semanticObject);
return;
case XbasePackage.XNULL_LITERAL:
sequence_XNullLiteral(context, (XNullLiteral) semanticObject);
return;
case XbasePackage.XNUMBER_LITERAL:
sequence_XNumberLiteral(context, (XNumberLiteral) semanticObject);
return;
case XbasePackage.XPOSTFIX_OPERATION:
sequence_XPostfixOperation(context, (XPostfixOperation) semanticObject);
return;
case XbasePackage.XRETURN_EXPRESSION:
sequence_XReturnExpression(context, (XReturnExpression) semanticObject);
return;
case XbasePackage.XSET_LITERAL:
sequence_XSetLiteral(context, (XSetLiteral) semanticObject);
return;
case XbasePackage.XSTRING_LITERAL:
sequence_XStringLiteral(context, (XStringLiteral) semanticObject);
return;
case XbasePackage.XSWITCH_EXPRESSION:
sequence_XSwitchExpression(context, (XSwitchExpression) semanticObject);
return;
case XbasePackage.XSYNCHRONIZED_EXPRESSION:
sequence_XSynchronizedExpression(context, (XSynchronizedExpression) semanticObject);
return;
case XbasePackage.XTHROW_EXPRESSION:
sequence_XThrowExpression(context, (XThrowExpression) semanticObject);
return;
case XbasePackage.XTRY_CATCH_FINALLY_EXPRESSION:
sequence_XTryCatchFinallyExpression(context, (XTryCatchFinallyExpression) semanticObject);
return;
case XbasePackage.XTYPE_LITERAL:
sequence_XTypeLiteral(context, (XTypeLiteral) semanticObject);
return;
case XbasePackage.XUNARY_OPERATION:
sequence_XUnaryOperation(context, (XUnaryOperation) semanticObject);
return;
case XbasePackage.XVARIABLE_DECLARATION:
sequence_XVariableDeclaration(context, (XVariableDeclaration) semanticObject);
return;
case XbasePackage.XWHILE_EXPRESSION:
sequence_XWhileExpression(context, (XWhileExpression) semanticObject);
return;
}
else if(semanticObject.eClass().getEPackage() == XtypePackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
case XtypePackage.XFUNCTION_TYPE_REF:
sequence_XFunctionTypeRef(context, (XFunctionTypeRef) semanticObject);
return;
case XtypePackage.XIMPORT_DECLARATION:
sequence_XImportDeclaration(context, (XImportDeclaration) semanticObject);
return;
case XtypePackage.XIMPORT_SECTION:
sequence_XImportSection(context, (XImportSection) semanticObject);
return;
}
if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
/**
* Constraint:
* (type=JvmTypeReference? name=ID initexpression=XExpression?)
*/
protected void sequence_Attribute(EObject context, Attribute semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (name=ID superType=JvmParameterizedTypeReference? attributes+=Attribute* operations+=Operation*)
*/
protected void sequence_Entity(EObject context, Entity semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (importSection=XImportSection? entities+=Entity*)
*/
protected void sequence_Model(EObject context, Model semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (type=JvmTypeReference? name=ID (params+=FullJvmFormalParameter params+=FullJvmFormalParameter*)? body=XBlockExpression)
*/
protected void sequence_Operation(EObject context, Operation semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
}