/* * generated by Xtext */ package org.example.entities.serializer; import com.google.inject.Inject; import com.google.inject.Provider; 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; import org.example.entities.entities.Attribute; import org.example.entities.entities.AttributeType; import org.example.entities.entities.BasicType; import org.example.entities.entities.EntitiesPackage; import org.example.entities.entities.Entity; import org.example.entities.entities.EntityType; import org.example.entities.entities.Model; import org.example.entities.services.EntitiesGrammarAccess; @SuppressWarnings("all") public class EntitiesSemanticSequencer extends AbstractDelegatingSemanticSequencer { @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.ATTRIBUTE_TYPE: sequence_AttributeType(context, (AttributeType) semanticObject); return; case EntitiesPackage.BASIC_TYPE: sequence_BasicType(context, (BasicType) semanticObject); return; case EntitiesPackage.ENTITY: sequence_Entity(context, (Entity) semanticObject); return; case EntitiesPackage.ENTITY_TYPE: sequence_EntityType(context, (EntityType) semanticObject); return; case EntitiesPackage.MODEL: sequence_Model(context, (Model) semanticObject); return; } if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); } /** * Constraint: * (elementType=ElementType (array?='[' length=INT?)?) */ protected void sequence_AttributeType(EObject context, AttributeType semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (type=AttributeType name=ID) */ protected void sequence_Attribute(EObject context, Attribute semanticObject) { if(errorAcceptor != null) { if(transientValues.isValueTransient(semanticObject, EntitiesPackage.Literals.ATTRIBUTE__TYPE) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, EntitiesPackage.Literals.ATTRIBUTE__TYPE)); if(transientValues.isValueTransient(semanticObject, EntitiesPackage.Literals.ATTRIBUTE__NAME) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, EntitiesPackage.Literals.ATTRIBUTE__NAME)); } INodesForEObjectProvider nodes = createNodeProvider(semanticObject); SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); feeder.accept(grammarAccess.getAttributeAccess().getTypeAttributeTypeParserRuleCall_0_0(), semanticObject.getType()); feeder.accept(grammarAccess.getAttributeAccess().getNameIDTerminalRuleCall_1_0(), semanticObject.getName()); feeder.finish(); } /** * Constraint: * (typeName='string' | typeName='int' | typeName='boolean') */ protected void sequence_BasicType(EObject context, BasicType semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * entity=[Entity|ID] */ protected void sequence_EntityType(EObject context, EntityType semanticObject) { if(errorAcceptor != null) { if(transientValues.isValueTransient(semanticObject, EntitiesPackage.Literals.ENTITY_TYPE__ENTITY) == ValueTransient.YES) errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, EntitiesPackage.Literals.ENTITY_TYPE__ENTITY)); } INodesForEObjectProvider nodes = createNodeProvider(semanticObject); SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes); feeder.accept(grammarAccess.getEntityTypeAccess().getEntityEntityIDTerminalRuleCall_0_1(), semanticObject.getEntity()); feeder.finish(); } /** * Constraint: * (name=ID superType=[Entity|ID]? attributes+=Attribute*) */ protected void sequence_Entity(EObject context, Entity semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * entities+=Entity* */ protected void sequence_Model(EObject context, Model semanticObject) { genericSequencer.createSequence(context, semanticObject); } }