/******************************************************************************* * Copyright (c) 2011, 2016 Willink Transformations and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * E.D.Willink - initial API and implementation *******************************************************************************/ package org.eclipse.ocl.xtext.markup.serializer; import com.google.inject.Inject; import com.google.inject.Provider; import org.eclipse.emf.ecore.EObject; import org.eclipse.ocl.xtext.markup.services.MarkupGrammarAccess; import org.eclipse.ocl.xtext.markupcs.BulletElement; import org.eclipse.ocl.xtext.markupcs.FigureElement; import org.eclipse.ocl.xtext.markupcs.FigureRefElement; import org.eclipse.ocl.xtext.markupcs.FontElement; import org.eclipse.ocl.xtext.markupcs.FootnoteElement; import org.eclipse.ocl.xtext.markupcs.HeadingElement; import org.eclipse.ocl.xtext.markupcs.Markup; import org.eclipse.ocl.xtext.markupcs.MarkupPackage; import org.eclipse.ocl.xtext.markupcs.NewLineElement; import org.eclipse.ocl.xtext.markupcs.NullElement; import org.eclipse.ocl.xtext.markupcs.OCLCodeElement; import org.eclipse.ocl.xtext.markupcs.OCLEvalElement; import org.eclipse.ocl.xtext.markupcs.OCLTextElement; import org.eclipse.ocl.xtext.markupcs.TextElement; import org.eclipse.xtext.serializer.acceptor.ISemanticSequenceAcceptor; 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.ISemanticSequencer; import org.eclipse.xtext.serializer.sequencer.ITransientValueService; @SuppressWarnings("all") public abstract class AbstractMarkupSemanticSequencer extends AbstractDelegatingSemanticSequencer { @Inject private MarkupGrammarAccess grammarAccess; @Override public void createSequence(EObject context, EObject semanticObject) { if(semanticObject.eClass().getEPackage() == MarkupPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) { case MarkupPackage.BULLET_ELEMENT: sequence_BulletElement(context, (BulletElement) semanticObject); return; case MarkupPackage.FIGURE_ELEMENT: sequence_FigureElement(context, (FigureElement) semanticObject); return; case MarkupPackage.FIGURE_REF_ELEMENT: sequence_FigureRefElement(context, (FigureRefElement) semanticObject); return; case MarkupPackage.FONT_ELEMENT: sequence_FontElement(context, (FontElement) semanticObject); return; case MarkupPackage.FOOTNOTE_ELEMENT: sequence_FootnoteElement(context, (FootnoteElement) semanticObject); return; case MarkupPackage.HEADING_ELEMENT: sequence_HeadingElement(context, (HeadingElement) semanticObject); return; case MarkupPackage.MARKUP: sequence_Markup(context, (Markup) semanticObject); return; case MarkupPackage.NEW_LINE_ELEMENT: sequence_NewLineElement(context, (NewLineElement) semanticObject); return; case MarkupPackage.NULL_ELEMENT: sequence_NullElement(context, (NullElement) semanticObject); return; case MarkupPackage.OCL_CODE_ELEMENT: sequence_OCLCodeElement(context, (OCLCodeElement) semanticObject); return; case MarkupPackage.OCL_EVAL_ELEMENT: sequence_OCLEvalElement(context, (OCLEvalElement) semanticObject); return; case MarkupPackage.OCL_TEXT_ELEMENT: sequence_OCLTextElement(context, (OCLTextElement) semanticObject); return; case MarkupPackage.TEXT_ELEMENT: sequence_TextElement(context, (TextElement) semanticObject); return; } if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context)); } /** * Constraint: * (level=INT? elements+=MarkupElement*) */ protected void sequence_BulletElement(EObject context, BulletElement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (def=ID? src=STRING (alt=STRING (requiredWidth=INT requiredHeight=INT?)?)?) */ protected void sequence_FigureElement(EObject context, FigureElement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * ref=[FigureElement|ID] */ protected void sequence_FigureRefElement(EObject context, FigureRefElement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * ((font='b' | font='e') elements+=MarkupElement*) */ protected void sequence_FontElement(EObject context, FontElement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (elements+=MarkupElement*) */ protected void sequence_FootnoteElement(EObject context, FootnoteElement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (level=INT? elements+=MarkupElement*) */ protected void sequence_HeadingElement(EObject context, HeadingElement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * elements+=MarkupElement* */ protected void sequence_Markup(EObject context, Markup semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * text=NL */ protected void sequence_NewLineElement(EObject context, NewLineElement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (elements+=MarkupElement*) */ protected void sequence_NullElement(EObject context, NullElement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (elements+=MarkupElement*) */ protected void sequence_OCLCodeElement(EObject context, OCLCodeElement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (elements+=MarkupElement*) */ protected void sequence_OCLEvalElement(EObject context, OCLEvalElement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * (elements+=MarkupElement*) */ protected void sequence_OCLTextElement(EObject context, OCLTextElement semanticObject) { genericSequencer.createSequence(context, semanticObject); } /** * Constraint: * ( * ( * text+=ID | * text+=WORD | * text+=INT | * text+=WS | * text+=':' | * text+='#' | * text+=',' * )+ | * text+=MarkupKeyword * ) */ protected void sequence_TextElement(EObject context, TextElement semanticObject) { genericSequencer.createSequence(context, semanticObject); } }