package gr.upatras.ece.wcl.radl2.serializer;
import com.google.inject.Inject;
import com.google.inject.Provider;
import gr.upatras.ece.wcl.radl2.radl.AllowedType;
import gr.upatras.ece.wcl.radl2.radl.BindingParam;
import gr.upatras.ece.wcl.radl2.radl.ConfigurationParam;
import gr.upatras.ece.wcl.radl2.radl.Import;
import gr.upatras.ece.wcl.radl2.radl.ParameterType;
import gr.upatras.ece.wcl.radl2.radl.RADL;
import gr.upatras.ece.wcl.radl2.radl.RadlPackage;
import gr.upatras.ece.wcl.radl2.radl.ResourceAdapter;
import gr.upatras.ece.wcl.radl2.radl.SupportedChildType;
import gr.upatras.ece.wcl.radl2.radl.assignCommand;
import gr.upatras.ece.wcl.radl2.radl.entryCommand;
import gr.upatras.ece.wcl.radl2.radl.rulJava_paraScript;
import gr.upatras.ece.wcl.radl2.radl.rulJava_paramInt;
import gr.upatras.ece.wcl.radl2.radl.rulJava_paramString;
import gr.upatras.ece.wcl.radl2.radl.rulSSH_commands;
import gr.upatras.ece.wcl.radl2.radl.ruleHTTP;
import gr.upatras.ece.wcl.radl2.radl.ruleHTTP_URL;
import gr.upatras.ece.wcl.radl2.radl.ruleJavaWrapper;
import gr.upatras.ece.wcl.radl2.radl.ruleSSH;
import gr.upatras.ece.wcl.radl2.radl.ruleXMLRPC;
import gr.upatras.ece.wcl.radl2.services.RadlGrammarAccess;
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 abstract class AbstractRadlSemanticSequencer extends AbstractDelegatingSemanticSequencer {
@Inject
private RadlGrammarAccess grammarAccess;
public void createSequence(EObject context, EObject semanticObject) {
if(semanticObject.eClass().getEPackage() == RadlPackage.eINSTANCE) switch(semanticObject.eClass().getClassifierID()) {
case RadlPackage.ALLOWED_TYPE:
if(context == grammarAccess.getAllowedTypeRule()) {
sequence_AllowedType(context, (AllowedType) semanticObject);
return;
}
else break;
case RadlPackage.BINDING_PARAM:
if(context == grammarAccess.getBindingParamRule() ||
context == grammarAccess.getScriptParamRule()) {
sequence_BindingParam(context, (BindingParam) semanticObject);
return;
}
else break;
case RadlPackage.CONFIGURATION_PARAM:
if(context == grammarAccess.getConfigurationParamRule() ||
context == grammarAccess.getScriptParamRule()) {
sequence_ConfigurationParam(context, (ConfigurationParam) semanticObject);
return;
}
else break;
case RadlPackage.IMPORT:
if(context == grammarAccess.getImportRule()) {
sequence_Import(context, (Import) semanticObject);
return;
}
else break;
case RadlPackage.PARAMETER_TYPE:
if(context == grammarAccess.getParameterTypeRule()) {
sequence_ParameterType(context, (ParameterType) semanticObject);
return;
}
else break;
case RadlPackage.RADL:
if(context == grammarAccess.getRADLRule()) {
sequence_RADL(context, (RADL) semanticObject);
return;
}
else break;
case RadlPackage.RESOURCE_ADAPTER:
if(context == grammarAccess.getResourceAdapterRule()) {
sequence_ResourceAdapter(context, (ResourceAdapter) semanticObject);
return;
}
else break;
case RadlPackage.SUPPORTED_CHILD_TYPE:
if(context == grammarAccess.getSupportedChildTypeRule()) {
sequence_SupportedChildType(context, (SupportedChildType) semanticObject);
return;
}
else break;
case RadlPackage.ASSIGN_COMMAND:
if(context == grammarAccess.getCommandRule() ||
context == grammarAccess.getAssignCommandRule()) {
sequence_assignCommand(context, (assignCommand) semanticObject);
return;
}
else break;
case RadlPackage.ENTRY_COMMAND:
if(context == grammarAccess.getCommandRule() ||
context == grammarAccess.getEntryCommandRule()) {
sequence_entryCommand(context, (entryCommand) semanticObject);
return;
}
else break;
case RadlPackage.RUL_JAVA_PARA_SCRIPT:
if(context == grammarAccess.getRulJava_paraScriptRule() ||
context == grammarAccess.getRulJava_paramRule()) {
sequence_rulJava_paraScript(context, (rulJava_paraScript) semanticObject);
return;
}
else break;
case RadlPackage.RUL_JAVA_PARAM_INT:
if(context == grammarAccess.getRulJava_paramRule() ||
context == grammarAccess.getRulJava_paramIntRule()) {
sequence_rulJava_paramInt(context, (rulJava_paramInt) semanticObject);
return;
}
else break;
case RadlPackage.RUL_JAVA_PARAM_STRING:
if(context == grammarAccess.getRulJava_paramRule() ||
context == grammarAccess.getRulJava_paramStringRule()) {
sequence_rulJava_paramString(context, (rulJava_paramString) semanticObject);
return;
}
else break;
case RadlPackage.RUL_SSH_COMMANDS:
if(context == grammarAccess.getRulSSH_commandsRule()) {
sequence_rulSSH_commands(context, (rulSSH_commands) semanticObject);
return;
}
else break;
case RadlPackage.RULE_HTTP:
if(context == grammarAccess.getProtocolRule() ||
context == grammarAccess.getRuleHTTPRule()) {
sequence_ruleHTTP(context, (ruleHTTP) semanticObject);
return;
}
else break;
case RadlPackage.RULE_HTTP_URL:
if(context == grammarAccess.getRuleHTTP_URLRule()) {
sequence_ruleHTTP_URL(context, (ruleHTTP_URL) semanticObject);
return;
}
else break;
case RadlPackage.RULE_JAVA_WRAPPER:
if(context == grammarAccess.getProtocolRule() ||
context == grammarAccess.getRuleJavaWrapperRule()) {
sequence_ruleJavaWrapper(context, (ruleJavaWrapper) semanticObject);
return;
}
else break;
case RadlPackage.RULE_SSH:
if(context == grammarAccess.getProtocolRule() ||
context == grammarAccess.getRuleSSHRule()) {
sequence_ruleSSH(context, (ruleSSH) semanticObject);
return;
}
else break;
case RadlPackage.RULE_XMLRPC:
if(context == grammarAccess.getProtocolRule() ||
context == grammarAccess.getRuleXMLRPCRule()) {
sequence_ruleXMLRPC(context, (ruleXMLRPC) semanticObject);
return;
}
else break;
}
if (errorAcceptor != null) errorAcceptor.accept(diagnosticProvider.createInvalidContextOrTypeDiagnostic(semanticObject, context));
}
/**
* Constraint:
* (paramType=ParameterType? (name=ID | name=STRING) defValue=STRING?)
*/
protected void sequence_AllowedType(EObject context, AllowedType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (paramType=ParameterType? (name=ID | name=STRING) defValue=STRING? descriptionValue=STRING?)
*/
protected void sequence_BindingParam(EObject context, BindingParam semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (paramType=ParameterType? (name=ID | name=STRING) defValue=STRING? descriptionValue=STRING?)
*/
protected void sequence_ConfigurationParam(EObject context, ConfigurationParam semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* importURI=STRING
*/
protected void sequence_Import(EObject context, Import semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, RadlPackage.Literals.IMPORT__IMPORT_URI) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RadlPackage.Literals.IMPORT__IMPORT_URI));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getImportAccess().getImportURISTRINGTerminalRuleCall_1_0(), semanticObject.getImportURI());
feeder.finish();
}
/**
* Constraint:
* (pName='String' | pName='Integer' | pName='Boolean' | pName='Enum' | pName='REFERENCE')
*/
protected void sequence_ParameterType(EObject context, ParameterType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (imports=Import? resourceAdapter=ResourceAdapter)
*/
protected void sequence_RADL(EObject context, RADL semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (
* name=STRING
* (implname=[OfferedService|STRING] byoffice=[Broker|STRING])?
* confParams+=ConfigurationParam*
* bindParams+=BindingParam*
* childParams+=SupportedChildType*
* allowParams+=AllowedType*
* ((ConfComplete='YES' | ConfComplete='NO') protocol=Protocol)?
* )
*/
protected void sequence_ResourceAdapter(EObject context, ResourceAdapter semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (paramType=ParameterType? (name=ID | name=STRING) defValue=STRING?)
*/
protected void sequence_SupportedChildType(EObject context, SupportedChildType semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (scriptParam=[scriptParam|ID] javaFunctionName=ID (commands+=rulJava_param commands+=rulJava_param*)?)
*/
protected void sequence_assignCommand(EObject context, assignCommand semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (javaFunctionName=ID (commands+=rulJava_param commands+=rulJava_param*)?)
*/
protected void sequence_entryCommand(EObject context, entryCommand semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* scriptparamValue=[scriptParam|ID]
*/
protected void sequence_rulJava_paraScript(EObject context, rulJava_paraScript semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, RadlPackage.Literals.RUL_JAVA_PARA_SCRIPT__SCRIPTPARAM_VALUE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RadlPackage.Literals.RUL_JAVA_PARA_SCRIPT__SCRIPTPARAM_VALUE));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getRulJava_paraScriptAccess().getScriptparamValueScriptParamIDTerminalRuleCall_0_1(), semanticObject.getScriptparamValue());
feeder.finish();
}
/**
* Constraint:
* intValue=INT
*/
protected void sequence_rulJava_paramInt(EObject context, rulJava_paramInt semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, RadlPackage.Literals.RUL_JAVA_PARAM_INT__INT_VALUE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RadlPackage.Literals.RUL_JAVA_PARAM_INT__INT_VALUE));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getRulJava_paramIntAccess().getIntValueINTTerminalRuleCall_0(), semanticObject.getIntValue());
feeder.finish();
}
/**
* Constraint:
* stringValue=STRING
*/
protected void sequence_rulJava_paramString(EObject context, rulJava_paramString semanticObject) {
if(errorAcceptor != null) {
if(transientValues.isValueTransient(semanticObject, RadlPackage.Literals.RUL_JAVA_PARAM_STRING__STRING_VALUE) == ValueTransient.YES)
errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject, RadlPackage.Literals.RUL_JAVA_PARAM_STRING__STRING_VALUE));
}
INodesForEObjectProvider nodes = createNodeProvider(semanticObject);
SequenceFeeder feeder = createSequencerFeeder(semanticObject, nodes);
feeder.accept(grammarAccess.getRulJava_paramStringAccess().getStringValueSTRINGTerminalRuleCall_0(), semanticObject.getStringValue());
feeder.finish();
}
/**
* Constraint:
* (remoteCommand=STRING scriptparams+=[scriptParam|STRING]*)
*/
protected void sequence_rulSSH_commands(EObject context, rulSSH_commands semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (remoteURL=STRING scriptparams+=[scriptParam|STRING]*)
*/
protected void sequence_ruleHTTP_URL(EObject context, ruleHTTP_URL semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (
* remoteMachine=[scriptParam|STRING]
* httpURL+=ruleHTTP_URL*
* (HMethod='GET' | HMethod='POST')
* (AuthMethod=[scriptParam|STRING] username=[scriptParam|STRING] password=[scriptParam|STRING])?
* postBody=[scriptParam|STRING]
* )
*/
protected void sequence_ruleHTTP(EObject context, ruleHTTP semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (classname=ID (constructorParams+=rulJava_param constructorParams+=rulJava_param*)? commands+=Command*)
*/
protected void sequence_ruleJavaWrapper(EObject context, ruleJavaWrapper semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (
* remoteMachine=[scriptParam|STRING]
* RPort=[scriptParam|STRING]
* username=[scriptParam|STRING]
* password=[scriptParam|STRING]
* commands+=rulSSH_commands*
* commandsDelete+=rulSSH_commands*
* )
*/
protected void sequence_ruleSSH(EObject context, ruleSSH semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
/**
* Constraint:
* (
* remoteMachine=[BindingParam|ID]
* (username=[BindingParam|ID] password=[BindingParam|ID])?
* RPCMethod=[BindingParam|ID]
* URLparams+=[ConfigurationParam|STRING]*
* )
*/
protected void sequence_ruleXMLRPC(EObject context, ruleXMLRPC semanticObject) {
genericSequencer.createSequence(context, semanticObject);
}
}