package de.unidue.ecg.characterScript.serializer; import com.google.inject.Inject; import com.google.inject.Provider; import de.unidue.ecg.characterScript.characterScript.Age; import de.unidue.ecg.characterScript.characterScript.CharacterScriptPackage; import de.unidue.ecg.characterScript.characterScript.Characters; import de.unidue.ecg.characterScript.characterScript.CustomAttribute; import de.unidue.ecg.characterScript.characterScript.CustomAttributeName; import de.unidue.ecg.characterScript.characterScript.CustomProperty; import de.unidue.ecg.characterScript.characterScript.Description; import de.unidue.ecg.characterScript.characterScript.EnumValue; import de.unidue.ecg.characterScript.characterScript.FullName; import de.unidue.ecg.characterScript.characterScript.Globals; import de.unidue.ecg.characterScript.characterScript.Import; import de.unidue.ecg.characterScript.characterScript.Sex; import de.unidue.ecg.characterScript.characterScript.Template; import de.unidue.ecg.characterScript.characterScript.Type; import de.unidue.ecg.characterScript.services.CharacterScriptGrammarAccess; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtext.serializer.acceptor.ISemanticSequenceAcceptor; import org.eclipse.xtext.serializer.acceptor.SequenceFeeder; import org.eclipse.xtext.serializer.diagnostic.ISemanticSequencerDiagnosticProvider; import org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic.Acceptor; import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer; import org.eclipse.xtext.serializer.sequencer.GenericSequencer; import org.eclipse.xtext.serializer.sequencer.ISemanticNodeProvider.INodesForEObjectProvider; import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer; import org.eclipse.xtext.serializer.sequencer.ITransientValueService; import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient; @SuppressWarnings("all") public class CharacterScriptSemanticSequencer extends AbstractDelegatingSemanticSequencer { @Inject private CharacterScriptGrammarAccess grammarAccess; public void createSequence(EObject context, EObject semanticObject) { if(semanticObject.eClass().getEPackage() == CharacterScriptPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) { case CharacterScriptPackage.AGE: if(context == grammarAccess.getAgeRule() || context == grammarAccess.getDefaultPropertyRule() || context == grammarAccess.getPropertyRule()) { sequence_Age(context, (Age) semanticObject); return; } else break; case CharacterScriptPackage.CHARACTER: if(context == grammarAccess.getCharacterRule()) { sequence_Character(context, (de.unidue.ecg.characterScript.characterScript.Character) semanticObject); return; } else break; case CharacterScriptPackage.CHARACTERS: if(context == grammarAccess.getCharactersRule()) { sequence_Characters(context, (Characters) semanticObject); return; } else break; case CharacterScriptPackage.CUSTOM_ATTRIBUTE: if(context == grammarAccess.getCustomAttributeRule()) { sequence_CustomAttribute(context, (CustomAttribute) semanticObject); return; } else break; case CharacterScriptPackage.CUSTOM_ATTRIBUTE_NAME: if(context == grammarAccess.getCustomAttributeNameRule()) { sequence_CustomAttributeName(context, (CustomAttributeName) semanticObject); return; } else break; case CharacterScriptPackage.CUSTOM_PROPERTY: if(context == grammarAccess.getCustomPropertyRule() || context == grammarAccess.getPropertyRule()) { sequence_CustomProperty(context, (CustomProperty) semanticObject); return; } else break; case CharacterScriptPackage.DESCRIPTION: if(context == grammarAccess.getDefaultPropertyRule() || context == grammarAccess.getDescriptionRule() || context == grammarAccess.getPropertyRule()) { sequence_Description(context, (Description) semanticObject); return; } else break; case CharacterScriptPackage.ENUM_VALUE: if(context == grammarAccess.getEnumValueRule()) { sequence_EnumValue(context, (EnumValue) semanticObject); return; } else break; case CharacterScriptPackage.FULL_NAME: if(context == grammarAccess.getDefaultPropertyRule() || context == grammarAccess.getFullNameRule() || context == grammarAccess.getPropertyRule()) { sequence_FullName(context, (FullName) semanticObject); return; } else break; case CharacterScriptPackage.GLOBALS: if(context == grammarAccess.getGlobalsRule()) { sequence_Globals(context, (Globals) semanticObject); return; } else break; case CharacterScriptPackage.IMPORT: if(context == grammarAccess.getImportRule()) { sequence_Import(context, (Import) semanticObject); return; } else break; case CharacterScriptPackage.SEX: if(context == grammarAccess.getDefaultPropertyRule() || context == grammarAccess.getPropertyRule() || context == grammarAccess.getSexRule()) { sequence_Sex(context, (Sex) semanticObject); return; } else break; case CharacterScriptPackage.TEMPLATE: if(context == grammarAccess.getTemplateRule()) { sequence_Template(context, (Template) semanticObject); return; } else break; case CharacterScriptPackage.TYPE: if(context == grammarAccess.getDefaultPropertyRule() || context == grammarAccess.getPropertyRule() || context == grammarAccess.getTypeRule()) { sequence_Type(context, (Type) semanticObject); return; } else break; } if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); } /** * Constraint: * (value=INT comment=COMMENT?) */ protected void sequence_Age(EObject context, Age semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (name=ID template=[Template|ID]? properties+=Property*) */ protected void sequence_Character(EObject context, de.unidue.ecg.characterScript.characterScript.Character semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (imports+=Import* templates+=Template* globals=Globals? characters+=Character*) */ protected void sequence_Characters(EObject context, Characters semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * name=ID */ protected void sequence_CustomAttributeName(EObject context, CustomAttributeName semanticObject) { if(errorAcceptor != null) { if(transientValues.isValueTransient(semanticObject, CharacterScriptPackage.Literals.CUSTOM_ATTRIBUTE_NAME__NAME) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CharacterScriptPackage.Literals.CUSTOM_ATTRIBUTE_NAME__NAME)); } INodesForEObjectProvider nodes = createNodeProvider(semanticObject); SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); feeder.accept(grammarAccess.getCustomAttributeNameAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); feeder.finish(); } /** * Constraint: * (required=Required? caName=CustomAttributeName (type=AttributeType | (enumValues+=EnumValue enumValues+=EnumValue*))) */ protected void sequence_CustomAttribute(EObject context, CustomAttribute semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (customAttributeRef=[CustomAttributeName|ID] (stringValue=STRING | intValue=INT | enumValue=[EnumValue|EnumID]) comment=COMMENT?) */ protected void sequence_CustomProperty(EObject context, CustomProperty semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (value=STRING comment=COMMENT?) */ protected void sequence_Description(EObject context, Description semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * name=EnumID */ protected void sequence_EnumValue(EObject context, EnumValue semanticObject) { if(errorAcceptor != null) { if(transientValues.isValueTransient(semanticObject, CharacterScriptPackage.Literals.ENUM_VALUE__NAME) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CharacterScriptPackage.Literals.ENUM_VALUE__NAME)); } INodesForEObjectProvider nodes = createNodeProvider(semanticObject); SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); feeder.accept(grammarAccess.getEnumValueAccess().getNameEnumIDParserRuleCall_0(), semanticObject.getName()); feeder.finish(); } /** * Constraint: * (value=STRING comment=COMMENT?) */ protected void sequence_FullName(EObject context, FullName semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (customs+=CustomAttribute customs+=CustomAttribute*) */ protected void sequence_Globals(EObject context, Globals semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * importedNamespace=ID */ protected void sequence_Import(EObject context, Import semanticObject) { if(errorAcceptor != null) { if(transientValues.isValueTransient(semanticObject, CharacterScriptPackage.Literals.IMPORT__IMPORTED_NAMESPACE) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, CharacterScriptPackage.Literals.IMPORT__IMPORTED_NAMESPACE)); } INodesForEObjectProvider nodes = createNodeProvider(semanticObject); SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); feeder.accept(grammarAccess.getImportAccess().getImportedNamespaceIDTerminalRuleCall_1_0(), semanticObject.getImportedNamespace()); feeder.finish(); } /** * Constraint: * (value=CharaSex comment=COMMENT?) */ protected void sequence_Sex(EObject context, Sex semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (name=ID defaults+=DefaultAttribute* customs+=CustomAttribute customs+=CustomAttribute*) */ protected void sequence_Template(EObject context, Template semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (value=CharaType comment=COMMENT?) */ protected void sequence_Type(EObject context, Type semanticObject) { genericSequencer.createSequence(context, semanticObject); } }