All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.contextmapper.servicecutter.dsl.services.ServiceCutterConfigurationDSLGrammarAccess Maven / Gradle / Ivy

There is a newer version: 6.12.0
Show newest version
/*
 * generated by Xtext 2.20.0
 */
package org.contextmapper.servicecutter.dsl.services;

import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.util.List;
import org.eclipse.xtext.Action;
import org.eclipse.xtext.Alternatives;
import org.eclipse.xtext.Assignment;
import org.eclipse.xtext.Grammar;
import org.eclipse.xtext.GrammarUtil;
import org.eclipse.xtext.Group;
import org.eclipse.xtext.Keyword;
import org.eclipse.xtext.ParserRule;
import org.eclipse.xtext.RuleCall;
import org.eclipse.xtext.TerminalRule;
import org.eclipse.xtext.UnorderedGroup;
import org.eclipse.xtext.common.services.TerminalsGrammarAccess;
import org.eclipse.xtext.service.AbstractElementFinder.AbstractGrammarElementFinder;
import org.eclipse.xtext.service.GrammarProvider;

@Singleton
public class ServiceCutterConfigurationDSLGrammarAccess extends AbstractGrammarElementFinder {
	
	public class ServiceCutterUserRepresentationsModelElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.ServiceCutterUserRepresentationsModel");
		private final UnorderedGroup cUnorderedGroup = (UnorderedGroup)rule.eContents().get(1);
		private final Assignment cUseCasesAssignment_0 = (Assignment)cUnorderedGroup.eContents().get(0);
		private final RuleCall cUseCasesUseCaseParserRuleCall_0_0 = (RuleCall)cUseCasesAssignment_0.eContents().get(0);
		private final Assignment cCompatibilitiesAssignment_1 = (Assignment)cUnorderedGroup.eContents().get(1);
		private final RuleCall cCompatibilitiesCompatibilitiesParserRuleCall_1_0 = (RuleCall)cCompatibilitiesAssignment_1.eContents().get(0);
		private final Assignment cAggregatesAssignment_2 = (Assignment)cUnorderedGroup.eContents().get(2);
		private final RuleCall cAggregatesAggregateParserRuleCall_2_0 = (RuleCall)cAggregatesAssignment_2.eContents().get(0);
		private final Assignment cEntitiesAssignment_3 = (Assignment)cUnorderedGroup.eContents().get(3);
		private final RuleCall cEntitiesEntityParserRuleCall_3_0 = (RuleCall)cEntitiesAssignment_3.eContents().get(0);
		private final Assignment cPredefinedServicesAssignment_4 = (Assignment)cUnorderedGroup.eContents().get(4);
		private final RuleCall cPredefinedServicesPredefinedServiceParserRuleCall_4_0 = (RuleCall)cPredefinedServicesAssignment_4.eContents().get(0);
		private final Assignment cSecurityAccessGroupsAssignment_5 = (Assignment)cUnorderedGroup.eContents().get(5);
		private final RuleCall cSecurityAccessGroupsSecurityAccessGroupParserRuleCall_5_0 = (RuleCall)cSecurityAccessGroupsAssignment_5.eContents().get(0);
		private final Assignment cSeparatedSecurityZonesAssignment_6 = (Assignment)cUnorderedGroup.eContents().get(6);
		private final RuleCall cSeparatedSecurityZonesSeparatedSecurityZoneParserRuleCall_6_0 = (RuleCall)cSeparatedSecurityZonesAssignment_6.eContents().get(0);
		private final Assignment cSharedOwnerGroupsAssignment_7 = (Assignment)cUnorderedGroup.eContents().get(7);
		private final RuleCall cSharedOwnerGroupsSharedOwnerGroupParserRuleCall_7_0 = (RuleCall)cSharedOwnerGroupsAssignment_7.eContents().get(0);
		
		//ServiceCutterUserRepresentationsModel:
		//	useCases+=UseCase* & compatibilities=Compatibilities? & aggregates+=Aggregate* & entities+=Entity* &
		//	predefinedServices+=PredefinedService* & securityAccessGroups+=SecurityAccessGroup* &
		//	separatedSecurityZones+=SeparatedSecurityZone* & sharedOwnerGroups+=SharedOwnerGroup*;
		@Override public ParserRule getRule() { return rule; }
		
		//useCases+=UseCase* & compatibilities=Compatibilities? & aggregates+=Aggregate* & entities+=Entity* &
		//predefinedServices+=PredefinedService* & securityAccessGroups+=SecurityAccessGroup* &
		//separatedSecurityZones+=SeparatedSecurityZone* & sharedOwnerGroups+=SharedOwnerGroup*
		public UnorderedGroup getUnorderedGroup() { return cUnorderedGroup; }
		
		//useCases+=UseCase*
		public Assignment getUseCasesAssignment_0() { return cUseCasesAssignment_0; }
		
		//UseCase
		public RuleCall getUseCasesUseCaseParserRuleCall_0_0() { return cUseCasesUseCaseParserRuleCall_0_0; }
		
		//compatibilities=Compatibilities?
		public Assignment getCompatibilitiesAssignment_1() { return cCompatibilitiesAssignment_1; }
		
		//Compatibilities
		public RuleCall getCompatibilitiesCompatibilitiesParserRuleCall_1_0() { return cCompatibilitiesCompatibilitiesParserRuleCall_1_0; }
		
		//aggregates+=Aggregate*
		public Assignment getAggregatesAssignment_2() { return cAggregatesAssignment_2; }
		
		//Aggregate
		public RuleCall getAggregatesAggregateParserRuleCall_2_0() { return cAggregatesAggregateParserRuleCall_2_0; }
		
		//entities+=Entity*
		public Assignment getEntitiesAssignment_3() { return cEntitiesAssignment_3; }
		
		//Entity
		public RuleCall getEntitiesEntityParserRuleCall_3_0() { return cEntitiesEntityParserRuleCall_3_0; }
		
		//predefinedServices+=PredefinedService*
		public Assignment getPredefinedServicesAssignment_4() { return cPredefinedServicesAssignment_4; }
		
		//PredefinedService
		public RuleCall getPredefinedServicesPredefinedServiceParserRuleCall_4_0() { return cPredefinedServicesPredefinedServiceParserRuleCall_4_0; }
		
		//securityAccessGroups+=SecurityAccessGroup*
		public Assignment getSecurityAccessGroupsAssignment_5() { return cSecurityAccessGroupsAssignment_5; }
		
		//SecurityAccessGroup
		public RuleCall getSecurityAccessGroupsSecurityAccessGroupParserRuleCall_5_0() { return cSecurityAccessGroupsSecurityAccessGroupParserRuleCall_5_0; }
		
		//separatedSecurityZones+=SeparatedSecurityZone*
		public Assignment getSeparatedSecurityZonesAssignment_6() { return cSeparatedSecurityZonesAssignment_6; }
		
		//SeparatedSecurityZone
		public RuleCall getSeparatedSecurityZonesSeparatedSecurityZoneParserRuleCall_6_0() { return cSeparatedSecurityZonesSeparatedSecurityZoneParserRuleCall_6_0; }
		
		//sharedOwnerGroups+=SharedOwnerGroup*
		public Assignment getSharedOwnerGroupsAssignment_7() { return cSharedOwnerGroupsAssignment_7; }
		
		//SharedOwnerGroup
		public RuleCall getSharedOwnerGroupsSharedOwnerGroupParserRuleCall_7_0() { return cSharedOwnerGroupsSharedOwnerGroupParserRuleCall_7_0; }
	}
	public class UseCaseElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.UseCase");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cUseCaseKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final RuleCall cOPENTerminalRuleCall_3_0 = (RuleCall)cGroup_3.eContents().get(0);
		private final UnorderedGroup cUnorderedGroup_3_1 = (UnorderedGroup)cGroup_3.eContents().get(1);
		private final Group cGroup_3_1_0 = (Group)cUnorderedGroup_3_1.eContents().get(0);
		private final Keyword cIsLatencyCriticalKeyword_3_1_0_0 = (Keyword)cGroup_3_1_0.eContents().get(0);
		private final Keyword cEqualsSignKeyword_3_1_0_1 = (Keyword)cGroup_3_1_0.eContents().get(1);
		private final Assignment cIsLatencyCriticalAssignment_3_1_0_2 = (Assignment)cGroup_3_1_0.eContents().get(2);
		private final Keyword cIsLatencyCriticalTrueKeyword_3_1_0_2_0 = (Keyword)cIsLatencyCriticalAssignment_3_1_0_2.eContents().get(0);
		private final Group cGroup_3_1_1 = (Group)cUnorderedGroup_3_1.eContents().get(1);
		private final Group cGroup_3_1_1_0 = (Group)cGroup_3_1_1.eContents().get(0);
		private final Keyword cReadsKeyword_3_1_1_0_0 = (Keyword)cGroup_3_1_1_0.eContents().get(0);
		private final Assignment cNanoentitiesReadAssignment_3_1_1_0_1 = (Assignment)cGroup_3_1_1_0.eContents().get(1);
		private final RuleCall cNanoentitiesReadSTRINGTerminalRuleCall_3_1_1_0_1_0 = (RuleCall)cNanoentitiesReadAssignment_3_1_1_0_1.eContents().get(0);
		private final Group cGroup_3_1_1_1 = (Group)cGroup_3_1_1.eContents().get(1);
		private final Keyword cCommaKeyword_3_1_1_1_0 = (Keyword)cGroup_3_1_1_1.eContents().get(0);
		private final Assignment cNanoentitiesReadAssignment_3_1_1_1_1 = (Assignment)cGroup_3_1_1_1.eContents().get(1);
		private final RuleCall cNanoentitiesReadSTRINGTerminalRuleCall_3_1_1_1_1_0 = (RuleCall)cNanoentitiesReadAssignment_3_1_1_1_1.eContents().get(0);
		private final Group cGroup_3_1_2 = (Group)cUnorderedGroup_3_1.eContents().get(2);
		private final Group cGroup_3_1_2_0 = (Group)cGroup_3_1_2.eContents().get(0);
		private final Keyword cWritesKeyword_3_1_2_0_0 = (Keyword)cGroup_3_1_2_0.eContents().get(0);
		private final Assignment cNanoentitiesWrittenAssignment_3_1_2_0_1 = (Assignment)cGroup_3_1_2_0.eContents().get(1);
		private final RuleCall cNanoentitiesWrittenSTRINGTerminalRuleCall_3_1_2_0_1_0 = (RuleCall)cNanoentitiesWrittenAssignment_3_1_2_0_1.eContents().get(0);
		private final Group cGroup_3_1_2_1 = (Group)cGroup_3_1_2.eContents().get(1);
		private final Keyword cCommaKeyword_3_1_2_1_0 = (Keyword)cGroup_3_1_2_1.eContents().get(0);
		private final Assignment cNanoentitiesWrittenAssignment_3_1_2_1_1 = (Assignment)cGroup_3_1_2_1.eContents().get(1);
		private final RuleCall cNanoentitiesWrittenSTRINGTerminalRuleCall_3_1_2_1_1_0 = (RuleCall)cNanoentitiesWrittenAssignment_3_1_2_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_3_2 = (RuleCall)cGroup_3.eContents().get(2);
		
		//UseCase:
		//	doc=ML_COMMENT?
		//	'UseCase' name=ID (OPEN (('isLatencyCritical' '=' isLatencyCritical?='true')? & (('reads' nanoentitiesRead+=STRING*)
		//	("," nanoentitiesRead+=STRING)*)? & (('writes' nanoentitiesWritten+=STRING*) ("," nanoentitiesWritten+=STRING)*)?)
		//	CLOSE);
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'UseCase' name=ID (OPEN (('isLatencyCritical' '=' isLatencyCritical?='true')? & (('reads'
		//nanoentitiesRead+=STRING*) ("," nanoentitiesRead+=STRING)*)? & (('writes' nanoentitiesWritten+=STRING*) (","
		//nanoentitiesWritten+=STRING)*)?) CLOSE)
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'UseCase'
		public Keyword getUseCaseKeyword_1() { return cUseCaseKeyword_1; }
		
		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
		
		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
		
		//(OPEN (('isLatencyCritical' '=' isLatencyCritical?='true')? & (('reads' nanoentitiesRead+=STRING*) (","
		//nanoentitiesRead+=STRING)*)? & (('writes' nanoentitiesWritten+=STRING*) ("," nanoentitiesWritten+=STRING)*)?) CLOSE)
		public Group getGroup_3() { return cGroup_3; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_3_0() { return cOPENTerminalRuleCall_3_0; }
		
		//(('isLatencyCritical' '=' isLatencyCritical?='true')? & (('reads' nanoentitiesRead+=STRING*) (","
		//nanoentitiesRead+=STRING)*)? & (('writes' nanoentitiesWritten+=STRING*) ("," nanoentitiesWritten+=STRING)*)?)
		public UnorderedGroup getUnorderedGroup_3_1() { return cUnorderedGroup_3_1; }
		
		//('isLatencyCritical' '=' isLatencyCritical?='true')?
		public Group getGroup_3_1_0() { return cGroup_3_1_0; }
		
		//'isLatencyCritical'
		public Keyword getIsLatencyCriticalKeyword_3_1_0_0() { return cIsLatencyCriticalKeyword_3_1_0_0; }
		
		//'='
		public Keyword getEqualsSignKeyword_3_1_0_1() { return cEqualsSignKeyword_3_1_0_1; }
		
		//isLatencyCritical?='true'
		public Assignment getIsLatencyCriticalAssignment_3_1_0_2() { return cIsLatencyCriticalAssignment_3_1_0_2; }
		
		//'true'
		public Keyword getIsLatencyCriticalTrueKeyword_3_1_0_2_0() { return cIsLatencyCriticalTrueKeyword_3_1_0_2_0; }
		
		//(('reads' nanoentitiesRead+=STRING*) ("," nanoentitiesRead+=STRING)*)?
		public Group getGroup_3_1_1() { return cGroup_3_1_1; }
		
		//('reads' nanoentitiesRead+=STRING*)
		public Group getGroup_3_1_1_0() { return cGroup_3_1_1_0; }
		
		//'reads'
		public Keyword getReadsKeyword_3_1_1_0_0() { return cReadsKeyword_3_1_1_0_0; }
		
		//nanoentitiesRead+=STRING*
		public Assignment getNanoentitiesReadAssignment_3_1_1_0_1() { return cNanoentitiesReadAssignment_3_1_1_0_1; }
		
		//STRING
		public RuleCall getNanoentitiesReadSTRINGTerminalRuleCall_3_1_1_0_1_0() { return cNanoentitiesReadSTRINGTerminalRuleCall_3_1_1_0_1_0; }
		
		//("," nanoentitiesRead+=STRING)*
		public Group getGroup_3_1_1_1() { return cGroup_3_1_1_1; }
		
		//","
		public Keyword getCommaKeyword_3_1_1_1_0() { return cCommaKeyword_3_1_1_1_0; }
		
		//nanoentitiesRead+=STRING
		public Assignment getNanoentitiesReadAssignment_3_1_1_1_1() { return cNanoentitiesReadAssignment_3_1_1_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesReadSTRINGTerminalRuleCall_3_1_1_1_1_0() { return cNanoentitiesReadSTRINGTerminalRuleCall_3_1_1_1_1_0; }
		
		//(('writes' nanoentitiesWritten+=STRING*) ("," nanoentitiesWritten+=STRING)*)?
		public Group getGroup_3_1_2() { return cGroup_3_1_2; }
		
		//('writes' nanoentitiesWritten+=STRING*)
		public Group getGroup_3_1_2_0() { return cGroup_3_1_2_0; }
		
		//'writes'
		public Keyword getWritesKeyword_3_1_2_0_0() { return cWritesKeyword_3_1_2_0_0; }
		
		//nanoentitiesWritten+=STRING*
		public Assignment getNanoentitiesWrittenAssignment_3_1_2_0_1() { return cNanoentitiesWrittenAssignment_3_1_2_0_1; }
		
		//STRING
		public RuleCall getNanoentitiesWrittenSTRINGTerminalRuleCall_3_1_2_0_1_0() { return cNanoentitiesWrittenSTRINGTerminalRuleCall_3_1_2_0_1_0; }
		
		//("," nanoentitiesWritten+=STRING)*
		public Group getGroup_3_1_2_1() { return cGroup_3_1_2_1; }
		
		//","
		public Keyword getCommaKeyword_3_1_2_1_0() { return cCommaKeyword_3_1_2_1_0; }
		
		//nanoentitiesWritten+=STRING
		public Assignment getNanoentitiesWrittenAssignment_3_1_2_1_1() { return cNanoentitiesWrittenAssignment_3_1_2_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesWrittenSTRINGTerminalRuleCall_3_1_2_1_1_0() { return cNanoentitiesWrittenSTRINGTerminalRuleCall_3_1_2_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_3_2() { return cCLOSETerminalRuleCall_3_2; }
	}
	public class CompatibilitiesElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.Compatibilities");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCompatibilitiesAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cDocAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_1_0 = (RuleCall)cDocAssignment_1.eContents().get(0);
		private final Keyword cCompatibilitiesKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final RuleCall cOPENTerminalRuleCall_3_0 = (RuleCall)cGroup_3.eContents().get(0);
		private final Group cGroup_3_1 = (Group)cGroup_3.eContents().get(1);
		private final Assignment cAvailabilityCriticalityAssignment_3_1_0 = (Assignment)cGroup_3_1.eContents().get(0);
		private final RuleCall cAvailabilityCriticalityAvailabilityCriticalityParserRuleCall_3_1_0_0 = (RuleCall)cAvailabilityCriticalityAssignment_3_1_0.eContents().get(0);
		private final Assignment cConsistencyCriticalityAssignment_3_1_1 = (Assignment)cGroup_3_1.eContents().get(1);
		private final RuleCall cConsistencyCriticalityConsistencyCriticalityParserRuleCall_3_1_1_0 = (RuleCall)cConsistencyCriticalityAssignment_3_1_1.eContents().get(0);
		private final Assignment cContentVolatilityAssignment_3_1_2 = (Assignment)cGroup_3_1.eContents().get(2);
		private final RuleCall cContentVolatilityContentVolatilityParserRuleCall_3_1_2_0 = (RuleCall)cContentVolatilityAssignment_3_1_2.eContents().get(0);
		private final Assignment cSecurityCriticalityAssignment_3_1_3 = (Assignment)cGroup_3_1.eContents().get(3);
		private final RuleCall cSecurityCriticalitySecurityCriticalityParserRuleCall_3_1_3_0 = (RuleCall)cSecurityCriticalityAssignment_3_1_3.eContents().get(0);
		private final Assignment cStorageSimilarityAssignment_3_1_4 = (Assignment)cGroup_3_1.eContents().get(4);
		private final RuleCall cStorageSimilarityStorageSimilarityParserRuleCall_3_1_4_0 = (RuleCall)cStorageSimilarityAssignment_3_1_4.eContents().get(0);
		private final Assignment cStructuralVolatilityAssignment_3_1_5 = (Assignment)cGroup_3_1.eContents().get(5);
		private final RuleCall cStructuralVolatilityStructuralVolatilityParserRuleCall_3_1_5_0 = (RuleCall)cStructuralVolatilityAssignment_3_1_5.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_3_2 = (RuleCall)cGroup_3.eContents().get(2);
		
		//Compatibilities:
		//	{Compatibilities} doc=ML_COMMENT?
		//	'Compatibilities' (OPEN (availabilityCriticality+=AvailabilityCriticality*
		//	consistencyCriticality+=ConsistencyCriticality*
		//	contentVolatility+=ContentVolatility*
		//	securityCriticality+=SecurityCriticality*
		//	storageSimilarity+=StorageSimilarity*
		//	structuralVolatility+=StructuralVolatility*) CLOSE);
		@Override public ParserRule getRule() { return rule; }
		
		//{Compatibilities} doc=ML_COMMENT? 'Compatibilities' (OPEN (availabilityCriticality+=AvailabilityCriticality*
		//consistencyCriticality+=ConsistencyCriticality* contentVolatility+=ContentVolatility*
		//securityCriticality+=SecurityCriticality* storageSimilarity+=StorageSimilarity*
		//structuralVolatility+=StructuralVolatility*) CLOSE)
		public Group getGroup() { return cGroup; }
		
		//{Compatibilities}
		public Action getCompatibilitiesAction_0() { return cCompatibilitiesAction_0; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_1() { return cDocAssignment_1; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_1_0() { return cDocML_COMMENTTerminalRuleCall_1_0; }
		
		//'Compatibilities'
		public Keyword getCompatibilitiesKeyword_2() { return cCompatibilitiesKeyword_2; }
		
		//(OPEN (availabilityCriticality+=AvailabilityCriticality* consistencyCriticality+=ConsistencyCriticality*
		//contentVolatility+=ContentVolatility* securityCriticality+=SecurityCriticality* storageSimilarity+=StorageSimilarity*
		//structuralVolatility+=StructuralVolatility*) CLOSE)
		public Group getGroup_3() { return cGroup_3; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_3_0() { return cOPENTerminalRuleCall_3_0; }
		
		//(availabilityCriticality+=AvailabilityCriticality* consistencyCriticality+=ConsistencyCriticality*
		//contentVolatility+=ContentVolatility* securityCriticality+=SecurityCriticality* storageSimilarity+=StorageSimilarity*
		//structuralVolatility+=StructuralVolatility*)
		public Group getGroup_3_1() { return cGroup_3_1; }
		
		//availabilityCriticality+=AvailabilityCriticality*
		public Assignment getAvailabilityCriticalityAssignment_3_1_0() { return cAvailabilityCriticalityAssignment_3_1_0; }
		
		//AvailabilityCriticality
		public RuleCall getAvailabilityCriticalityAvailabilityCriticalityParserRuleCall_3_1_0_0() { return cAvailabilityCriticalityAvailabilityCriticalityParserRuleCall_3_1_0_0; }
		
		//consistencyCriticality+=ConsistencyCriticality*
		public Assignment getConsistencyCriticalityAssignment_3_1_1() { return cConsistencyCriticalityAssignment_3_1_1; }
		
		//ConsistencyCriticality
		public RuleCall getConsistencyCriticalityConsistencyCriticalityParserRuleCall_3_1_1_0() { return cConsistencyCriticalityConsistencyCriticalityParserRuleCall_3_1_1_0; }
		
		//contentVolatility+=ContentVolatility*
		public Assignment getContentVolatilityAssignment_3_1_2() { return cContentVolatilityAssignment_3_1_2; }
		
		//ContentVolatility
		public RuleCall getContentVolatilityContentVolatilityParserRuleCall_3_1_2_0() { return cContentVolatilityContentVolatilityParserRuleCall_3_1_2_0; }
		
		//securityCriticality+=SecurityCriticality*
		public Assignment getSecurityCriticalityAssignment_3_1_3() { return cSecurityCriticalityAssignment_3_1_3; }
		
		//SecurityCriticality
		public RuleCall getSecurityCriticalitySecurityCriticalityParserRuleCall_3_1_3_0() { return cSecurityCriticalitySecurityCriticalityParserRuleCall_3_1_3_0; }
		
		//storageSimilarity+=StorageSimilarity*
		public Assignment getStorageSimilarityAssignment_3_1_4() { return cStorageSimilarityAssignment_3_1_4; }
		
		//StorageSimilarity
		public RuleCall getStorageSimilarityStorageSimilarityParserRuleCall_3_1_4_0() { return cStorageSimilarityStorageSimilarityParserRuleCall_3_1_4_0; }
		
		//structuralVolatility+=StructuralVolatility*
		public Assignment getStructuralVolatilityAssignment_3_1_5() { return cStructuralVolatilityAssignment_3_1_5; }
		
		//StructuralVolatility
		public RuleCall getStructuralVolatilityStructuralVolatilityParserRuleCall_3_1_5_0() { return cStructuralVolatilityStructuralVolatilityParserRuleCall_3_1_5_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_3_2() { return cCLOSETerminalRuleCall_3_2; }
	}
	public class CharacteristicElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.Characteristic");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cAvailabilityCriticalityParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cConsistencyCriticalityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cContentVolatilityParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cSecurityCriticalityParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cStorageSimilarityParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cStructuralVolatilityParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		
		//Characteristic:
		//	AvailabilityCriticality | ConsistencyCriticality | ContentVolatility | SecurityCriticality | StorageSimilarity |
		//	StructuralVolatility;
		@Override public ParserRule getRule() { return rule; }
		
		//AvailabilityCriticality | ConsistencyCriticality | ContentVolatility | SecurityCriticality | StorageSimilarity |
		//StructuralVolatility
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//AvailabilityCriticality
		public RuleCall getAvailabilityCriticalityParserRuleCall_0() { return cAvailabilityCriticalityParserRuleCall_0; }
		
		//ConsistencyCriticality
		public RuleCall getConsistencyCriticalityParserRuleCall_1() { return cConsistencyCriticalityParserRuleCall_1; }
		
		//ContentVolatility
		public RuleCall getContentVolatilityParserRuleCall_2() { return cContentVolatilityParserRuleCall_2; }
		
		//SecurityCriticality
		public RuleCall getSecurityCriticalityParserRuleCall_3() { return cSecurityCriticalityParserRuleCall_3; }
		
		//StorageSimilarity
		public RuleCall getStorageSimilarityParserRuleCall_4() { return cStorageSimilarityParserRuleCall_4; }
		
		//StructuralVolatility
		public RuleCall getStructuralVolatilityParserRuleCall_5() { return cStructuralVolatilityParserRuleCall_5; }
	}
	public class AvailabilityCriticalityElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.AvailabilityCriticality");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cAvailabilityCriticalityKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final RuleCall cOPENTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Group cGroup_3_0 = (Group)cGroup_3.eContents().get(0);
		private final Keyword cCharacteristicKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
		private final Assignment cCharacteristicAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
		private final RuleCall cCharacteristicIDTerminalRuleCall_3_0_1_0 = (RuleCall)cCharacteristicAssignment_3_0_1.eContents().get(0);
		private final Assignment cCharacteristicDocAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0 = (RuleCall)cCharacteristicDocAssignment_3_1.eContents().get(0);
		private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
		private final Assignment cNanoentitiesAssignment_3_2_0 = (Assignment)cGroup_3_2.eContents().get(0);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_3_2_0_0 = (RuleCall)cNanoentitiesAssignment_3_2_0.eContents().get(0);
		private final Group cGroup_3_2_1 = (Group)cGroup_3_2.eContents().get(1);
		private final Keyword cCommaKeyword_3_2_1_0 = (Keyword)cGroup_3_2_1.eContents().get(0);
		private final Assignment cNanoentitiesAssignment_3_2_1_1 = (Assignment)cGroup_3_2_1.eContents().get(1);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0 = (RuleCall)cNanoentitiesAssignment_3_2_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
		
		//AvailabilityCriticality:
		//	doc=ML_COMMENT?
		//	'AvailabilityCriticality'
		//	OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING (","
		//	nanoentities+=STRING)*)?) CLOSE;
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'AvailabilityCriticality' OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT?
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?) CLOSE
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'AvailabilityCriticality'
		public Keyword getAvailabilityCriticalityKeyword_1() { return cAvailabilityCriticalityKeyword_1; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_2() { return cOPENTerminalRuleCall_2; }
		
		//(('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING ("," nanoentities+=STRING)*)?)
		public Group getGroup_3() { return cGroup_3; }
		
		//('characteristic' characteristic=ID)
		public Group getGroup_3_0() { return cGroup_3_0; }
		
		//'characteristic'
		public Keyword getCharacteristicKeyword_3_0_0() { return cCharacteristicKeyword_3_0_0; }
		
		//characteristic=ID
		public Assignment getCharacteristicAssignment_3_0_1() { return cCharacteristicAssignment_3_0_1; }
		
		//ID
		public RuleCall getCharacteristicIDTerminalRuleCall_3_0_1_0() { return cCharacteristicIDTerminalRuleCall_3_0_1_0; }
		
		//characteristicDoc=SL_COMMENT?
		public Assignment getCharacteristicDocAssignment_3_1() { return cCharacteristicDocAssignment_3_1; }
		
		//SL_COMMENT
		public RuleCall getCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0() { return cCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0; }
		
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?
		public Group getGroup_3_2() { return cGroup_3_2; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_3_2_0() { return cNanoentitiesAssignment_3_2_0; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_3_2_0_0() { return cNanoentitiesSTRINGTerminalRuleCall_3_2_0_0; }
		
		//("," nanoentities+=STRING)*
		public Group getGroup_3_2_1() { return cGroup_3_2_1; }
		
		//","
		public Keyword getCommaKeyword_3_2_1_0() { return cCommaKeyword_3_2_1_0; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_3_2_1_1() { return cNanoentitiesAssignment_3_2_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0() { return cNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_4() { return cCLOSETerminalRuleCall_4; }
	}
	public class ConsistencyCriticalityElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.ConsistencyCriticality");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cConsistencyCriticalityKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final RuleCall cOPENTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Group cGroup_3_0 = (Group)cGroup_3.eContents().get(0);
		private final Keyword cCharacteristicKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
		private final Assignment cCharacteristicAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
		private final RuleCall cCharacteristicIDTerminalRuleCall_3_0_1_0 = (RuleCall)cCharacteristicAssignment_3_0_1.eContents().get(0);
		private final Assignment cCharacteristicDocAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0 = (RuleCall)cCharacteristicDocAssignment_3_1.eContents().get(0);
		private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
		private final Assignment cNanoentitiesAssignment_3_2_0 = (Assignment)cGroup_3_2.eContents().get(0);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_3_2_0_0 = (RuleCall)cNanoentitiesAssignment_3_2_0.eContents().get(0);
		private final Group cGroup_3_2_1 = (Group)cGroup_3_2.eContents().get(1);
		private final Keyword cCommaKeyword_3_2_1_0 = (Keyword)cGroup_3_2_1.eContents().get(0);
		private final Assignment cNanoentitiesAssignment_3_2_1_1 = (Assignment)cGroup_3_2_1.eContents().get(1);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0 = (RuleCall)cNanoentitiesAssignment_3_2_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
		
		//ConsistencyCriticality:
		//	doc=ML_COMMENT?
		//	'ConsistencyCriticality'
		//	OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING (","
		//	nanoentities+=STRING)*)?) CLOSE;
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'ConsistencyCriticality' OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT?
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?) CLOSE
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'ConsistencyCriticality'
		public Keyword getConsistencyCriticalityKeyword_1() { return cConsistencyCriticalityKeyword_1; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_2() { return cOPENTerminalRuleCall_2; }
		
		//(('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING ("," nanoentities+=STRING)*)?)
		public Group getGroup_3() { return cGroup_3; }
		
		//('characteristic' characteristic=ID)
		public Group getGroup_3_0() { return cGroup_3_0; }
		
		//'characteristic'
		public Keyword getCharacteristicKeyword_3_0_0() { return cCharacteristicKeyword_3_0_0; }
		
		//characteristic=ID
		public Assignment getCharacteristicAssignment_3_0_1() { return cCharacteristicAssignment_3_0_1; }
		
		//ID
		public RuleCall getCharacteristicIDTerminalRuleCall_3_0_1_0() { return cCharacteristicIDTerminalRuleCall_3_0_1_0; }
		
		//characteristicDoc=SL_COMMENT?
		public Assignment getCharacteristicDocAssignment_3_1() { return cCharacteristicDocAssignment_3_1; }
		
		//SL_COMMENT
		public RuleCall getCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0() { return cCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0; }
		
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?
		public Group getGroup_3_2() { return cGroup_3_2; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_3_2_0() { return cNanoentitiesAssignment_3_2_0; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_3_2_0_0() { return cNanoentitiesSTRINGTerminalRuleCall_3_2_0_0; }
		
		//("," nanoentities+=STRING)*
		public Group getGroup_3_2_1() { return cGroup_3_2_1; }
		
		//","
		public Keyword getCommaKeyword_3_2_1_0() { return cCommaKeyword_3_2_1_0; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_3_2_1_1() { return cNanoentitiesAssignment_3_2_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0() { return cNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_4() { return cCLOSETerminalRuleCall_4; }
	}
	public class ContentVolatilityElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.ContentVolatility");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cContentVolatilityKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final RuleCall cOPENTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Group cGroup_3_0 = (Group)cGroup_3.eContents().get(0);
		private final Keyword cCharacteristicKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
		private final Assignment cCharacteristicAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
		private final RuleCall cCharacteristicIDTerminalRuleCall_3_0_1_0 = (RuleCall)cCharacteristicAssignment_3_0_1.eContents().get(0);
		private final Assignment cCharacteristicDocAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0 = (RuleCall)cCharacteristicDocAssignment_3_1.eContents().get(0);
		private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
		private final Assignment cNanoentitiesAssignment_3_2_0 = (Assignment)cGroup_3_2.eContents().get(0);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_3_2_0_0 = (RuleCall)cNanoentitiesAssignment_3_2_0.eContents().get(0);
		private final Group cGroup_3_2_1 = (Group)cGroup_3_2.eContents().get(1);
		private final Keyword cCommaKeyword_3_2_1_0 = (Keyword)cGroup_3_2_1.eContents().get(0);
		private final Assignment cNanoentitiesAssignment_3_2_1_1 = (Assignment)cGroup_3_2_1.eContents().get(1);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0 = (RuleCall)cNanoentitiesAssignment_3_2_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
		
		//ContentVolatility:
		//	doc=ML_COMMENT?
		//	'ContentVolatility'
		//	OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING (","
		//	nanoentities+=STRING)*)?) CLOSE;
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'ContentVolatility' OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT?
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?) CLOSE
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'ContentVolatility'
		public Keyword getContentVolatilityKeyword_1() { return cContentVolatilityKeyword_1; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_2() { return cOPENTerminalRuleCall_2; }
		
		//(('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING ("," nanoentities+=STRING)*)?)
		public Group getGroup_3() { return cGroup_3; }
		
		//('characteristic' characteristic=ID)
		public Group getGroup_3_0() { return cGroup_3_0; }
		
		//'characteristic'
		public Keyword getCharacteristicKeyword_3_0_0() { return cCharacteristicKeyword_3_0_0; }
		
		//characteristic=ID
		public Assignment getCharacteristicAssignment_3_0_1() { return cCharacteristicAssignment_3_0_1; }
		
		//ID
		public RuleCall getCharacteristicIDTerminalRuleCall_3_0_1_0() { return cCharacteristicIDTerminalRuleCall_3_0_1_0; }
		
		//characteristicDoc=SL_COMMENT?
		public Assignment getCharacteristicDocAssignment_3_1() { return cCharacteristicDocAssignment_3_1; }
		
		//SL_COMMENT
		public RuleCall getCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0() { return cCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0; }
		
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?
		public Group getGroup_3_2() { return cGroup_3_2; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_3_2_0() { return cNanoentitiesAssignment_3_2_0; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_3_2_0_0() { return cNanoentitiesSTRINGTerminalRuleCall_3_2_0_0; }
		
		//("," nanoentities+=STRING)*
		public Group getGroup_3_2_1() { return cGroup_3_2_1; }
		
		//","
		public Keyword getCommaKeyword_3_2_1_0() { return cCommaKeyword_3_2_1_0; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_3_2_1_1() { return cNanoentitiesAssignment_3_2_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0() { return cNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_4() { return cCLOSETerminalRuleCall_4; }
	}
	public class SecurityCriticalityElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.SecurityCriticality");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cSecurityCriticalityKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final RuleCall cOPENTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Group cGroup_3_0 = (Group)cGroup_3.eContents().get(0);
		private final Keyword cCharacteristicKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
		private final Assignment cCharacteristicAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
		private final RuleCall cCharacteristicIDTerminalRuleCall_3_0_1_0 = (RuleCall)cCharacteristicAssignment_3_0_1.eContents().get(0);
		private final Assignment cCharacteristicDocAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0 = (RuleCall)cCharacteristicDocAssignment_3_1.eContents().get(0);
		private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
		private final Assignment cNanoentitiesAssignment_3_2_0 = (Assignment)cGroup_3_2.eContents().get(0);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_3_2_0_0 = (RuleCall)cNanoentitiesAssignment_3_2_0.eContents().get(0);
		private final Group cGroup_3_2_1 = (Group)cGroup_3_2.eContents().get(1);
		private final Keyword cCommaKeyword_3_2_1_0 = (Keyword)cGroup_3_2_1.eContents().get(0);
		private final Assignment cNanoentitiesAssignment_3_2_1_1 = (Assignment)cGroup_3_2_1.eContents().get(1);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0 = (RuleCall)cNanoentitiesAssignment_3_2_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
		
		//SecurityCriticality:
		//	doc=ML_COMMENT?
		//	'SecurityCriticality'
		//	OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING (","
		//	nanoentities+=STRING)*)?) CLOSE;
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'SecurityCriticality' OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT?
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?) CLOSE
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'SecurityCriticality'
		public Keyword getSecurityCriticalityKeyword_1() { return cSecurityCriticalityKeyword_1; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_2() { return cOPENTerminalRuleCall_2; }
		
		//(('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING ("," nanoentities+=STRING)*)?)
		public Group getGroup_3() { return cGroup_3; }
		
		//('characteristic' characteristic=ID)
		public Group getGroup_3_0() { return cGroup_3_0; }
		
		//'characteristic'
		public Keyword getCharacteristicKeyword_3_0_0() { return cCharacteristicKeyword_3_0_0; }
		
		//characteristic=ID
		public Assignment getCharacteristicAssignment_3_0_1() { return cCharacteristicAssignment_3_0_1; }
		
		//ID
		public RuleCall getCharacteristicIDTerminalRuleCall_3_0_1_0() { return cCharacteristicIDTerminalRuleCall_3_0_1_0; }
		
		//characteristicDoc=SL_COMMENT?
		public Assignment getCharacteristicDocAssignment_3_1() { return cCharacteristicDocAssignment_3_1; }
		
		//SL_COMMENT
		public RuleCall getCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0() { return cCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0; }
		
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?
		public Group getGroup_3_2() { return cGroup_3_2; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_3_2_0() { return cNanoentitiesAssignment_3_2_0; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_3_2_0_0() { return cNanoentitiesSTRINGTerminalRuleCall_3_2_0_0; }
		
		//("," nanoentities+=STRING)*
		public Group getGroup_3_2_1() { return cGroup_3_2_1; }
		
		//","
		public Keyword getCommaKeyword_3_2_1_0() { return cCommaKeyword_3_2_1_0; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_3_2_1_1() { return cNanoentitiesAssignment_3_2_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0() { return cNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_4() { return cCLOSETerminalRuleCall_4; }
	}
	public class StorageSimilarityElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.StorageSimilarity");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cStorageSimilarityKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final RuleCall cOPENTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Group cGroup_3_0 = (Group)cGroup_3.eContents().get(0);
		private final Keyword cCharacteristicKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
		private final Assignment cCharacteristicAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
		private final RuleCall cCharacteristicIDTerminalRuleCall_3_0_1_0 = (RuleCall)cCharacteristicAssignment_3_0_1.eContents().get(0);
		private final Assignment cCharacteristicDocAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0 = (RuleCall)cCharacteristicDocAssignment_3_1.eContents().get(0);
		private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
		private final Assignment cNanoentitiesAssignment_3_2_0 = (Assignment)cGroup_3_2.eContents().get(0);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_3_2_0_0 = (RuleCall)cNanoentitiesAssignment_3_2_0.eContents().get(0);
		private final Group cGroup_3_2_1 = (Group)cGroup_3_2.eContents().get(1);
		private final Keyword cCommaKeyword_3_2_1_0 = (Keyword)cGroup_3_2_1.eContents().get(0);
		private final Assignment cNanoentitiesAssignment_3_2_1_1 = (Assignment)cGroup_3_2_1.eContents().get(1);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0 = (RuleCall)cNanoentitiesAssignment_3_2_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
		
		//StorageSimilarity:
		//	doc=ML_COMMENT?
		//	'StorageSimilarity'
		//	OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING (","
		//	nanoentities+=STRING)*)?) CLOSE;
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'StorageSimilarity' OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT?
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?) CLOSE
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'StorageSimilarity'
		public Keyword getStorageSimilarityKeyword_1() { return cStorageSimilarityKeyword_1; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_2() { return cOPENTerminalRuleCall_2; }
		
		//(('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING ("," nanoentities+=STRING)*)?)
		public Group getGroup_3() { return cGroup_3; }
		
		//('characteristic' characteristic=ID)
		public Group getGroup_3_0() { return cGroup_3_0; }
		
		//'characteristic'
		public Keyword getCharacteristicKeyword_3_0_0() { return cCharacteristicKeyword_3_0_0; }
		
		//characteristic=ID
		public Assignment getCharacteristicAssignment_3_0_1() { return cCharacteristicAssignment_3_0_1; }
		
		//ID
		public RuleCall getCharacteristicIDTerminalRuleCall_3_0_1_0() { return cCharacteristicIDTerminalRuleCall_3_0_1_0; }
		
		//characteristicDoc=SL_COMMENT?
		public Assignment getCharacteristicDocAssignment_3_1() { return cCharacteristicDocAssignment_3_1; }
		
		//SL_COMMENT
		public RuleCall getCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0() { return cCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0; }
		
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?
		public Group getGroup_3_2() { return cGroup_3_2; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_3_2_0() { return cNanoentitiesAssignment_3_2_0; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_3_2_0_0() { return cNanoentitiesSTRINGTerminalRuleCall_3_2_0_0; }
		
		//("," nanoentities+=STRING)*
		public Group getGroup_3_2_1() { return cGroup_3_2_1; }
		
		//","
		public Keyword getCommaKeyword_3_2_1_0() { return cCommaKeyword_3_2_1_0; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_3_2_1_1() { return cNanoentitiesAssignment_3_2_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0() { return cNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_4() { return cCLOSETerminalRuleCall_4; }
	}
	public class StructuralVolatilityElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.StructuralVolatility");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cStructuralVolatilityKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final RuleCall cOPENTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Group cGroup_3_0 = (Group)cGroup_3.eContents().get(0);
		private final Keyword cCharacteristicKeyword_3_0_0 = (Keyword)cGroup_3_0.eContents().get(0);
		private final Assignment cCharacteristicAssignment_3_0_1 = (Assignment)cGroup_3_0.eContents().get(1);
		private final RuleCall cCharacteristicIDTerminalRuleCall_3_0_1_0 = (RuleCall)cCharacteristicAssignment_3_0_1.eContents().get(0);
		private final Assignment cCharacteristicDocAssignment_3_1 = (Assignment)cGroup_3.eContents().get(1);
		private final RuleCall cCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0 = (RuleCall)cCharacteristicDocAssignment_3_1.eContents().get(0);
		private final Group cGroup_3_2 = (Group)cGroup_3.eContents().get(2);
		private final Assignment cNanoentitiesAssignment_3_2_0 = (Assignment)cGroup_3_2.eContents().get(0);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_3_2_0_0 = (RuleCall)cNanoentitiesAssignment_3_2_0.eContents().get(0);
		private final Group cGroup_3_2_1 = (Group)cGroup_3_2.eContents().get(1);
		private final Keyword cCommaKeyword_3_2_1_0 = (Keyword)cGroup_3_2_1.eContents().get(0);
		private final Assignment cNanoentitiesAssignment_3_2_1_1 = (Assignment)cGroup_3_2_1.eContents().get(1);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0 = (RuleCall)cNanoentitiesAssignment_3_2_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_4 = (RuleCall)cGroup.eContents().get(4);
		
		//StructuralVolatility:
		//	doc=ML_COMMENT?
		//	'StructuralVolatility'
		//	OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING (","
		//	nanoentities+=STRING)*)?) CLOSE;
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'StructuralVolatility' OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT?
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?) CLOSE
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'StructuralVolatility'
		public Keyword getStructuralVolatilityKeyword_1() { return cStructuralVolatilityKeyword_1; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_2() { return cOPENTerminalRuleCall_2; }
		
		//(('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING ("," nanoentities+=STRING)*)?)
		public Group getGroup_3() { return cGroup_3; }
		
		//('characteristic' characteristic=ID)
		public Group getGroup_3_0() { return cGroup_3_0; }
		
		//'characteristic'
		public Keyword getCharacteristicKeyword_3_0_0() { return cCharacteristicKeyword_3_0_0; }
		
		//characteristic=ID
		public Assignment getCharacteristicAssignment_3_0_1() { return cCharacteristicAssignment_3_0_1; }
		
		//ID
		public RuleCall getCharacteristicIDTerminalRuleCall_3_0_1_0() { return cCharacteristicIDTerminalRuleCall_3_0_1_0; }
		
		//characteristicDoc=SL_COMMENT?
		public Assignment getCharacteristicDocAssignment_3_1() { return cCharacteristicDocAssignment_3_1; }
		
		//SL_COMMENT
		public RuleCall getCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0() { return cCharacteristicDocSL_COMMENTTerminalRuleCall_3_1_0; }
		
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?
		public Group getGroup_3_2() { return cGroup_3_2; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_3_2_0() { return cNanoentitiesAssignment_3_2_0; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_3_2_0_0() { return cNanoentitiesSTRINGTerminalRuleCall_3_2_0_0; }
		
		//("," nanoentities+=STRING)*
		public Group getGroup_3_2_1() { return cGroup_3_2_1; }
		
		//","
		public Keyword getCommaKeyword_3_2_1_0() { return cCommaKeyword_3_2_1_0; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_3_2_1_1() { return cNanoentitiesAssignment_3_2_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0() { return cNanoentitiesSTRINGTerminalRuleCall_3_2_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_4() { return cCLOSETerminalRuleCall_4; }
	}
	public class RelatedGroupElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.RelatedGroup");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cAggregateParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cEntityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cPredefinedServiceParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cSecurityAccessGroupParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cSeparatedSecurityZoneParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cSharedOwnerGroupParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		
		//RelatedGroup:
		//	Aggregate | Entity | PredefinedService | SecurityAccessGroup | SeparatedSecurityZone | SharedOwnerGroup;
		@Override public ParserRule getRule() { return rule; }
		
		//Aggregate | Entity | PredefinedService | SecurityAccessGroup | SeparatedSecurityZone | SharedOwnerGroup
		public Alternatives getAlternatives() { return cAlternatives; }
		
		//Aggregate
		public RuleCall getAggregateParserRuleCall_0() { return cAggregateParserRuleCall_0; }
		
		//Entity
		public RuleCall getEntityParserRuleCall_1() { return cEntityParserRuleCall_1; }
		
		//PredefinedService
		public RuleCall getPredefinedServiceParserRuleCall_2() { return cPredefinedServiceParserRuleCall_2; }
		
		//SecurityAccessGroup
		public RuleCall getSecurityAccessGroupParserRuleCall_3() { return cSecurityAccessGroupParserRuleCall_3; }
		
		//SeparatedSecurityZone
		public RuleCall getSeparatedSecurityZoneParserRuleCall_4() { return cSeparatedSecurityZoneParserRuleCall_4; }
		
		//SharedOwnerGroup
		public RuleCall getSharedOwnerGroupParserRuleCall_5() { return cSharedOwnerGroupParserRuleCall_5; }
	}
	public class AggregateElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.Aggregate");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cAggregateKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final RuleCall cOPENTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Assignment cNanoentitiesAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_4_0_0 = (RuleCall)cNanoentitiesAssignment_4_0.eContents().get(0);
		private final Group cGroup_4_1 = (Group)cGroup_4.eContents().get(1);
		private final Keyword cCommaKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
		private final Assignment cNanoentitiesAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_4_1_1_0 = (RuleCall)cNanoentitiesAssignment_4_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
		
		//Aggregate:
		//	doc=ML_COMMENT?
		//	'Aggregate' name=ID
		//	OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE;
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'Aggregate' name=ID OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'Aggregate'
		public Keyword getAggregateKeyword_1() { return cAggregateKeyword_1; }
		
		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
		
		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_3() { return cOPENTerminalRuleCall_3; }
		
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?
		public Group getGroup_4() { return cGroup_4; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_4_0() { return cNanoentitiesAssignment_4_0; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_4_0_0() { return cNanoentitiesSTRINGTerminalRuleCall_4_0_0; }
		
		//("," nanoentities+=STRING)*
		public Group getGroup_4_1() { return cGroup_4_1; }
		
		//","
		public Keyword getCommaKeyword_4_1_0() { return cCommaKeyword_4_1_0; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_4_1_1() { return cNanoentitiesAssignment_4_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_4_1_1_0() { return cNanoentitiesSTRINGTerminalRuleCall_4_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_5() { return cCLOSETerminalRuleCall_5; }
	}
	public class EntityElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.Entity");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cEntityKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final RuleCall cOPENTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Assignment cNanoentitiesAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_4_0_0 = (RuleCall)cNanoentitiesAssignment_4_0.eContents().get(0);
		private final Group cGroup_4_1 = (Group)cGroup_4.eContents().get(1);
		private final Keyword cCommaKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
		private final Assignment cNanoentitiesAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_4_1_1_0 = (RuleCall)cNanoentitiesAssignment_4_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
		
		//Entity:
		//	doc=ML_COMMENT?
		//	'Entity' name=ID
		//	OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE;
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'Entity' name=ID OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'Entity'
		public Keyword getEntityKeyword_1() { return cEntityKeyword_1; }
		
		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
		
		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_3() { return cOPENTerminalRuleCall_3; }
		
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?
		public Group getGroup_4() { return cGroup_4; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_4_0() { return cNanoentitiesAssignment_4_0; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_4_0_0() { return cNanoentitiesSTRINGTerminalRuleCall_4_0_0; }
		
		//("," nanoentities+=STRING)*
		public Group getGroup_4_1() { return cGroup_4_1; }
		
		//","
		public Keyword getCommaKeyword_4_1_0() { return cCommaKeyword_4_1_0; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_4_1_1() { return cNanoentitiesAssignment_4_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_4_1_1_0() { return cNanoentitiesSTRINGTerminalRuleCall_4_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_5() { return cCLOSETerminalRuleCall_5; }
	}
	public class PredefinedServiceElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.PredefinedService");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cPredefinedServiceKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final RuleCall cOPENTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Assignment cNanoentitiesAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_4_0_0 = (RuleCall)cNanoentitiesAssignment_4_0.eContents().get(0);
		private final Group cGroup_4_1 = (Group)cGroup_4.eContents().get(1);
		private final Keyword cCommaKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
		private final Assignment cNanoentitiesAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_4_1_1_0 = (RuleCall)cNanoentitiesAssignment_4_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
		
		//PredefinedService:
		//	doc=ML_COMMENT?
		//	'PredefinedService' name=ID
		//	OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE;
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'PredefinedService' name=ID OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'PredefinedService'
		public Keyword getPredefinedServiceKeyword_1() { return cPredefinedServiceKeyword_1; }
		
		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
		
		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_3() { return cOPENTerminalRuleCall_3; }
		
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?
		public Group getGroup_4() { return cGroup_4; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_4_0() { return cNanoentitiesAssignment_4_0; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_4_0_0() { return cNanoentitiesSTRINGTerminalRuleCall_4_0_0; }
		
		//("," nanoentities+=STRING)*
		public Group getGroup_4_1() { return cGroup_4_1; }
		
		//","
		public Keyword getCommaKeyword_4_1_0() { return cCommaKeyword_4_1_0; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_4_1_1() { return cNanoentitiesAssignment_4_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_4_1_1_0() { return cNanoentitiesSTRINGTerminalRuleCall_4_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_5() { return cCLOSETerminalRuleCall_5; }
	}
	public class SecurityAccessGroupElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.SecurityAccessGroup");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cSecurityAccessGroupKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final RuleCall cOPENTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Assignment cNanoentitiesAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_4_0_0 = (RuleCall)cNanoentitiesAssignment_4_0.eContents().get(0);
		private final Group cGroup_4_1 = (Group)cGroup_4.eContents().get(1);
		private final Keyword cCommaKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
		private final Assignment cNanoentitiesAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_4_1_1_0 = (RuleCall)cNanoentitiesAssignment_4_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
		
		//SecurityAccessGroup:
		//	doc=ML_COMMENT?
		//	'SecurityAccessGroup' name=ID
		//	OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)?
		//	CLOSE;
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'SecurityAccessGroup' name=ID OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'SecurityAccessGroup'
		public Keyword getSecurityAccessGroupKeyword_1() { return cSecurityAccessGroupKeyword_1; }
		
		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
		
		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_3() { return cOPENTerminalRuleCall_3; }
		
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?
		public Group getGroup_4() { return cGroup_4; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_4_0() { return cNanoentitiesAssignment_4_0; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_4_0_0() { return cNanoentitiesSTRINGTerminalRuleCall_4_0_0; }
		
		//("," nanoentities+=STRING)*
		public Group getGroup_4_1() { return cGroup_4_1; }
		
		//","
		public Keyword getCommaKeyword_4_1_0() { return cCommaKeyword_4_1_0; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_4_1_1() { return cNanoentitiesAssignment_4_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_4_1_1_0() { return cNanoentitiesSTRINGTerminalRuleCall_4_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_5() { return cCLOSETerminalRuleCall_5; }
	}
	public class SeparatedSecurityZoneElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.SeparatedSecurityZone");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cSeparatedSecurityZoneKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final RuleCall cOPENTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Assignment cNanoentitiesAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_4_0_0 = (RuleCall)cNanoentitiesAssignment_4_0.eContents().get(0);
		private final Group cGroup_4_1 = (Group)cGroup_4.eContents().get(1);
		private final Keyword cCommaKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
		private final Assignment cNanoentitiesAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_4_1_1_0 = (RuleCall)cNanoentitiesAssignment_4_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
		
		//SeparatedSecurityZone:
		//	doc=ML_COMMENT?
		//	'SeparatedSecurityZone' name=ID
		//	OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE;
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'SeparatedSecurityZone' name=ID OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'SeparatedSecurityZone'
		public Keyword getSeparatedSecurityZoneKeyword_1() { return cSeparatedSecurityZoneKeyword_1; }
		
		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
		
		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_3() { return cOPENTerminalRuleCall_3; }
		
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?
		public Group getGroup_4() { return cGroup_4; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_4_0() { return cNanoentitiesAssignment_4_0; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_4_0_0() { return cNanoentitiesSTRINGTerminalRuleCall_4_0_0; }
		
		//("," nanoentities+=STRING)*
		public Group getGroup_4_1() { return cGroup_4_1; }
		
		//","
		public Keyword getCommaKeyword_4_1_0() { return cCommaKeyword_4_1_0; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_4_1_1() { return cNanoentitiesAssignment_4_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_4_1_1_0() { return cNanoentitiesSTRINGTerminalRuleCall_4_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_5() { return cCLOSETerminalRuleCall_5; }
	}
	public class SharedOwnerGroupElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.SharedOwnerGroup");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cDocAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cDocML_COMMENTTerminalRuleCall_0_0 = (RuleCall)cDocAssignment_0.eContents().get(0);
		private final Keyword cSharedOwnerGroupKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final RuleCall cOPENTerminalRuleCall_3 = (RuleCall)cGroup.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Assignment cNanoentitiesAssignment_4_0 = (Assignment)cGroup_4.eContents().get(0);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_4_0_0 = (RuleCall)cNanoentitiesAssignment_4_0.eContents().get(0);
		private final Group cGroup_4_1 = (Group)cGroup_4.eContents().get(1);
		private final Keyword cCommaKeyword_4_1_0 = (Keyword)cGroup_4_1.eContents().get(0);
		private final Assignment cNanoentitiesAssignment_4_1_1 = (Assignment)cGroup_4_1.eContents().get(1);
		private final RuleCall cNanoentitiesSTRINGTerminalRuleCall_4_1_1_0 = (RuleCall)cNanoentitiesAssignment_4_1_1.eContents().get(0);
		private final RuleCall cCLOSETerminalRuleCall_5 = (RuleCall)cGroup.eContents().get(5);
		
		//SharedOwnerGroup:
		//	doc=ML_COMMENT?
		//	'SharedOwnerGroup' name=ID
		//	OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE;
		@Override public ParserRule getRule() { return rule; }
		
		//doc=ML_COMMENT? 'SharedOwnerGroup' name=ID OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE
		public Group getGroup() { return cGroup; }
		
		//doc=ML_COMMENT?
		public Assignment getDocAssignment_0() { return cDocAssignment_0; }
		
		//ML_COMMENT
		public RuleCall getDocML_COMMENTTerminalRuleCall_0_0() { return cDocML_COMMENTTerminalRuleCall_0_0; }
		
		//'SharedOwnerGroup'
		public Keyword getSharedOwnerGroupKeyword_1() { return cSharedOwnerGroupKeyword_1; }
		
		//name=ID
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }
		
		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }
		
		//OPEN
		public RuleCall getOPENTerminalRuleCall_3() { return cOPENTerminalRuleCall_3; }
		
		//(nanoentities+=STRING ("," nanoentities+=STRING)*)?
		public Group getGroup_4() { return cGroup_4; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_4_0() { return cNanoentitiesAssignment_4_0; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_4_0_0() { return cNanoentitiesSTRINGTerminalRuleCall_4_0_0; }
		
		//("," nanoentities+=STRING)*
		public Group getGroup_4_1() { return cGroup_4_1; }
		
		//","
		public Keyword getCommaKeyword_4_1_0() { return cCommaKeyword_4_1_0; }
		
		//nanoentities+=STRING
		public Assignment getNanoentitiesAssignment_4_1_1() { return cNanoentitiesAssignment_4_1_1; }
		
		//STRING
		public RuleCall getNanoentitiesSTRINGTerminalRuleCall_4_1_1_0() { return cNanoentitiesSTRINGTerminalRuleCall_4_1_1_0; }
		
		//CLOSE
		public RuleCall getCLOSETerminalRuleCall_5() { return cCLOSETerminalRuleCall_5; }
	}
	
	
	private final ServiceCutterUserRepresentationsModelElements pServiceCutterUserRepresentationsModel;
	private final UseCaseElements pUseCase;
	private final CompatibilitiesElements pCompatibilities;
	private final CharacteristicElements pCharacteristic;
	private final AvailabilityCriticalityElements pAvailabilityCriticality;
	private final ConsistencyCriticalityElements pConsistencyCriticality;
	private final ContentVolatilityElements pContentVolatility;
	private final SecurityCriticalityElements pSecurityCriticality;
	private final StorageSimilarityElements pStorageSimilarity;
	private final StructuralVolatilityElements pStructuralVolatility;
	private final RelatedGroupElements pRelatedGroup;
	private final AggregateElements pAggregate;
	private final EntityElements pEntity;
	private final PredefinedServiceElements pPredefinedService;
	private final SecurityAccessGroupElements pSecurityAccessGroup;
	private final SeparatedSecurityZoneElements pSeparatedSecurityZone;
	private final SharedOwnerGroupElements pSharedOwnerGroup;
	private final TerminalRule tOPEN;
	private final TerminalRule tCLOSE;
	
	private final Grammar grammar;
	
	private final TerminalsGrammarAccess gaTerminals;

	@Inject
	public ServiceCutterConfigurationDSLGrammarAccess(GrammarProvider grammarProvider,
			TerminalsGrammarAccess gaTerminals) {
		this.grammar = internalFindGrammar(grammarProvider);
		this.gaTerminals = gaTerminals;
		this.pServiceCutterUserRepresentationsModel = new ServiceCutterUserRepresentationsModelElements();
		this.pUseCase = new UseCaseElements();
		this.pCompatibilities = new CompatibilitiesElements();
		this.pCharacteristic = new CharacteristicElements();
		this.pAvailabilityCriticality = new AvailabilityCriticalityElements();
		this.pConsistencyCriticality = new ConsistencyCriticalityElements();
		this.pContentVolatility = new ContentVolatilityElements();
		this.pSecurityCriticality = new SecurityCriticalityElements();
		this.pStorageSimilarity = new StorageSimilarityElements();
		this.pStructuralVolatility = new StructuralVolatilityElements();
		this.pRelatedGroup = new RelatedGroupElements();
		this.pAggregate = new AggregateElements();
		this.pEntity = new EntityElements();
		this.pPredefinedService = new PredefinedServiceElements();
		this.pSecurityAccessGroup = new SecurityAccessGroupElements();
		this.pSeparatedSecurityZone = new SeparatedSecurityZoneElements();
		this.pSharedOwnerGroup = new SharedOwnerGroupElements();
		this.tOPEN = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.OPEN");
		this.tCLOSE = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL.CLOSE");
	}
	
	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
		Grammar grammar = grammarProvider.getGrammar(this);
		while (grammar != null) {
			if ("org.contextmapper.servicecutter.dsl.ServiceCutterConfigurationDSL".equals(grammar.getName())) {
				return grammar;
			}
			List grammars = grammar.getUsedGrammars();
			if (!grammars.isEmpty()) {
				grammar = grammars.iterator().next();
			} else {
				return null;
			}
		}
		return grammar;
	}
	
	@Override
	public Grammar getGrammar() {
		return grammar;
	}
	
	
	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
		return gaTerminals;
	}

	
	//ServiceCutterUserRepresentationsModel:
	//	useCases+=UseCase* & compatibilities=Compatibilities? & aggregates+=Aggregate* & entities+=Entity* &
	//	predefinedServices+=PredefinedService* & securityAccessGroups+=SecurityAccessGroup* &
	//	separatedSecurityZones+=SeparatedSecurityZone* & sharedOwnerGroups+=SharedOwnerGroup*;
	public ServiceCutterUserRepresentationsModelElements getServiceCutterUserRepresentationsModelAccess() {
		return pServiceCutterUserRepresentationsModel;
	}
	
	public ParserRule getServiceCutterUserRepresentationsModelRule() {
		return getServiceCutterUserRepresentationsModelAccess().getRule();
	}
	
	//UseCase:
	//	doc=ML_COMMENT?
	//	'UseCase' name=ID (OPEN (('isLatencyCritical' '=' isLatencyCritical?='true')? & (('reads' nanoentitiesRead+=STRING*)
	//	("," nanoentitiesRead+=STRING)*)? & (('writes' nanoentitiesWritten+=STRING*) ("," nanoentitiesWritten+=STRING)*)?)
	//	CLOSE);
	public UseCaseElements getUseCaseAccess() {
		return pUseCase;
	}
	
	public ParserRule getUseCaseRule() {
		return getUseCaseAccess().getRule();
	}
	
	//Compatibilities:
	//	{Compatibilities} doc=ML_COMMENT?
	//	'Compatibilities' (OPEN (availabilityCriticality+=AvailabilityCriticality*
	//	consistencyCriticality+=ConsistencyCriticality*
	//	contentVolatility+=ContentVolatility*
	//	securityCriticality+=SecurityCriticality*
	//	storageSimilarity+=StorageSimilarity*
	//	structuralVolatility+=StructuralVolatility*) CLOSE);
	public CompatibilitiesElements getCompatibilitiesAccess() {
		return pCompatibilities;
	}
	
	public ParserRule getCompatibilitiesRule() {
		return getCompatibilitiesAccess().getRule();
	}
	
	//Characteristic:
	//	AvailabilityCriticality | ConsistencyCriticality | ContentVolatility | SecurityCriticality | StorageSimilarity |
	//	StructuralVolatility;
	public CharacteristicElements getCharacteristicAccess() {
		return pCharacteristic;
	}
	
	public ParserRule getCharacteristicRule() {
		return getCharacteristicAccess().getRule();
	}
	
	//AvailabilityCriticality:
	//	doc=ML_COMMENT?
	//	'AvailabilityCriticality'
	//	OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING (","
	//	nanoentities+=STRING)*)?) CLOSE;
	public AvailabilityCriticalityElements getAvailabilityCriticalityAccess() {
		return pAvailabilityCriticality;
	}
	
	public ParserRule getAvailabilityCriticalityRule() {
		return getAvailabilityCriticalityAccess().getRule();
	}
	
	//ConsistencyCriticality:
	//	doc=ML_COMMENT?
	//	'ConsistencyCriticality'
	//	OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING (","
	//	nanoentities+=STRING)*)?) CLOSE;
	public ConsistencyCriticalityElements getConsistencyCriticalityAccess() {
		return pConsistencyCriticality;
	}
	
	public ParserRule getConsistencyCriticalityRule() {
		return getConsistencyCriticalityAccess().getRule();
	}
	
	//ContentVolatility:
	//	doc=ML_COMMENT?
	//	'ContentVolatility'
	//	OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING (","
	//	nanoentities+=STRING)*)?) CLOSE;
	public ContentVolatilityElements getContentVolatilityAccess() {
		return pContentVolatility;
	}
	
	public ParserRule getContentVolatilityRule() {
		return getContentVolatilityAccess().getRule();
	}
	
	//SecurityCriticality:
	//	doc=ML_COMMENT?
	//	'SecurityCriticality'
	//	OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING (","
	//	nanoentities+=STRING)*)?) CLOSE;
	public SecurityCriticalityElements getSecurityCriticalityAccess() {
		return pSecurityCriticality;
	}
	
	public ParserRule getSecurityCriticalityRule() {
		return getSecurityCriticalityAccess().getRule();
	}
	
	//StorageSimilarity:
	//	doc=ML_COMMENT?
	//	'StorageSimilarity'
	//	OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING (","
	//	nanoentities+=STRING)*)?) CLOSE;
	public StorageSimilarityElements getStorageSimilarityAccess() {
		return pStorageSimilarity;
	}
	
	public ParserRule getStorageSimilarityRule() {
		return getStorageSimilarityAccess().getRule();
	}
	
	//StructuralVolatility:
	//	doc=ML_COMMENT?
	//	'StructuralVolatility'
	//	OPEN (('characteristic' characteristic=ID) characteristicDoc=SL_COMMENT? (nanoentities+=STRING (","
	//	nanoentities+=STRING)*)?) CLOSE;
	public StructuralVolatilityElements getStructuralVolatilityAccess() {
		return pStructuralVolatility;
	}
	
	public ParserRule getStructuralVolatilityRule() {
		return getStructuralVolatilityAccess().getRule();
	}
	
	//RelatedGroup:
	//	Aggregate | Entity | PredefinedService | SecurityAccessGroup | SeparatedSecurityZone | SharedOwnerGroup;
	public RelatedGroupElements getRelatedGroupAccess() {
		return pRelatedGroup;
	}
	
	public ParserRule getRelatedGroupRule() {
		return getRelatedGroupAccess().getRule();
	}
	
	//Aggregate:
	//	doc=ML_COMMENT?
	//	'Aggregate' name=ID
	//	OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE;
	public AggregateElements getAggregateAccess() {
		return pAggregate;
	}
	
	public ParserRule getAggregateRule() {
		return getAggregateAccess().getRule();
	}
	
	//Entity:
	//	doc=ML_COMMENT?
	//	'Entity' name=ID
	//	OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE;
	public EntityElements getEntityAccess() {
		return pEntity;
	}
	
	public ParserRule getEntityRule() {
		return getEntityAccess().getRule();
	}
	
	//PredefinedService:
	//	doc=ML_COMMENT?
	//	'PredefinedService' name=ID
	//	OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE;
	public PredefinedServiceElements getPredefinedServiceAccess() {
		return pPredefinedService;
	}
	
	public ParserRule getPredefinedServiceRule() {
		return getPredefinedServiceAccess().getRule();
	}
	
	//SecurityAccessGroup:
	//	doc=ML_COMMENT?
	//	'SecurityAccessGroup' name=ID
	//	OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)?
	//	CLOSE;
	public SecurityAccessGroupElements getSecurityAccessGroupAccess() {
		return pSecurityAccessGroup;
	}
	
	public ParserRule getSecurityAccessGroupRule() {
		return getSecurityAccessGroupAccess().getRule();
	}
	
	//SeparatedSecurityZone:
	//	doc=ML_COMMENT?
	//	'SeparatedSecurityZone' name=ID
	//	OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE;
	public SeparatedSecurityZoneElements getSeparatedSecurityZoneAccess() {
		return pSeparatedSecurityZone;
	}
	
	public ParserRule getSeparatedSecurityZoneRule() {
		return getSeparatedSecurityZoneAccess().getRule();
	}
	
	//SharedOwnerGroup:
	//	doc=ML_COMMENT?
	//	'SharedOwnerGroup' name=ID
	//	OPEN (nanoentities+=STRING ("," nanoentities+=STRING)*)? CLOSE;
	public SharedOwnerGroupElements getSharedOwnerGroupAccess() {
		return pSharedOwnerGroup;
	}
	
	public ParserRule getSharedOwnerGroupRule() {
		return getSharedOwnerGroupAccess().getRule();
	}
	
	//terminal OPEN:
	//	'{';
	public TerminalRule getOPENRule() {
		return tOPEN;
	}
	
	//terminal CLOSE:
	//	'}';
	public TerminalRule getCLOSERule() {
		return tCLOSE;
	}
	
	//terminal ID:
	//	'^'? ('a'..'z' | 'A'..'Z' | '_') ('a'..'z' | 'A'..'Z' | '_' | '0'..'9')*;
	public TerminalRule getIDRule() {
		return gaTerminals.getIDRule();
	}
	
	//terminal INT returns ecore::EInt:
	//	'0'..'9'+;
	public TerminalRule getINTRule() {
		return gaTerminals.getINTRule();
	}
	
	//terminal STRING:
	//	'"' ('\\' . | !('\\' | '"'))* '"' |
	//	"'" ('\\' . | !('\\' | "'"))* "'";
	public TerminalRule getSTRINGRule() {
		return gaTerminals.getSTRINGRule();
	}
	
	//terminal ML_COMMENT:
	//	'/*'->'*/';
	public TerminalRule getML_COMMENTRule() {
		return gaTerminals.getML_COMMENTRule();
	}
	
	//terminal SL_COMMENT:
	//	'//' !('\n' | '\r')* ('\r'? '\n')?;
	public TerminalRule getSL_COMMENTRule() {
		return gaTerminals.getSL_COMMENTRule();
	}
	
	//terminal WS:
	//	' ' | '\t' | '\r' | '\n'+;
	public TerminalRule getWSRule() {
		return gaTerminals.getWSRule();
	}
	
	//terminal ANY_OTHER:
	//	.;
	public TerminalRule getANY_OTHERRule() {
		return gaTerminals.getANY_OTHERRule();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy