/* * generated by Xtext */ package net.certware.intent.serializer; import com.google.inject.Inject; import java.util.Set; import net.certware.intent.intentSpecification.Decomposition; import net.certware.intent.intentSpecification.DecompositionType; import net.certware.intent.intentSpecification.DocItem; import net.certware.intent.intentSpecification.DocItemType; import net.certware.intent.intentSpecification.Document; import net.certware.intent.intentSpecification.Intent; import net.certware.intent.intentSpecification.IntentSpecificationPackage; import net.certware.intent.intentSpecification.IntentType; import net.certware.intent.intentSpecification.ListItem; import net.certware.intent.intentSpecification.ListItemType; import net.certware.intent.intentSpecification.ModelItem; import net.certware.intent.intentSpecification.ModelType; import net.certware.intent.intentSpecification.Refinement; import net.certware.intent.intentSpecification.Specification; import net.certware.intent.services.IntentSpecificationGrammarAccess; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.xtext.Action; import org.eclipse.xtext.Parameter; import org.eclipse.xtext.ParserRule; import org.eclipse.xtext.serializer.ISerializationContext; import org.eclipse.xtext.serializer.acceptor.SequenceFeeder; import org.eclipse.xtext.serializer.sequencer.AbstractDelegatingSemanticSequencer; import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient; @SuppressWarnings("all") public class IntentSpecificationSemanticSequencer extends AbstractDelegatingSemanticSequencer { @Inject private IntentSpecificationGrammarAccess grammarAccess; @Override public void sequence(ISerializationContext context, EObject semanticObject) { EPackage epackage = semanticObject.eClass().getEPackage(); ParserRule rule = context.getParserRule(); Action action = context.getAssignedAction(); Set<Parameter> parameters = context.getEnabledBooleanParameters(); if (epackage == IntentSpecificationPackage.eINSTANCE) switch (semanticObject.eClass().getClassifierID()) { case IntentSpecificationPackage.DECOMPOSITION: sequence_Decomposition(context, (Decomposition) semanticObject); return; case IntentSpecificationPackage.DECOMPOSITION_TYPE: sequence_DecompositionType(context, (DecompositionType) semanticObject); return; case IntentSpecificationPackage.DOC_ITEM: sequence_DocItem(context, (DocItem) semanticObject); return; case IntentSpecificationPackage.DOC_ITEM_TYPE: sequence_DocItemType(context, (DocItemType) semanticObject); return; case IntentSpecificationPackage.DOCUMENT: sequence_Document(context, (Document) semanticObject); return; case IntentSpecificationPackage.INTENT: sequence_Intent(context, (Intent) semanticObject); return; case IntentSpecificationPackage.INTENT_TYPE: sequence_IntentType(context, (IntentType) semanticObject); return; case IntentSpecificationPackage.LIST_ITEM: sequence_ListItem(context, (ListItem) semanticObject); return; case IntentSpecificationPackage.LIST_ITEM_TYPE: sequence_ListItemType(context, (ListItemType) semanticObject); return; case IntentSpecificationPackage.MODEL_ITEM: sequence_ModelItem(context, (ModelItem) semanticObject); return; case IntentSpecificationPackage.MODEL_TYPE: sequence_ModelType(context, (ModelType) semanticObject); return; case IntentSpecificationPackage.REFINEMENT: sequence_Refinement(context, (Refinement) semanticObject); return; case IntentSpecificationPackage.SPECIFICATION: sequence_Specification(context, (Specification) semanticObject); return; } if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); } /** * Contexts: * DecompositionType returns DecompositionType * * Constraint: * (typeName='environment' | typeName='operator' | typeName='system' | typeName='verification') */ protected void sequence_DecompositionType(ISerializationContext context, DecompositionType semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * Decomposition returns Decomposition * * Constraint: * ( * type=DecompositionType * name=ID * desc=STRING * documents+=Document* * models+=ModelItem* * items+=ListItem* * ) */ protected void sequence_Decomposition(ISerializationContext context, Decomposition semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * DocItemType returns DocItemType * * Constraint: * ( * typeName='condition' | * typeName='figure' | * typeName='break' | * typeName='model' | * typeName='paragraph' | * typeName='section' | * typeName='table' * ) */ protected void sequence_DocItemType(ISerializationContext context, DocItemType semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * DocItem returns DocItem * * Constraint: * (type=DocItemType name=ID ref=STRING) */ protected void sequence_DocItem(ISerializationContext context, DocItem semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, IntentSpecificationPackage.Literals.DOC_ITEM__TYPE) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, IntentSpecificationPackage.Literals.DOC_ITEM__TYPE)); if (transientValues.isValueTransient(semanticObject, IntentSpecificationPackage.Literals.DOC_ITEM__NAME) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, IntentSpecificationPackage.Literals.DOC_ITEM__NAME)); if (transientValues.isValueTransient(semanticObject, IntentSpecificationPackage.Literals.DOC_ITEM__REF) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, IntentSpecificationPackage.Literals.DOC_ITEM__REF)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getDocItemAccess().getTypeDocItemTypeParserRuleCall_0_0(), semanticObject.getType()); feeder.accept(grammarAccess.getDocItemAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); feeder.accept(grammarAccess.getDocItemAccess().getRefSTRINGTerminalRuleCall_2_0(), semanticObject.getRef()); feeder.finish(); } /** * Contexts: * Document returns Document * * Constraint: * entries+=DocItem+ */ protected void sequence_Document(ISerializationContext context, Document semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * IntentType returns IntentType * * Constraint: * ( * typeName='basic' | * typeName='purpose' | * typeName='principles' | * typeName='models' | * typeName='design' | * typeName='implementation' | * typeName='operation' * ) */ protected void sequence_IntentType(ISerializationContext context, IntentType semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * Intent returns Intent * * Constraint: * (type=IntentType name=ID desc=STRING decompositions+=Decomposition+) */ protected void sequence_Intent(ISerializationContext context, Intent semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * ListItemType returns ListItemType * * Constraint: * (typeName='requirement' | typeName='goal' | typeName='hazard' | typeName='constraint') */ protected void sequence_ListItemType(ISerializationContext context, ListItemType semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * ListItem returns ListItem * * Constraint: * ( * type=ListItemType * name=ID * desc=STRING * docReferences+=[DocItem|ID]* * itemReferences+=[ListItem|ID]* * modelReferences+=[ModelItem|ID]* * ) */ protected void sequence_ListItem(ISerializationContext context, ListItem semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * ModelItem returns ModelItem * * Constraint: * (type=ModelType name=ID desc=STRING) */ protected void sequence_ModelItem(ISerializationContext context, ModelItem semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, IntentSpecificationPackage.Literals.MODEL_ITEM__TYPE) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, IntentSpecificationPackage.Literals.MODEL_ITEM__TYPE)); if (transientValues.isValueTransient(semanticObject, IntentSpecificationPackage.Literals.MODEL_ITEM__NAME) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, IntentSpecificationPackage.Literals.MODEL_ITEM__NAME)); if (transientValues.isValueTransient(semanticObject, IntentSpecificationPackage.Literals.MODEL_ITEM__DESC) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, IntentSpecificationPackage.Literals.MODEL_ITEM__DESC)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getModelItemAccess().getTypeModelTypeParserRuleCall_0_0(), semanticObject.getType()); feeder.accept(grammarAccess.getModelItemAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); feeder.accept(grammarAccess.getModelItemAccess().getDescSTRINGTerminalRuleCall_2_0(), semanticObject.getDesc()); feeder.finish(); } /** * Contexts: * ModelType returns ModelType * * Constraint: * ( * typeName='output' | * typeName='mode' | * typeName='state' | * typeName='macro' | * typeName='function' | * typeName='input' * ) */ protected void sequence_ModelType(ISerializationContext context, ModelType semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * Refinement returns Refinement * * Constraint: * (name=ID desc=STRING intents+=Intent+) */ protected void sequence_Refinement(ISerializationContext context, Refinement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * Specification returns Specification * * Constraint: * (name=ID refinements+=Refinement+) */ protected void sequence_Specification(ISerializationContext context, Specification semanticObject) { genericSequencer.createSequence(context, semanticObject); } }