package de.unidue.ecg.dialogScript.serializer; import com.google.inject.Inject; import com.google.inject.Provider; import de.unidue.ecg.dialogScript.dialogScript.CharacterDefinition; import de.unidue.ecg.dialogScript.dialogScript.CharactersDefinition; import de.unidue.ecg.dialogScript.dialogScript.ChoiceDialog; import de.unidue.ecg.dialogScript.dialogScript.ConditionDefinition; import de.unidue.ecg.dialogScript.dialogScript.ConditionList; import de.unidue.ecg.dialogScript.dialogScript.Conditional; import de.unidue.ecg.dialogScript.dialogScript.ConditionalBody; import de.unidue.ecg.dialogScript.dialogScript.ConditionalChoiceDialog; import de.unidue.ecg.dialogScript.dialogScript.ConditionsDefinition; import de.unidue.ecg.dialogScript.dialogScript.Defaults; import de.unidue.ecg.dialogScript.dialogScript.Dialog; import de.unidue.ecg.dialogScript.dialogScript.DialogLine; import de.unidue.ecg.dialogScript.dialogScript.DialogScriptPackage; import de.unidue.ecg.dialogScript.dialogScript.Exit; import de.unidue.ecg.dialogScript.dialogScript.FirstTime; import de.unidue.ecg.dialogScript.dialogScript.Hub; import de.unidue.ecg.dialogScript.dialogScript.InvokeHub; import de.unidue.ecg.dialogScript.dialogScript.InvokeScene; import de.unidue.ecg.dialogScript.dialogScript.OtherTimes; import de.unidue.ecg.dialogScript.dialogScript.Otherwise; import de.unidue.ecg.dialogScript.dialogScript.OtherwiseChoice; import de.unidue.ecg.dialogScript.dialogScript.PartingLines; import de.unidue.ecg.dialogScript.dialogScript.Scene; import de.unidue.ecg.dialogScript.dialogScript.Script; import de.unidue.ecg.dialogScript.dialogScript.Switch; import de.unidue.ecg.dialogScript.dialogScript.SwitchDefinition; import de.unidue.ecg.dialogScript.dialogScript.SwitchList; import de.unidue.ecg.dialogScript.dialogScript.SwitchOff; import de.unidue.ecg.dialogScript.dialogScript.SwitchOn; import de.unidue.ecg.dialogScript.dialogScript.SwitchesDefinition; import de.unidue.ecg.dialogScript.services.DialogScriptGrammarAccess; 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 DialogScriptSemanticSequencer extends AbstractDelegatingSemanticSequencer { @Inject private DialogScriptGrammarAccess grammarAccess; public void createSequence(EObject context, EObject semanticObject) { if(semanticObject.eClass().getEPackage() == DialogScriptPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) { case DialogScriptPackage.CHARACTER_DEFINITION: if(context == grammarAccess.getCharacterDefinitionRule()) { sequence_CharacterDefinition(context, (CharacterDefinition) semanticObject); return; } else break; case DialogScriptPackage.CHARACTERS_DEFINITION: if(context == grammarAccess.getCharactersDefinitionRule()) { sequence_CharactersDefinition(context, (CharactersDefinition) semanticObject); return; } else break; case DialogScriptPackage.CHOICE_DIALOG: if(context == grammarAccess.getChoiceDialogRule() || context == grammarAccess.getHubFragmentRule()) { sequence_ChoiceDialog(context, (ChoiceDialog) semanticObject); return; } else break; case DialogScriptPackage.CONDITION_DEFINITION: if(context == grammarAccess.getConditionDefinitionRule()) { sequence_ConditionDefinition(context, (ConditionDefinition) semanticObject); return; } else break; case DialogScriptPackage.CONDITION_LIST: if(context == grammarAccess.getConditionListRule()) { sequence_ConditionList(context, (ConditionList) semanticObject); return; } else break; case DialogScriptPackage.CONDITIONAL: if(context == grammarAccess.getConditionalRule() || context == grammarAccess.getHubFragmentRule() || context == grammarAccess.getRecursiveRule() || context == grammarAccess.getStatementRule()) { sequence_Conditional(context, (Conditional) semanticObject); return; } else break; case DialogScriptPackage.CONDITIONAL_BODY: if(context == grammarAccess.getConditionalBodyRule()) { sequence_ConditionalBody(context, (ConditionalBody) semanticObject); return; } else break; case DialogScriptPackage.CONDITIONAL_CHOICE_DIALOG: if(context == grammarAccess.getConditionalChoiceDialogRule() || context == grammarAccess.getHubFragmentRule()) { sequence_ConditionalChoiceDialog(context, (ConditionalChoiceDialog) semanticObject); return; } else break; case DialogScriptPackage.CONDITIONS_DEFINITION: if(context == grammarAccess.getConditionsDefinitionRule()) { sequence_ConditionsDefinition(context, (ConditionsDefinition) semanticObject); return; } else break; case DialogScriptPackage.DEFAULTS: if(context == grammarAccess.getDefaultsRule()) { sequence_Defaults(context, (Defaults) semanticObject); return; } else break; case DialogScriptPackage.DIALOG: if(context == grammarAccess.getDialogRule()) { sequence_Dialog(context, (Dialog) semanticObject); return; } else break; case DialogScriptPackage.DIALOG_LINE: if(context == grammarAccess.getDialogLineRule() || context == grammarAccess.getHubFragmentRule() || context == grammarAccess.getRecursiveRule() || context == grammarAccess.getStatementRule()) { sequence_DialogLine(context, (DialogLine) semanticObject); return; } else break; case DialogScriptPackage.EXIT: if(context == grammarAccess.getExitRule() || context == grammarAccess.getJumpRule()) { sequence_Exit(context, (Exit) semanticObject); return; } else break; case DialogScriptPackage.FIRST_TIME: if(context == grammarAccess.getFirstTimeRule()) { sequence_FirstTime(context, (FirstTime) semanticObject); return; } else break; case DialogScriptPackage.HUB: if(context == grammarAccess.getHubRule() || context == grammarAccess.getRecursiveRule()) { sequence_Hub(context, (Hub) semanticObject); return; } else break; case DialogScriptPackage.INVOKE_HUB: if(context == grammarAccess.getInvokeHubRule() || context == grammarAccess.getJumpRule()) { sequence_InvokeHub(context, (InvokeHub) semanticObject); return; } else break; case DialogScriptPackage.INVOKE_SCENE: if(context == grammarAccess.getInvokeSceneRule() || context == grammarAccess.getJumpRule()) { sequence_InvokeScene(context, (InvokeScene) semanticObject); return; } else break; case DialogScriptPackage.OTHER_TIMES: if(context == grammarAccess.getOtherTimesRule()) { sequence_OtherTimes(context, (OtherTimes) semanticObject); return; } else break; case DialogScriptPackage.OTHERWISE: if(context == grammarAccess.getOtherwiseRule()) { sequence_Otherwise(context, (Otherwise) semanticObject); return; } else break; case DialogScriptPackage.OTHERWISE_CHOICE: if(context == grammarAccess.getOtherwiseChoiceRule()) { sequence_OtherwiseChoice(context, (OtherwiseChoice) semanticObject); return; } else break; case DialogScriptPackage.PARTING_LINES: if(context == grammarAccess.getPartingLinesRule()) { sequence_PartingLines(context, (PartingLines) semanticObject); return; } else break; case DialogScriptPackage.SCENE: if(context == grammarAccess.getSceneRule()) { sequence_Scene(context, (Scene) semanticObject); return; } else break; case DialogScriptPackage.SCRIPT: if(context == grammarAccess.getScriptRule()) { sequence_Script(context, (Script) semanticObject); return; } else break; case DialogScriptPackage.SWITCH: if(context == grammarAccess.getSwitchRule()) { sequence_Switch(context, (Switch) semanticObject); return; } else break; case DialogScriptPackage.SWITCH_DEFINITION: if(context == grammarAccess.getSwitchDefinitionRule()) { sequence_SwitchDefinition(context, (SwitchDefinition) semanticObject); return; } else break; case DialogScriptPackage.SWITCH_LIST: if(context == grammarAccess.getSwitchListRule()) { sequence_SwitchList(context, (SwitchList) semanticObject); return; } else break; case DialogScriptPackage.SWITCH_OFF: if(context == grammarAccess.getSwitchOffRule()) { sequence_SwitchOff(context, (SwitchOff) semanticObject); return; } else break; case DialogScriptPackage.SWITCH_ON: if(context == grammarAccess.getSwitchOnRule()) { sequence_SwitchOn(context, (SwitchOn) semanticObject); return; } else break; case DialogScriptPackage.SWITCHES_DEFINITION: if(context == grammarAccess.getSwitchesDefinitionRule()) { sequence_SwitchesDefinition(context, (SwitchesDefinition) semanticObject); return; } else break; } if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); } /** * Constraint: * name=ID */ protected void sequence_CharacterDefinition(EObject context, CharacterDefinition semanticObject) { if(errorAcceptor != null) { if(transientValues.isValueTransient(semanticObject, DialogScriptPackage.Literals.CHARACTER_DEFINITION__NAME) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DialogScriptPackage.Literals.CHARACTER_DEFINITION__NAME)); } INodesForEObjectProvider nodes = createNodeProvider(semanticObject); SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); feeder.accept(grammarAccess.getCharacterDefinitionAccess().getNameIDTerminalRuleCall_0(), semanticObject.getName()); feeder.finish(); } /** * Constraint: * (characters+=CharacterDefinition characters+=CharacterDefinition*) */ protected void sequence_CharactersDefinition(EObject context, CharactersDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (modifiers+=Modifier* name=StringID choiceComment=COMMENT? body=ConditionalBody) */ protected void sequence_ChoiceDialog(EObject context, ChoiceDialog semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (name=ID switchList=SwitchList) */ protected void sequence_ConditionDefinition(EObject context, ConditionDefinition semanticObject) { if(errorAcceptor != null) { if(transientValues.isValueTransient(semanticObject, DialogScriptPackage.Literals.CONDITION_DEFINITION__NAME) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DialogScriptPackage.Literals.CONDITION_DEFINITION__NAME)); if(transientValues.isValueTransient(semanticObject, DialogScriptPackage.Literals.CONDITION_DEFINITION__SWITCH_LIST) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DialogScriptPackage.Literals.CONDITION_DEFINITION__SWITCH_LIST)); } INodesForEObjectProvider nodes = createNodeProvider(semanticObject); SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); feeder.accept(grammarAccess.getConditionDefinitionAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); feeder.accept(grammarAccess.getConditionDefinitionAccess().getSwitchListSwitchListParserRuleCall_3_0(), semanticObject.getSwitchList()); feeder.finish(); } /** * Constraint: * (conditions+=[ConditionDefinition|ID] conditions+=[ConditionDefinition|ID]*) */ protected void sequence_ConditionList(EObject context, ConditionList semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (statements+=Statement* switchOn=SwitchOn? switchOff=SwitchOff? jump=Jump?) */ protected void sequence_ConditionalBody(EObject context, ConditionalBody semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (modifiers+=Modifier* conditionList=ConditionList comment=COMMENT? choiceDialogs+=ChoiceDialog+ otherwiseChoices+=OtherwiseChoice*) */ protected void sequence_ConditionalChoiceDialog(EObject context, ConditionalChoiceDialog semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (modifiers+=Modifier* conditionList=ConditionList comment=COMMENT? body=ConditionalBody otherwiseList+=Otherwise*) */ protected void sequence_Conditional(EObject context, Conditional semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (conditions+=ConditionDefinition conditions+=ConditionDefinition*) */ protected void sequence_ConditionsDefinition(EObject context, ConditionsDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (comment=COMMENT? body=ConditionalBody) */ protected void sequence_Defaults(EObject context, Defaults semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (character=[CharacterDefinition|ID] lines=StringID comment=COMMENT?) */ protected void sequence_DialogLine(EObject context, DialogLine semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (defaults=Defaults? firstTime=FirstTime? recursives+=Recursive* partingLines=PartingLines?) */ protected void sequence_Dialog(EObject context, Dialog semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (exitHub?='hub' | exitScene?='scene') */ protected void sequence_Exit(EObject context, Exit semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (comment=COMMENT? body=ConditionalBody otherTimes=OtherTimes?) */ protected void sequence_FirstTime(EObject context, FirstTime semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (isHidden?='hidden'? name=StringID hubComment=COMMENT? hubFragments+=HubFragment*) */ protected void sequence_Hub(EObject context, Hub semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * hub=[Hub|StringID] */ protected void sequence_InvokeHub(EObject context, InvokeHub semanticObject) { if(errorAcceptor != null) { if(transientValues.isValueTransient(semanticObject, DialogScriptPackage.Literals.INVOKE_HUB__HUB) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DialogScriptPackage.Literals.INVOKE_HUB__HUB)); } INodesForEObjectProvider nodes = createNodeProvider(semanticObject); SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); feeder.accept(grammarAccess.getInvokeHubAccess().getHubHubStringIDParserRuleCall_2_0_1(), semanticObject.getHub()); feeder.finish(); } /** * Constraint: * scene=[Scene|StringID] */ protected void sequence_InvokeScene(EObject context, InvokeScene semanticObject) { if(errorAcceptor != null) { if(transientValues.isValueTransient(semanticObject, DialogScriptPackage.Literals.INVOKE_SCENE__SCENE) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DialogScriptPackage.Literals.INVOKE_SCENE__SCENE)); } INodesForEObjectProvider nodes = createNodeProvider(semanticObject); SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); feeder.accept(grammarAccess.getInvokeSceneAccess().getSceneSceneStringIDParserRuleCall_2_0_1(), semanticObject.getScene()); feeder.finish(); } /** * Constraint: * (comment=COMMENT? body=ConditionalBody) */ protected void sequence_OtherTimes(EObject context, OtherTimes semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (modifiers+=Modifier* conditionList=ConditionList? comment=COMMENT? choices+=ChoiceDialog+) */ protected void sequence_OtherwiseChoice(EObject context, OtherwiseChoice semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (modifiers+=Modifier* conditionList=ConditionList? comment=COMMENT? body=ConditionalBody) */ protected void sequence_Otherwise(EObject context, Otherwise semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (comment=COMMENT? body=ConditionalBody) */ protected void sequence_PartingLines(EObject context, PartingLines semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (name=StringID dialog=Dialog) */ protected void sequence_Scene(EObject context, Scene semanticObject) { if(errorAcceptor != null) { if(transientValues.isValueTransient(semanticObject, DialogScriptPackage.Literals.SCENE__NAME) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DialogScriptPackage.Literals.SCENE__NAME)); if(transientValues.isValueTransient(semanticObject, DialogScriptPackage.Literals.SCENE__DIALOG) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DialogScriptPackage.Literals.SCENE__DIALOG)); } INodesForEObjectProvider nodes = createNodeProvider(semanticObject); SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); feeder.accept(grammarAccess.getSceneAccess().getNameStringIDParserRuleCall_2_0(), semanticObject.getName()); feeder.accept(grammarAccess.getSceneAccess().getDialogDialogParserRuleCall_3_0(), semanticObject.getDialog()); feeder.finish(); } /** * Constraint: * (charactersDefinition=CharactersDefinition? switchesDefinition=SwitchesDefinition? conditionsDefinition=ConditionsDefinition? scenes+=Scene*) */ protected void sequence_Script(EObject context, Script semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (name=ID value=SwitchValue?) */ protected void sequence_SwitchDefinition(EObject context, SwitchDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (switches+=Switch switches+=Switch*) */ protected void sequence_SwitchList(EObject context, SwitchList semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (sets+=[SwitchDefinition|ID] sets+=[SwitchDefinition|ID]* comment=COMMENT?) */ protected void sequence_SwitchOff(EObject context, SwitchOff semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (sets+=[SwitchDefinition|ID] sets+=[SwitchDefinition|ID]* comment=COMMENT?) */ protected void sequence_SwitchOn(EObject context, SwitchOn semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (switch=[SwitchDefinition|ID] value=SwitchValue) */ protected void sequence_Switch(EObject context, Switch semanticObject) { if(errorAcceptor != null) { if(transientValues.isValueTransient(semanticObject, DialogScriptPackage.Literals.SWITCH__SWITCH) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DialogScriptPackage.Literals.SWITCH__SWITCH)); if(transientValues.isValueTransient(semanticObject, DialogScriptPackage.Literals.SWITCH__VALUE) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, DialogScriptPackage.Literals.SWITCH__VALUE)); } INodesForEObjectProvider nodes = createNodeProvider(semanticObject); SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); feeder.accept(grammarAccess.getSwitchAccess().getSwitchSwitchDefinitionIDTerminalRuleCall_0_0_1(), semanticObject.getSwitch()); feeder.accept(grammarAccess.getSwitchAccess().getValueSwitchValueEnumRuleCall_2_0(), semanticObject.getValue()); feeder.finish(); } /** * Constraint: * (switches+=SwitchDefinition switches+=SwitchDefinition*) */ protected void sequence_SwitchesDefinition(EObject context, SwitchesDefinition semanticObject) { genericSequencer.createSequence(context, semanticObject); } }