/* * generated by Xtext 2.12.0 */ package com.irtsaintexupery.xtext.serializer; import com.google.inject.Inject; import com.irtsaintexupery.pseim.seim.BooleanProperty; import com.irtsaintexupery.pseim.seim.Component; import com.irtsaintexupery.pseim.seim.IntegerProperty; import com.irtsaintexupery.pseim.seim.Link; import com.irtsaintexupery.pseim.seim.Model; import com.irtsaintexupery.pseim.seim.Port; import com.irtsaintexupery.pseim.seim.ReferenceProperty; import com.irtsaintexupery.pseim.seim.SeimPackage; import com.irtsaintexupery.pseim.seim.StringProperty; import com.irtsaintexupery.xtext.services.PseimGrammarAccess; import java.util.Set; 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 PseimSemanticSequencer extends AbstractDelegatingSemanticSequencer { @Inject private PseimGrammarAccess grammarAccess; @Override public void sequence(ISerializationContext context, EObject semanticObject) { EPackage epackage = semanticObject.eClass().getEPackage(); ParserRule rule = context.getParserRule(); Action action = context.getAssignedAction(); Set parameters = context.getEnabledBooleanParameters(); if (epackage == SeimPackage.eINSTANCE) switch (semanticObject.eClass().getClassifierID()) { case SeimPackage.BOOLEAN_PROPERTY: sequence_BooleanProperty(context, (BooleanProperty) semanticObject); return; case SeimPackage.COMPONENT: sequence_Component(context, (Component) semanticObject); return; case SeimPackage.INTEGER_PROPERTY: sequence_IntegerProperty(context, (IntegerProperty) semanticObject); return; case SeimPackage.LINK: sequence_Link(context, (Link) semanticObject); return; case SeimPackage.MODEL: sequence_Model(context, (Model) semanticObject); return; case SeimPackage.PORT: sequence_Port(context, (Port) semanticObject); return; case SeimPackage.REFERENCE_PROPERTY: sequence_ReferenceProperty(context, (ReferenceProperty) semanticObject); return; case SeimPackage.STRING_PROPERTY: sequence_StringProperty(context, (StringProperty) semanticObject); return; } if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); } /** * Contexts: * Property returns BooleanProperty * BooleanProperty returns BooleanProperty * * Constraint: * (value?='value' key=EString) */ protected void sequence_BooleanProperty(ISerializationContext context, BooleanProperty semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, SeimPackage.Literals.BOOLEAN_PROPERTY__VALUE) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SeimPackage.Literals.BOOLEAN_PROPERTY__VALUE)); if (transientValues.isValueTransient(semanticObject, SeimPackage.Literals.PROPERTY__KEY) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SeimPackage.Literals.PROPERTY__KEY)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getBooleanPropertyAccess().getValueValueKeyword_0_0(), semanticObject.isValue()); feeder.accept(grammarAccess.getBooleanPropertyAccess().getKeyEStringParserRuleCall_4_0(), semanticObject.getKey()); feeder.finish(); } /** * Contexts: * Component returns Component * GraphElement returns Component * PropertyHolder returns Component * Element returns Component * * Constraint: * (name=ID (content+=Port content+=Port*)? content+=GraphElement*) */ protected void sequence_Component(ISerializationContext context, Component semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * Property returns IntegerProperty * IntegerProperty returns IntegerProperty * * Constraint: * (key=EString value=EInt) */ protected void sequence_IntegerProperty(ISerializationContext context, IntegerProperty semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, SeimPackage.Literals.PROPERTY__KEY) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SeimPackage.Literals.PROPERTY__KEY)); if (transientValues.isValueTransient(semanticObject, SeimPackage.Literals.INTEGER_PROPERTY__VALUE) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SeimPackage.Literals.INTEGER_PROPERTY__VALUE)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getIntegerPropertyAccess().getKeyEStringParserRuleCall_3_0(), semanticObject.getKey()); feeder.accept(grammarAccess.getIntegerPropertyAccess().getValueEIntParserRuleCall_5_0(), semanticObject.getValue()); feeder.finish(); } /** * Contexts: * Link returns Link * GraphElement returns Link * PropertyHolder returns Link * Element returns Link * * Constraint: * (src=[Port|QualifiedID] dst=[Port|QualifiedID]) */ protected void sequence_Link(ISerializationContext context, Link semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, SeimPackage.Literals.LINK__SRC) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SeimPackage.Literals.LINK__SRC)); if (transientValues.isValueTransient(semanticObject, SeimPackage.Literals.LINK__DST) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SeimPackage.Literals.LINK__DST)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getLinkAccess().getSrcPortQualifiedIDParserRuleCall_0_0_1(), semanticObject.eGet(SeimPackage.Literals.LINK__SRC, false)); feeder.accept(grammarAccess.getLinkAccess().getDstPortQualifiedIDParserRuleCall_2_0_1(), semanticObject.eGet(SeimPackage.Literals.LINK__DST, false)); feeder.finish(); } /** * Contexts: * Model returns Model * PropertyHolder returns Model * * Constraint: * (name=EString modelElements+=GraphElement*) */ protected void sequence_Model(ISerializationContext context, Model semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Contexts: * Port returns Port * PropertyHolder returns Port * Element returns Port * * Constraint: * (direction=PortDirection name=ID) */ protected void sequence_Port(ISerializationContext context, Port semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, SeimPackage.Literals.PORT__DIRECTION) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SeimPackage.Literals.PORT__DIRECTION)); if (transientValues.isValueTransient(semanticObject, SeimPackage.Literals.NAMED_ELEMENT__NAME) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SeimPackage.Literals.NAMED_ELEMENT__NAME)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getPortAccess().getDirectionPortDirectionEnumRuleCall_0_0(), semanticObject.getDirection()); feeder.accept(grammarAccess.getPortAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); feeder.finish(); } /** * Contexts: * Property returns ReferenceProperty * ReferenceProperty returns ReferenceProperty * * Constraint: * (key=EString ref=[PropertyHolder|EString]) */ protected void sequence_ReferenceProperty(ISerializationContext context, ReferenceProperty semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, SeimPackage.Literals.PROPERTY__KEY) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SeimPackage.Literals.PROPERTY__KEY)); if (transientValues.isValueTransient(semanticObject, SeimPackage.Literals.REFERENCE_PROPERTY__REF) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SeimPackage.Literals.REFERENCE_PROPERTY__REF)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getReferencePropertyAccess().getKeyEStringParserRuleCall_3_0(), semanticObject.getKey()); feeder.accept(grammarAccess.getReferencePropertyAccess().getRefPropertyHolderEStringParserRuleCall_5_0_1(), semanticObject.eGet(SeimPackage.Literals.REFERENCE_PROPERTY__REF, false)); feeder.finish(); } /** * Contexts: * Property returns StringProperty * StringProperty returns StringProperty * * Constraint: * (key=EString value=EString) */ protected void sequence_StringProperty(ISerializationContext context, StringProperty semanticObject) { if (errorAcceptor != null) { if (transientValues.isValueTransient(semanticObject, SeimPackage.Literals.PROPERTY__KEY) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SeimPackage.Literals.PROPERTY__KEY)); if (transientValues.isValueTransient(semanticObject, SeimPackage.Literals.STRING_PROPERTY__VALUE) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, SeimPackage.Literals.STRING_PROPERTY__VALUE)); } SequenceFeeder feeder = createSequencerFeeder(context, semanticObject); feeder.accept(grammarAccess.getStringPropertyAccess().getKeyEStringParserRuleCall_3_0(), semanticObject.getKey()); feeder.accept(grammarAccess.getStringPropertyAccess().getValueEStringParserRuleCall_5_0(), semanticObject.getValue()); feeder.finish(); } }