/*
* generated by Xtext
*/

package org.sonatype.maven.services;

import com.google.inject.Singleton;
import com.google.inject.Inject;

import org.eclipse.xtext.*;

import org.eclipse.xtext.service.GrammarProvider;

import org.eclipse.xtext.common.services.TerminalsGrammarAccess;

@Singleton
public class DependencyDslGrammarAccess implements IGrammarAccess {
	
	
	public class ProjectElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Project");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cProjectKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Keyword cGroupIdKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Keyword cColonKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cGroupIdAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cGroupIdGroupIdParserRuleCall_4_0 = (RuleCall)cGroupIdAssignment_4.eContents().get(0);
		private final Keyword cArtifactIdKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Keyword cColonKeyword_6 = (Keyword)cGroup.eContents().get(6);
		private final Assignment cArtifactIdAssignment_7 = (Assignment)cGroup.eContents().get(7);
		private final RuleCall cArtifactIdArtifactIdParserRuleCall_7_0 = (RuleCall)cArtifactIdAssignment_7.eContents().get(0);
		private final Keyword cVersionKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Keyword cColonKeyword_9 = (Keyword)cGroup.eContents().get(9);
		private final Assignment cVersionAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cVersionVersionParserRuleCall_10_0 = (RuleCall)cVersionAssignment_10.eContents().get(0);
		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
		private final Keyword cDependenciesKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_11_1 = (Keyword)cGroup_11.eContents().get(1);
		private final Assignment cDependenciesAssignment_11_2 = (Assignment)cGroup_11.eContents().get(2);
		private final RuleCall cDependenciesDependencyParserRuleCall_11_2_0 = (RuleCall)cDependenciesAssignment_11_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_11_3 = (Keyword)cGroup_11.eContents().get(3);
		private final Group cGroup_12 = (Group)cGroup.eContents().get(12);
		private final Keyword cMappedDependenciesKeyword_12_0 = (Keyword)cGroup_12.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_12_1 = (Keyword)cGroup_12.eContents().get(1);
		private final Assignment cMappedDependenciesAssignment_12_2 = (Assignment)cGroup_12.eContents().get(2);
		private final RuleCall cMappedDependenciesMappedDependencyParserRuleCall_12_2_0 = (RuleCall)cMappedDependenciesAssignment_12_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_12_3 = (Keyword)cGroup_12.eContents().get(3);
		private final Group cGroup_13 = (Group)cGroup.eContents().get(13);
		private final Keyword cPluginsKeyword_13_0 = (Keyword)cGroup_13.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_13_1 = (Keyword)cGroup_13.eContents().get(1);
		private final Assignment cPluginsAssignment_13_2 = (Assignment)cGroup_13.eContents().get(2);
		private final RuleCall cPluginsPluginParserRuleCall_13_2_0 = (RuleCall)cPluginsAssignment_13_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_13_3 = (Keyword)cGroup_13.eContents().get(3);
		private final Group cGroup_14 = (Group)cGroup.eContents().get(14);
		private final Keyword cExtensionsKeyword_14_0 = (Keyword)cGroup_14.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_14_1 = (Keyword)cGroup_14.eContents().get(1);
		private final Assignment cExtensionsAssignment_14_2 = (Assignment)cGroup_14.eContents().get(2);
		private final RuleCall cExtensionsExtensionParserRuleCall_14_2_0 = (RuleCall)cExtensionsAssignment_14_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_14_3 = (Keyword)cGroup_14.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_15 = (Keyword)cGroup.eContents().get(15);
		
		//Project:
		//  "project" "{" "groupId" ":" groupId=GroupId "artifactId" ":" artifactId=ArtifactId
		//  "version" ":" version=Version ("dependencies" "{" dependencies+=Dependency* "}")? (
		//  "mappedDependencies" "{" mappedDependencies+=MappedDependency* "}")? ("plugins" "{"
		//  plugins+=Plugin* "}")? ("extensions" "{" extensions+=Extension* "}")? "}";
		public ParserRule getRule() { return rule; }

		//"project" "{" "groupId" ":" groupId=GroupId "artifactId" ":" artifactId=ArtifactId
		//"version" ":" version=Version ("dependencies" "{" dependencies+=Dependency* "}")? (
		//"mappedDependencies" "{" mappedDependencies+=MappedDependency* "}")? ("plugins" "{"
		//plugins+=Plugin* "}")? ("extensions" "{" extensions+=Extension* "}")? "}"
		public Group getGroup() { return cGroup; }

		//"project"
		public Keyword getProjectKeyword_0() { return cProjectKeyword_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }

		//"groupId"
		public Keyword getGroupIdKeyword_2() { return cGroupIdKeyword_2; }

		//":"
		public Keyword getColonKeyword_3() { return cColonKeyword_3; }

		//groupId=GroupId
		public Assignment getGroupIdAssignment_4() { return cGroupIdAssignment_4; }

		//GroupId
		public RuleCall getGroupIdGroupIdParserRuleCall_4_0() { return cGroupIdGroupIdParserRuleCall_4_0; }

		//"artifactId"
		public Keyword getArtifactIdKeyword_5() { return cArtifactIdKeyword_5; }

		//":"
		public Keyword getColonKeyword_6() { return cColonKeyword_6; }

		//artifactId=ArtifactId
		public Assignment getArtifactIdAssignment_7() { return cArtifactIdAssignment_7; }

		//ArtifactId
		public RuleCall getArtifactIdArtifactIdParserRuleCall_7_0() { return cArtifactIdArtifactIdParserRuleCall_7_0; }

		//"version"
		public Keyword getVersionKeyword_8() { return cVersionKeyword_8; }

		//":"
		public Keyword getColonKeyword_9() { return cColonKeyword_9; }

		//version=Version
		public Assignment getVersionAssignment_10() { return cVersionAssignment_10; }

		//Version
		public RuleCall getVersionVersionParserRuleCall_10_0() { return cVersionVersionParserRuleCall_10_0; }

		//("dependencies" "{" dependencies+=Dependency* "}")?
		public Group getGroup_11() { return cGroup_11; }

		//"dependencies"
		public Keyword getDependenciesKeyword_11_0() { return cDependenciesKeyword_11_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_11_1() { return cLeftCurlyBracketKeyword_11_1; }

		//dependencies+=Dependency*
		public Assignment getDependenciesAssignment_11_2() { return cDependenciesAssignment_11_2; }

		//Dependency
		public RuleCall getDependenciesDependencyParserRuleCall_11_2_0() { return cDependenciesDependencyParserRuleCall_11_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_11_3() { return cRightCurlyBracketKeyword_11_3; }

		//("mappedDependencies" "{" mappedDependencies+=MappedDependency* "}")?
		public Group getGroup_12() { return cGroup_12; }

		//"mappedDependencies"
		public Keyword getMappedDependenciesKeyword_12_0() { return cMappedDependenciesKeyword_12_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_12_1() { return cLeftCurlyBracketKeyword_12_1; }

		//mappedDependencies+=MappedDependency*
		public Assignment getMappedDependenciesAssignment_12_2() { return cMappedDependenciesAssignment_12_2; }

		//MappedDependency
		public RuleCall getMappedDependenciesMappedDependencyParserRuleCall_12_2_0() { return cMappedDependenciesMappedDependencyParserRuleCall_12_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_12_3() { return cRightCurlyBracketKeyword_12_3; }

		//("plugins" "{" plugins+=Plugin* "}")?
		public Group getGroup_13() { return cGroup_13; }

		//"plugins"
		public Keyword getPluginsKeyword_13_0() { return cPluginsKeyword_13_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_13_1() { return cLeftCurlyBracketKeyword_13_1; }

		//plugins+=Plugin*
		public Assignment getPluginsAssignment_13_2() { return cPluginsAssignment_13_2; }

		//Plugin
		public RuleCall getPluginsPluginParserRuleCall_13_2_0() { return cPluginsPluginParserRuleCall_13_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_13_3() { return cRightCurlyBracketKeyword_13_3; }

		//("extensions" "{" extensions+=Extension* "}")?
		public Group getGroup_14() { return cGroup_14; }

		//"extensions"
		public Keyword getExtensionsKeyword_14_0() { return cExtensionsKeyword_14_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_14_1() { return cLeftCurlyBracketKeyword_14_1; }

		//extensions+=Extension*
		public Assignment getExtensionsAssignment_14_2() { return cExtensionsAssignment_14_2; }

		//Extension
		public RuleCall getExtensionsExtensionParserRuleCall_14_2_0() { return cExtensionsExtensionParserRuleCall_14_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_14_3() { return cRightCurlyBracketKeyword_14_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_15() { return cRightCurlyBracketKeyword_15; }
	}

	public class GAElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "GA");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cGroupIdKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cGroupIdAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cGroupIdGroupIdParserRuleCall_2_0 = (RuleCall)cGroupIdAssignment_2.eContents().get(0);
		private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cArtifactIdKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cColonKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cArtifactIdAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cArtifactIdArtifactIdParserRuleCall_6_0 = (RuleCall)cArtifactIdAssignment_6.eContents().get(0);
		
		//GA:
		//  "groupId" ":" groupId=GroupId "," "artifactId" ":" artifactId=ArtifactId;
		public ParserRule getRule() { return rule; }

		//"groupId" ":" groupId=GroupId "," "artifactId" ":" artifactId=ArtifactId
		public Group getGroup() { return cGroup; }

		//"groupId"
		public Keyword getGroupIdKeyword_0() { return cGroupIdKeyword_0; }

		//":"
		public Keyword getColonKeyword_1() { return cColonKeyword_1; }

		//groupId=GroupId
		public Assignment getGroupIdAssignment_2() { return cGroupIdAssignment_2; }

		//GroupId
		public RuleCall getGroupIdGroupIdParserRuleCall_2_0() { return cGroupIdGroupIdParserRuleCall_2_0; }

		//","
		public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }

		//"artifactId"
		public Keyword getArtifactIdKeyword_4() { return cArtifactIdKeyword_4; }

		//":"
		public Keyword getColonKeyword_5() { return cColonKeyword_5; }

		//artifactId=ArtifactId
		public Assignment getArtifactIdAssignment_6() { return cArtifactIdAssignment_6; }

		//ArtifactId
		public RuleCall getArtifactIdArtifactIdParserRuleCall_6_0() { return cArtifactIdArtifactIdParserRuleCall_6_0; }
	}

	public class DependencyElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Dependency");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cGroupIdKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cGroupIdAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cGroupIdGroupIdParserRuleCall_2_0 = (RuleCall)cGroupIdAssignment_2.eContents().get(0);
		private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cArtifactIdKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cColonKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cArtifactIdAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cArtifactIdArtifactIdParserRuleCall_6_0 = (RuleCall)cArtifactIdAssignment_6.eContents().get(0);
		private final Keyword cCommaKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Keyword cVersionKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Keyword cColonKeyword_9 = (Keyword)cGroup.eContents().get(9);
		private final Assignment cVersionAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cVersionVersionParserRuleCall_10_0 = (RuleCall)cVersionAssignment_10.eContents().get(0);
		private final Alternatives cAlternatives_11 = (Alternatives)cGroup.eContents().get(11);
		private final Group cGroup_11_0 = (Group)cAlternatives_11.eContents().get(0);
		private final Keyword cCommaKeyword_11_0_0 = (Keyword)cGroup_11_0.eContents().get(0);
		private final Keyword cPathKeyword_11_0_1 = (Keyword)cGroup_11_0.eContents().get(1);
		private final Keyword cUrlKeyword_11_1 = (Keyword)cAlternatives_11.eContents().get(1);
		private final Group cGroup_12 = (Group)cGroup.eContents().get(12);
		private final Keyword cCommaKeyword_12_0 = (Keyword)cGroup_12.eContents().get(0);
		private final Keyword cScopeKeyword_12_1 = (Keyword)cGroup_12.eContents().get(1);
		private final Group cGroup_13 = (Group)cGroup.eContents().get(13);
		private final Keyword cCommaKeyword_13_0 = (Keyword)cGroup_13.eContents().get(0);
		private final Keyword cClassifierKeyword_13_1 = (Keyword)cGroup_13.eContents().get(1);
		private final Group cGroup_14 = (Group)cGroup.eContents().get(14);
		private final Keyword cCommaKeyword_14_0 = (Keyword)cGroup_14.eContents().get(0);
		private final Keyword cTypeKeyword_14_1 = (Keyword)cGroup_14.eContents().get(1);
		private final Group cGroup_15 = (Group)cGroup.eContents().get(15);
		private final Keyword cCommaKeyword_15_0 = (Keyword)cGroup_15.eContents().get(0);
		private final Keyword cExclusionsKeyword_15_1 = (Keyword)cGroup_15.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_15_2 = (Keyword)cGroup_15.eContents().get(2);
		private final Assignment cExclusionsAssignment_15_3 = (Assignment)cGroup_15.eContents().get(3);
		private final RuleCall cExclusionsGAParserRuleCall_15_3_0 = (RuleCall)cExclusionsAssignment_15_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_15_4 = (Keyword)cGroup_15.eContents().get(4);
		
		//Dependency:
		//  "groupId" ":" groupId=GroupId "," "artifactId" ":" artifactId=ArtifactId "," "version"
		//  ":" version=Version ("," "path"|"url")? ("," "scope")? ("," "classifier")? ("," "type")? (
		//  "," "exclusions" "{" exclusions+=GA* "}")?; 
		//	
		//  
		//  //
		//   //
		//   //
		//            
		//        
		//         
		//  
		//  //
		//   //
		//   //
		//           
		//      
		//      
		//      
		//  
		//  //
		//   //
		//   //
		public ParserRule getRule() { return rule; }

		//"groupId" ":" groupId=GroupId "," "artifactId" ":" artifactId=ArtifactId "," "version"
		//":" version=Version ("," "path"|"url")? ("," "scope")? ("," "classifier")? ("," "type")? (
		//"," "exclusions" "{" exclusions+=GA* "}")? 
		//  //
		//   //
		//   //
		//            
		//        
		//         
		//  
		//  //
		//   //
		//   //
		//           
		//      
		//      
		//      
		//  
		//  //
		//   //
		//   //
		public Group getGroup() { return cGroup; }

		//"groupId" 
		//  //
		//   //
		//   //
		public Keyword getGroupIdKeyword_0() { return cGroupIdKeyword_0; }

		//":"
		public Keyword getColonKeyword_1() { return cColonKeyword_1; }

		//groupId=GroupId
		public Assignment getGroupIdAssignment_2() { return cGroupIdAssignment_2; }

		//GroupId
		public RuleCall getGroupIdGroupIdParserRuleCall_2_0() { return cGroupIdGroupIdParserRuleCall_2_0; }

		//","
		public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }

		//"artifactId"
		public Keyword getArtifactIdKeyword_4() { return cArtifactIdKeyword_4; }

		//":"
		public Keyword getColonKeyword_5() { return cColonKeyword_5; }

		//artifactId=ArtifactId
		public Assignment getArtifactIdAssignment_6() { return cArtifactIdAssignment_6; }

		//ArtifactId
		public RuleCall getArtifactIdArtifactIdParserRuleCall_6_0() { return cArtifactIdArtifactIdParserRuleCall_6_0; }

		//","
		public Keyword getCommaKeyword_7() { return cCommaKeyword_7; }

		//"version"
		public Keyword getVersionKeyword_8() { return cVersionKeyword_8; }

		//":"
		public Keyword getColonKeyword_9() { return cColonKeyword_9; }

		//version=Version   
		//  
		//  //
		//   //
		//   //
		public Assignment getVersionAssignment_10() { return cVersionAssignment_10; }

		//Version 
		//  
		//  //
		//   //
		//   //
		public RuleCall getVersionVersionParserRuleCall_10_0() { return cVersionVersionParserRuleCall_10_0; }

		//("," "path"|"url")? 
		//  
		//  //
		//   //
		//   //
		public Alternatives getAlternatives_11() { return cAlternatives_11; }

		//"," "path"
		public Group getGroup_11_0() { return cGroup_11_0; }

		//","
		public Keyword getCommaKeyword_11_0_0() { return cCommaKeyword_11_0_0; }

		//"path"
		public Keyword getPathKeyword_11_0_1() { return cPathKeyword_11_0_1; }

		//"url"
		public Keyword getUrlKeyword_11_1() { return cUrlKeyword_11_1; }

		//("," "scope")?
		public Group getGroup_12() { return cGroup_12; }

		//","
		public Keyword getCommaKeyword_12_0() { return cCommaKeyword_12_0; }

		//"scope"
		public Keyword getScopeKeyword_12_1() { return cScopeKeyword_12_1; }

		//("," "classifier")?
		public Group getGroup_13() { return cGroup_13; }

		//","
		public Keyword getCommaKeyword_13_0() { return cCommaKeyword_13_0; }

		//"classifier"
		public Keyword getClassifierKeyword_13_1() { return cClassifierKeyword_13_1; }

		//("," "type")?
		public Group getGroup_14() { return cGroup_14; }

		//","
		public Keyword getCommaKeyword_14_0() { return cCommaKeyword_14_0; }

		//"type"
		public Keyword getTypeKeyword_14_1() { return cTypeKeyword_14_1; }

		//("," "exclusions" "{" exclusions+=GA* "}")?
		public Group getGroup_15() { return cGroup_15; }

		//","
		public Keyword getCommaKeyword_15_0() { return cCommaKeyword_15_0; }

		//"exclusions"
		public Keyword getExclusionsKeyword_15_1() { return cExclusionsKeyword_15_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_15_2() { return cLeftCurlyBracketKeyword_15_2; }

		//exclusions+=GA*
		public Assignment getExclusionsAssignment_15_3() { return cExclusionsAssignment_15_3; }

		//GA
		public RuleCall getExclusionsGAParserRuleCall_15_3_0() { return cExclusionsGAParserRuleCall_15_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_15_4() { return cRightCurlyBracketKeyword_15_4; }
	}

	public class MappedDependencyElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MappedDependency");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
		private final Keyword cPathKeyword_0_0 = (Keyword)cAlternatives_0.eContents().get(0);
		private final Keyword cUrlKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
		private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final RuleCall cSTRINGTerminalRuleCall_2 = (RuleCall)cGroup.eContents().get(2);
		private final Group cGroup_3 = (Group)cGroup.eContents().get(3);
		private final Keyword cCommaKeyword_3_0 = (Keyword)cGroup_3.eContents().get(0);
		private final Keyword cExcludeKeyword_3_1 = (Keyword)cGroup_3.eContents().get(1);
		private final Keyword cColonKeyword_3_2 = (Keyword)cGroup_3.eContents().get(2);
		private final RuleCall cSTRINGTerminalRuleCall_3_3 = (RuleCall)cGroup_3.eContents().get(3);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cCommaKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cGroupIdKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Keyword cColonKeyword_4_2 = (Keyword)cGroup_4.eContents().get(2);
		private final Assignment cGroupIdAssignment_4_3 = (Assignment)cGroup_4.eContents().get(3);
		private final RuleCall cGroupIdGroupIdParserRuleCall_4_3_0 = (RuleCall)cGroupIdAssignment_4_3.eContents().get(0);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cCommaKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Keyword cArtifactIdKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
		private final Keyword cColonKeyword_5_2 = (Keyword)cGroup_5.eContents().get(2);
		private final Assignment cArtifactIdAssignment_5_3 = (Assignment)cGroup_5.eContents().get(3);
		private final RuleCall cArtifactIdArtifactIdParserRuleCall_5_3_0 = (RuleCall)cArtifactIdAssignment_5_3.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cCommaKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Keyword cVersionKeyword_6_1 = (Keyword)cGroup_6.eContents().get(1);
		private final Keyword cColonKeyword_6_2 = (Keyword)cGroup_6.eContents().get(2);
		private final Assignment cVersionAssignment_6_3 = (Assignment)cGroup_6.eContents().get(3);
		private final RuleCall cVersionVersionParserRuleCall_6_3_0 = (RuleCall)cVersionAssignment_6_3.eContents().get(0);
		
		//MappedDependency:
		//  ("path"|"url") ":" STRING ("," "exclude" ":" STRING)? ("," "groupId" ":" groupId=GroupId)?
		//  ("," "artifactId" ":" artifactId=ArtifactId)? ("," "version" ":" version=Version)?; 	
		//
		//  
		//  //
		//   //
		//   //
		public ParserRule getRule() { return rule; }

		//("path"|"url") ":" STRING ("," "exclude" ":" STRING)? ("," "groupId" ":" groupId=GroupId)?
		//("," "artifactId" ":" artifactId=ArtifactId)? ("," "version" ":" version=Version)? 
		//  //
		//   //
		//   //
		public Group getGroup() { return cGroup; }

		//"path"|"url" 
		//  //
		//   //
		//   //
		public Alternatives getAlternatives_0() { return cAlternatives_0; }

		//"path"
		public Keyword getPathKeyword_0_0() { return cPathKeyword_0_0; }

		//"url"
		public Keyword getUrlKeyword_0_1() { return cUrlKeyword_0_1; }

		//":"
		public Keyword getColonKeyword_1() { return cColonKeyword_1; }

		//STRING
		public RuleCall getSTRINGTerminalRuleCall_2() { return cSTRINGTerminalRuleCall_2; }

		//("," "exclude" ":" STRING)?
		public Group getGroup_3() { return cGroup_3; }

		//","
		public Keyword getCommaKeyword_3_0() { return cCommaKeyword_3_0; }

		//"exclude"
		public Keyword getExcludeKeyword_3_1() { return cExcludeKeyword_3_1; }

		//":"
		public Keyword getColonKeyword_3_2() { return cColonKeyword_3_2; }

		//STRING
		public RuleCall getSTRINGTerminalRuleCall_3_3() { return cSTRINGTerminalRuleCall_3_3; }

		//("," "groupId" ":" groupId=GroupId)?
		public Group getGroup_4() { return cGroup_4; }

		//","
		public Keyword getCommaKeyword_4_0() { return cCommaKeyword_4_0; }

		//"groupId"
		public Keyword getGroupIdKeyword_4_1() { return cGroupIdKeyword_4_1; }

		//":"
		public Keyword getColonKeyword_4_2() { return cColonKeyword_4_2; }

		//groupId=GroupId
		public Assignment getGroupIdAssignment_4_3() { return cGroupIdAssignment_4_3; }

		//GroupId
		public RuleCall getGroupIdGroupIdParserRuleCall_4_3_0() { return cGroupIdGroupIdParserRuleCall_4_3_0; }

		//("," "artifactId" ":" artifactId=ArtifactId)?
		public Group getGroup_5() { return cGroup_5; }

		//","
		public Keyword getCommaKeyword_5_0() { return cCommaKeyword_5_0; }

		//"artifactId"
		public Keyword getArtifactIdKeyword_5_1() { return cArtifactIdKeyword_5_1; }

		//":"
		public Keyword getColonKeyword_5_2() { return cColonKeyword_5_2; }

		//artifactId=ArtifactId
		public Assignment getArtifactIdAssignment_5_3() { return cArtifactIdAssignment_5_3; }

		//ArtifactId
		public RuleCall getArtifactIdArtifactIdParserRuleCall_5_3_0() { return cArtifactIdArtifactIdParserRuleCall_5_3_0; }

		//("," "version" ":" version=Version)?
		public Group getGroup_6() { return cGroup_6; }

		//","
		public Keyword getCommaKeyword_6_0() { return cCommaKeyword_6_0; }

		//"version"
		public Keyword getVersionKeyword_6_1() { return cVersionKeyword_6_1; }

		//":"
		public Keyword getColonKeyword_6_2() { return cColonKeyword_6_2; }

		//version=Version
		public Assignment getVersionAssignment_6_3() { return cVersionAssignment_6_3; }

		//Version
		public RuleCall getVersionVersionParserRuleCall_6_3_0() { return cVersionVersionParserRuleCall_6_3_0; }
	}

	public class PluginElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Plugin");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cGroupIdKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cGroupIdAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cGroupIdGroupIdParserRuleCall_2_0 = (RuleCall)cGroupIdAssignment_2.eContents().get(0);
		private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cArtifactIdKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cColonKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cArtifactIdAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cArtifactIdArtifactIdParserRuleCall_6_0 = (RuleCall)cArtifactIdAssignment_6.eContents().get(0);
		private final Keyword cCommaKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Keyword cVersionKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Keyword cColonKeyword_9 = (Keyword)cGroup.eContents().get(9);
		private final Assignment cVersionAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cVersionVersionParserRuleCall_10_0 = (RuleCall)cVersionAssignment_10.eContents().get(0);
		private final Group cGroup_11 = (Group)cGroup.eContents().get(11);
		private final Keyword cCommaKeyword_11_0 = (Keyword)cGroup_11.eContents().get(0);
		private final Keyword cPhaseKeyword_11_1 = (Keyword)cGroup_11.eContents().get(1);
		private final Keyword cColonKeyword_11_2 = (Keyword)cGroup_11.eContents().get(2);
		private final RuleCall cIDTerminalRuleCall_11_3 = (RuleCall)cGroup_11.eContents().get(3);
		private final Group cGroup_12 = (Group)cGroup.eContents().get(12);
		private final Keyword cCommaKeyword_12_0 = (Keyword)cGroup_12.eContents().get(0);
		private final Keyword cExtensionIdKeyword_12_1 = (Keyword)cGroup_12.eContents().get(1);
		private final Keyword cColonKeyword_12_2 = (Keyword)cGroup_12.eContents().get(2);
		private final RuleCall cIDTerminalRuleCall_12_3 = (RuleCall)cGroup_12.eContents().get(3);
		private final Group cGroup_13 = (Group)cGroup.eContents().get(13);
		private final Keyword cCommaKeyword_13_0 = (Keyword)cGroup_13.eContents().get(0);
		private final Keyword cExecuteKeyword_13_1 = (Keyword)cGroup_13.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_13_2 = (Keyword)cGroup_13.eContents().get(2);
		private final RuleCall cSTRINGTerminalRuleCall_13_3 = (RuleCall)cGroup_13.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_13_4 = (Keyword)cGroup_13.eContents().get(4);
		
		//Plugin:
		//  "groupId" ":" groupId=GroupId "," "artifactId" ":" artifactId=ArtifactId "," "version"
		//  ":" version=Version ("," "phase" ":" ID)? ("," "extensionId" ":" ID)? ("," "execute" "{"
		//  STRING* "}")?; 	
		//
		//	
		//  
		//  //
		//   //
		//   //
		//            
		//        
		//         
		//                   
		//          
		//  //
		//   //
		public ParserRule getRule() { return rule; }

		//"groupId" ":" groupId=GroupId "," "artifactId" ":" artifactId=ArtifactId "," "version"
		//":" version=Version ("," "phase" ":" ID)? ("," "extensionId" ":" ID)? ("," "execute" "{"
		//STRING* "}")? 
		//  //
		//   //
		//   //
		//            
		//        
		//         
		//                   
		//          
		//  //
		//   //
		public Group getGroup() { return cGroup; }

		//"groupId" 
		//  //
		//   //
		//   //
		public Keyword getGroupIdKeyword_0() { return cGroupIdKeyword_0; }

		//":"
		public Keyword getColonKeyword_1() { return cColonKeyword_1; }

		//groupId=GroupId
		public Assignment getGroupIdAssignment_2() { return cGroupIdAssignment_2; }

		//GroupId
		public RuleCall getGroupIdGroupIdParserRuleCall_2_0() { return cGroupIdGroupIdParserRuleCall_2_0; }

		//","
		public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }

		//"artifactId"
		public Keyword getArtifactIdKeyword_4() { return cArtifactIdKeyword_4; }

		//":"
		public Keyword getColonKeyword_5() { return cColonKeyword_5; }

		//artifactId=ArtifactId
		public Assignment getArtifactIdAssignment_6() { return cArtifactIdAssignment_6; }

		//ArtifactId
		public RuleCall getArtifactIdArtifactIdParserRuleCall_6_0() { return cArtifactIdArtifactIdParserRuleCall_6_0; }

		//","
		public Keyword getCommaKeyword_7() { return cCommaKeyword_7; }

		//"version"
		public Keyword getVersionKeyword_8() { return cVersionKeyword_8; }

		//":"
		public Keyword getColonKeyword_9() { return cColonKeyword_9; }

		//version=Version
		public Assignment getVersionAssignment_10() { return cVersionAssignment_10; }

		//Version
		public RuleCall getVersionVersionParserRuleCall_10_0() { return cVersionVersionParserRuleCall_10_0; }

		//("," "phase" ":" ID)?
		public Group getGroup_11() { return cGroup_11; }

		//","
		public Keyword getCommaKeyword_11_0() { return cCommaKeyword_11_0; }

		//"phase"
		public Keyword getPhaseKeyword_11_1() { return cPhaseKeyword_11_1; }

		//":"
		public Keyword getColonKeyword_11_2() { return cColonKeyword_11_2; }

		//ID
		public RuleCall getIDTerminalRuleCall_11_3() { return cIDTerminalRuleCall_11_3; }

		//("," "extensionId" ":" ID)?
		public Group getGroup_12() { return cGroup_12; }

		//","
		public Keyword getCommaKeyword_12_0() { return cCommaKeyword_12_0; }

		//"extensionId"
		public Keyword getExtensionIdKeyword_12_1() { return cExtensionIdKeyword_12_1; }

		//":"
		public Keyword getColonKeyword_12_2() { return cColonKeyword_12_2; }

		//ID
		public RuleCall getIDTerminalRuleCall_12_3() { return cIDTerminalRuleCall_12_3; }

		//("," "execute" "{" STRING* "}")?
		public Group getGroup_13() { return cGroup_13; }

		//","
		public Keyword getCommaKeyword_13_0() { return cCommaKeyword_13_0; }

		//"execute"
		public Keyword getExecuteKeyword_13_1() { return cExecuteKeyword_13_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_13_2() { return cLeftCurlyBracketKeyword_13_2; }

		//STRING*
		public RuleCall getSTRINGTerminalRuleCall_13_3() { return cSTRINGTerminalRuleCall_13_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_13_4() { return cRightCurlyBracketKeyword_13_4; }
	}

	public class ExtensionElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Extension");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cGroupIdKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cGroupIdAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cGroupIdGroupIdParserRuleCall_2_0 = (RuleCall)cGroupIdAssignment_2.eContents().get(0);
		private final Keyword cCommaKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cArtifactIdKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Keyword cColonKeyword_5 = (Keyword)cGroup.eContents().get(5);
		private final Assignment cArtifactIdAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cArtifactIdArtifactIdParserRuleCall_6_0 = (RuleCall)cArtifactIdAssignment_6.eContents().get(0);
		private final Keyword cCommaKeyword_7 = (Keyword)cGroup.eContents().get(7);
		private final Keyword cVersionKeyword_8 = (Keyword)cGroup.eContents().get(8);
		private final Keyword cColonKeyword_9 = (Keyword)cGroup.eContents().get(9);
		private final Assignment cVersionAssignment_10 = (Assignment)cGroup.eContents().get(10);
		private final RuleCall cVersionVersionParserRuleCall_10_0 = (RuleCall)cVersionAssignment_10.eContents().get(0);
		private final Keyword cCommaKeyword_11 = (Keyword)cGroup.eContents().get(11);
		private final Keyword cExtensionIdKeyword_12 = (Keyword)cGroup.eContents().get(12);
		private final Keyword cColonKeyword_13 = (Keyword)cGroup.eContents().get(13);
		private final RuleCall cIDTerminalRuleCall_14 = (RuleCall)cGroup.eContents().get(14);
		private final Keyword cCommaKeyword_15 = (Keyword)cGroup.eContents().get(15);
		private final Keyword cExecuteKeyword_16 = (Keyword)cGroup.eContents().get(16);
		private final Keyword cLeftCurlyBracketKeyword_17 = (Keyword)cGroup.eContents().get(17);
		private final RuleCall cSTRINGTerminalRuleCall_18 = (RuleCall)cGroup.eContents().get(18);
		private final Keyword cRightCurlyBracketKeyword_19 = (Keyword)cGroup.eContents().get(19);
		
		//Extension:
		//  "groupId" ":" groupId=GroupId "," "artifactId" ":" artifactId=ArtifactId "," "version"
		//  ":" version=Version "," "extensionId" ":" ID "," "execute" "{" STRING* "}";
		public ParserRule getRule() { return rule; }

		//"groupId" ":" groupId=GroupId "," "artifactId" ":" artifactId=ArtifactId "," "version"
		//":" version=Version "," "extensionId" ":" ID "," "execute" "{" STRING* "}"
		public Group getGroup() { return cGroup; }

		//"groupId"
		public Keyword getGroupIdKeyword_0() { return cGroupIdKeyword_0; }

		//":"
		public Keyword getColonKeyword_1() { return cColonKeyword_1; }

		//groupId=GroupId
		public Assignment getGroupIdAssignment_2() { return cGroupIdAssignment_2; }

		//GroupId
		public RuleCall getGroupIdGroupIdParserRuleCall_2_0() { return cGroupIdGroupIdParserRuleCall_2_0; }

		//","
		public Keyword getCommaKeyword_3() { return cCommaKeyword_3; }

		//"artifactId"
		public Keyword getArtifactIdKeyword_4() { return cArtifactIdKeyword_4; }

		//":"
		public Keyword getColonKeyword_5() { return cColonKeyword_5; }

		//artifactId=ArtifactId
		public Assignment getArtifactIdAssignment_6() { return cArtifactIdAssignment_6; }

		//ArtifactId
		public RuleCall getArtifactIdArtifactIdParserRuleCall_6_0() { return cArtifactIdArtifactIdParserRuleCall_6_0; }

		//","
		public Keyword getCommaKeyword_7() { return cCommaKeyword_7; }

		//"version"
		public Keyword getVersionKeyword_8() { return cVersionKeyword_8; }

		//":"
		public Keyword getColonKeyword_9() { return cColonKeyword_9; }

		//version=Version
		public Assignment getVersionAssignment_10() { return cVersionAssignment_10; }

		//Version
		public RuleCall getVersionVersionParserRuleCall_10_0() { return cVersionVersionParserRuleCall_10_0; }

		//","
		public Keyword getCommaKeyword_11() { return cCommaKeyword_11; }

		//"extensionId"
		public Keyword getExtensionIdKeyword_12() { return cExtensionIdKeyword_12; }

		//":"
		public Keyword getColonKeyword_13() { return cColonKeyword_13; }

		//ID
		public RuleCall getIDTerminalRuleCall_14() { return cIDTerminalRuleCall_14; }

		//","
		public Keyword getCommaKeyword_15() { return cCommaKeyword_15; }

		//"execute"
		public Keyword getExecuteKeyword_16() { return cExecuteKeyword_16; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_17() { return cLeftCurlyBracketKeyword_17; }

		//STRING*
		public RuleCall getSTRINGTerminalRuleCall_18() { return cSTRINGTerminalRuleCall_18; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_19() { return cRightCurlyBracketKeyword_19; }
	}

	public class RegexElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Regex");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Alternatives cAlternatives_0 = (Alternatives)cGroup.eContents().get(0);
		private final Keyword cFullStopKeyword_0_0 = (Keyword)cAlternatives_0.eContents().get(0);
		private final Keyword cHyphenMinusKeyword_0_1 = (Keyword)cAlternatives_0.eContents().get(1);
		private final Keyword cAsteriskKeyword_0_2 = (Keyword)cAlternatives_0.eContents().get(2);
		private final RuleCall cIDTerminalRuleCall_1 = (RuleCall)cGroup.eContents().get(1);
		private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
		private final Keyword cFullStopKeyword_2_0 = (Keyword)cAlternatives_2.eContents().get(0);
		private final Keyword cHyphenMinusKeyword_2_1 = (Keyword)cAlternatives_2.eContents().get(1);
		private final Keyword cAsteriskKeyword_2_2 = (Keyword)cAlternatives_2.eContents().get(2);
		
		//Regex returns ecore::EString:
		//  (("."|"-"|"*")? ID ("."|"-"|"*")?)*;
		public ParserRule getRule() { return rule; }

		//(("."|"-"|"*")? ID ("."|"-"|"*")?)*
		public Group getGroup() { return cGroup; }

		//("."|"-"|"*")?
		public Alternatives getAlternatives_0() { return cAlternatives_0; }

		//"."
		public Keyword getFullStopKeyword_0_0() { return cFullStopKeyword_0_0; }

		//"-"
		public Keyword getHyphenMinusKeyword_0_1() { return cHyphenMinusKeyword_0_1; }

		//"*"
		public Keyword getAsteriskKeyword_0_2() { return cAsteriskKeyword_0_2; }

		//ID
		public RuleCall getIDTerminalRuleCall_1() { return cIDTerminalRuleCall_1; }

		//("."|"-"|"*")?
		public Alternatives getAlternatives_2() { return cAlternatives_2; }

		//"."
		public Keyword getFullStopKeyword_2_0() { return cFullStopKeyword_2_0; }

		//"-"
		public Keyword getHyphenMinusKeyword_2_1() { return cHyphenMinusKeyword_2_1; }

		//"*"
		public Keyword getAsteriskKeyword_2_2() { return cAsteriskKeyword_2_2; }
	}

	public class GroupIdElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "GroupId");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
		private final Keyword cFullStopKeyword_1_0 = (Keyword)cAlternatives_1.eContents().get(0);
		private final Keyword cHyphenMinusKeyword_1_1 = (Keyword)cAlternatives_1.eContents().get(1);
		
		//GroupId returns ecore::EString:
		//  (ID ("."|"-")?)*;
		public ParserRule getRule() { return rule; }

		//(ID ("."|"-")?)*
		public Group getGroup() { return cGroup; }

		//ID
		public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; }

		//("."|"-")?
		public Alternatives getAlternatives_1() { return cAlternatives_1; }

		//"."
		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }

		//"-"
		public Keyword getHyphenMinusKeyword_1_1() { return cHyphenMinusKeyword_1_1; }
	}

	public class ArtifactIdElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ArtifactId");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cIDTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Alternatives cAlternatives_1 = (Alternatives)cGroup.eContents().get(1);
		private final Keyword cFullStopKeyword_1_0 = (Keyword)cAlternatives_1.eContents().get(0);
		private final Keyword cHyphenMinusKeyword_1_1 = (Keyword)cAlternatives_1.eContents().get(1);
		
		//ArtifactId returns ecore::EString:
		//  (ID ("."|"-")?)*;
		public ParserRule getRule() { return rule; }

		//(ID ("."|"-")?)*
		public Group getGroup() { return cGroup; }

		//ID
		public RuleCall getIDTerminalRuleCall_0() { return cIDTerminalRuleCall_0; }

		//("."|"-")?
		public Alternatives getAlternatives_1() { return cAlternatives_1; }

		//"."
		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }

		//"-"
		public Keyword getHyphenMinusKeyword_1_1() { return cHyphenMinusKeyword_1_1; }
	}

	public class VersionElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Version");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cINTTerminalRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final RuleCall cINTTerminalRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
		
		//Version returns ecore::EString:
		//  INT ("." INT)*;
		public ParserRule getRule() { return rule; }

		//INT ("." INT)*
		public Group getGroup() { return cGroup; }

		//INT
		public RuleCall getINTTerminalRuleCall_0() { return cINTTerminalRuleCall_0; }

		//("." INT)*
		public Group getGroup_1() { return cGroup_1; }

		//"."
		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }

		//INT
		public RuleCall getINTTerminalRuleCall_1_1() { return cINTTerminalRuleCall_1_1; }
	}

	public class ModelElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Model");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cImportsAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cImportsImportParserRuleCall_0_0 = (RuleCall)cImportsAssignment_0.eContents().get(0);
		private final Assignment cElementsAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cElementsTypeParserRuleCall_1_0 = (RuleCall)cElementsAssignment_1.eContents().get(0);
		
		//Model:
		//  imports+=Import* elements+=Type*;
		public ParserRule getRule() { return rule; }

		//imports+=Import* elements+=Type*
		public Group getGroup() { return cGroup; }

		//imports+=Import*
		public Assignment getImportsAssignment_0() { return cImportsAssignment_0; }

		//Import
		public RuleCall getImportsImportParserRuleCall_0_0() { return cImportsImportParserRuleCall_0_0; }

		//elements+=Type*
		public Assignment getElementsAssignment_1() { return cElementsAssignment_1; }

		//Type
		public RuleCall getElementsTypeParserRuleCall_1_0() { return cElementsTypeParserRuleCall_1_0; }
	}

	public class ImportElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Import");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cImportKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cImportURIAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cImportURISTRINGTerminalRuleCall_1_0 = (RuleCall)cImportURIAssignment_1.eContents().get(0);
		
		//Import:
		//  "import" importURI=STRING;
		public ParserRule getRule() { return rule; }

		//"import" importURI=STRING
		public Group getGroup() { return cGroup; }

		//"import"
		public Keyword getImportKeyword_0() { return cImportKeyword_0; }

		//importURI=STRING
		public Assignment getImportURIAssignment_1() { return cImportURIAssignment_1; }

		//STRING
		public RuleCall getImportURISTRINGTerminalRuleCall_1_0() { return cImportURISTRINGTerminalRuleCall_1_0; }
	}

	public class TypeElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Type");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cSimpleTypeParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cEntityParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//Type:
		//  SimpleType|Entity;
		public ParserRule getRule() { return rule; }

		//SimpleType|Entity
		public Alternatives getAlternatives() { return cAlternatives; }

		//SimpleType
		public RuleCall getSimpleTypeParserRuleCall_0() { return cSimpleTypeParserRuleCall_0; }

		//Entity
		public RuleCall getEntityParserRuleCall_1() { return cEntityParserRuleCall_1; }
	}

	public class SimpleTypeElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "SimpleType");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cTypeKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		//SimpleType:
		//  "type" name=ID;
		public ParserRule getRule() { return rule; }

		//"type" name=ID
		public Group getGroup() { return cGroup; }

		//"type"
		public Keyword getTypeKeyword_0() { return cTypeKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
	}

	public class EntityElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Entity");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cEntityKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Group cGroup_2 = (Group)cGroup.eContents().get(2);
		private final Keyword cExtendsKeyword_2_0 = (Keyword)cGroup_2.eContents().get(0);
		private final Assignment cExtendsAssignment_2_1 = (Assignment)cGroup_2.eContents().get(1);
		private final CrossReference cExtendsEntityCrossReference_2_1_0 = (CrossReference)cExtendsAssignment_2_1.eContents().get(0);
		private final RuleCall cExtendsEntityIDTerminalRuleCall_2_1_0_1 = (RuleCall)cExtendsEntityCrossReference_2_1_0.eContents().get(1);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Assignment cPropertiesAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cPropertiesPropertyParserRuleCall_4_0 = (RuleCall)cPropertiesAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//Entity:
		//  "entity" name=ID ("extends" extends=[Entity])? "{" properties+=Property* "}";
		public ParserRule getRule() { return rule; }

		//"entity" name=ID ("extends" extends=[Entity])? "{" properties+=Property* "}"
		public Group getGroup() { return cGroup; }

		//"entity"
		public Keyword getEntityKeyword_0() { return cEntityKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//("extends" extends=[Entity])?
		public Group getGroup_2() { return cGroup_2; }

		//"extends"
		public Keyword getExtendsKeyword_2_0() { return cExtendsKeyword_2_0; }

		//extends=[Entity]
		public Assignment getExtendsAssignment_2_1() { return cExtendsAssignment_2_1; }

		//[Entity]
		public CrossReference getExtendsEntityCrossReference_2_1_0() { return cExtendsEntityCrossReference_2_1_0; }

		//ID
		public RuleCall getExtendsEntityIDTerminalRuleCall_2_1_0_1() { return cExtendsEntityIDTerminalRuleCall_2_1_0_1; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//properties+=Property*
		public Assignment getPropertiesAssignment_4() { return cPropertiesAssignment_4; }

		//Property
		public RuleCall getPropertiesPropertyParserRuleCall_4_0() { return cPropertiesPropertyParserRuleCall_4_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class PropertyElements implements IParserRuleAccess {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Property");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPropertyKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cColonKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cTypeAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final CrossReference cTypeTypeCrossReference_3_0 = (CrossReference)cTypeAssignment_3.eContents().get(0);
		private final RuleCall cTypeTypeIDTerminalRuleCall_3_0_1 = (RuleCall)cTypeTypeCrossReference_3_0.eContents().get(1);
		private final Assignment cManyAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final Keyword cManyLeftSquareBracketRightSquareBracketKeyword_4_0 = (Keyword)cManyAssignment_4.eContents().get(0);
		
		//Property:
		//  "property" name=ID ":" type=[Type] many?="[]"?;
		public ParserRule getRule() { return rule; }

		//"property" name=ID ":" type=[Type] many?="[]"?
		public Group getGroup() { return cGroup; }

		//"property"
		public Keyword getPropertyKeyword_0() { return cPropertyKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//":"
		public Keyword getColonKeyword_2() { return cColonKeyword_2; }

		//type=[Type]
		public Assignment getTypeAssignment_3() { return cTypeAssignment_3; }

		//[Type]
		public CrossReference getTypeTypeCrossReference_3_0() { return cTypeTypeCrossReference_3_0; }

		//ID
		public RuleCall getTypeTypeIDTerminalRuleCall_3_0_1() { return cTypeTypeIDTerminalRuleCall_3_0_1; }

		//many?="[]"?
		public Assignment getManyAssignment_4() { return cManyAssignment_4; }

		//"[]"
		public Keyword getManyLeftSquareBracketRightSquareBracketKeyword_4_0() { return cManyLeftSquareBracketRightSquareBracketKeyword_4_0; }
	}
	
	
	private ProjectElements pProject;
	private GAElements pGA;
	private DependencyElements pDependency;
	private MappedDependencyElements pMappedDependency;
	private PluginElements pPlugin;
	private ExtensionElements pExtension;
	private RegexElements pRegex;
	private GroupIdElements pGroupId;
	private ArtifactIdElements pArtifactId;
	private VersionElements pVersion;
	private ModelElements pModel;
	private ImportElements pImport;
	private TypeElements pType;
	private SimpleTypeElements pSimpleType;
	private EntityElements pEntity;
	private PropertyElements pProperty;
	
	private final GrammarProvider grammarProvider;

	private TerminalsGrammarAccess gaTerminals;

	@Inject
	public DependencyDslGrammarAccess(GrammarProvider grammarProvider,
		TerminalsGrammarAccess gaTerminals) {
		this.grammarProvider = grammarProvider;
		this.gaTerminals = gaTerminals;
	}
	
	public Grammar getGrammar() {	
		return grammarProvider.getGrammar(this);
	}
	

	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
		return gaTerminals;
	}

	
	//Project:
	//  "project" "{" "groupId" ":" groupId=GroupId "artifactId" ":" artifactId=ArtifactId
	//  "version" ":" version=Version ("dependencies" "{" dependencies+=Dependency* "}")? (
	//  "mappedDependencies" "{" mappedDependencies+=MappedDependency* "}")? ("plugins" "{"
	//  plugins+=Plugin* "}")? ("extensions" "{" extensions+=Extension* "}")? "}";
	public ProjectElements getProjectAccess() {
		return (pProject != null) ? pProject : (pProject = new ProjectElements());
	}
	
	public ParserRule getProjectRule() {
		return getProjectAccess().getRule();
	}

	//GA:
	//  "groupId" ":" groupId=GroupId "," "artifactId" ":" artifactId=ArtifactId;
	public GAElements getGAAccess() {
		return (pGA != null) ? pGA : (pGA = new GAElements());
	}
	
	public ParserRule getGARule() {
		return getGAAccess().getRule();
	}

	//Dependency:
	//  "groupId" ":" groupId=GroupId "," "artifactId" ":" artifactId=ArtifactId "," "version"
	//  ":" version=Version ("," "path"|"url")? ("," "scope")? ("," "classifier")? ("," "type")? (
	//  "," "exclusions" "{" exclusions+=GA* "}")?; 
	//	
	//  
	//  //
	//   //
	//   //
	//            
	//        
	//         
	//  
	//  //
	//   //
	//   //
	//           
	//      
	//      
	//      
	//  
	//  //
	//   //
	//   //
	public DependencyElements getDependencyAccess() {
		return (pDependency != null) ? pDependency : (pDependency = new DependencyElements());
	}
	
	public ParserRule getDependencyRule() {
		return getDependencyAccess().getRule();
	}

	//MappedDependency:
	//  ("path"|"url") ":" STRING ("," "exclude" ":" STRING)? ("," "groupId" ":" groupId=GroupId)?
	//  ("," "artifactId" ":" artifactId=ArtifactId)? ("," "version" ":" version=Version)?; 	
	//
	//  
	//  //
	//   //
	//   //
	public MappedDependencyElements getMappedDependencyAccess() {
		return (pMappedDependency != null) ? pMappedDependency : (pMappedDependency = new MappedDependencyElements());
	}
	
	public ParserRule getMappedDependencyRule() {
		return getMappedDependencyAccess().getRule();
	}

	//Plugin:
	//  "groupId" ":" groupId=GroupId "," "artifactId" ":" artifactId=ArtifactId "," "version"
	//  ":" version=Version ("," "phase" ":" ID)? ("," "extensionId" ":" ID)? ("," "execute" "{"
	//  STRING* "}")?; 	
	//
	//	
	//  
	//  //
	//   //
	//   //
	//            
	//        
	//         
	//                   
	//          
	//  //
	//   //
	public PluginElements getPluginAccess() {
		return (pPlugin != null) ? pPlugin : (pPlugin = new PluginElements());
	}
	
	public ParserRule getPluginRule() {
		return getPluginAccess().getRule();
	}

	//Extension:
	//  "groupId" ":" groupId=GroupId "," "artifactId" ":" artifactId=ArtifactId "," "version"
	//  ":" version=Version "," "extensionId" ":" ID "," "execute" "{" STRING* "}";
	public ExtensionElements getExtensionAccess() {
		return (pExtension != null) ? pExtension : (pExtension = new ExtensionElements());
	}
	
	public ParserRule getExtensionRule() {
		return getExtensionAccess().getRule();
	}

	//Regex returns ecore::EString:
	//  (("."|"-"|"*")? ID ("."|"-"|"*")?)*;
	public RegexElements getRegexAccess() {
		return (pRegex != null) ? pRegex : (pRegex = new RegexElements());
	}
	
	public ParserRule getRegexRule() {
		return getRegexAccess().getRule();
	}

	//GroupId returns ecore::EString:
	//  (ID ("."|"-")?)*;
	public GroupIdElements getGroupIdAccess() {
		return (pGroupId != null) ? pGroupId : (pGroupId = new GroupIdElements());
	}
	
	public ParserRule getGroupIdRule() {
		return getGroupIdAccess().getRule();
	}

	//ArtifactId returns ecore::EString:
	//  (ID ("."|"-")?)*;
	public ArtifactIdElements getArtifactIdAccess() {
		return (pArtifactId != null) ? pArtifactId : (pArtifactId = new ArtifactIdElements());
	}
	
	public ParserRule getArtifactIdRule() {
		return getArtifactIdAccess().getRule();
	}

	//Version returns ecore::EString:
	//  INT ("." INT)*;
	public VersionElements getVersionAccess() {
		return (pVersion != null) ? pVersion : (pVersion = new VersionElements());
	}
	
	public ParserRule getVersionRule() {
		return getVersionAccess().getRule();
	}

	//Model:
	//  imports+=Import* elements+=Type*;
	public ModelElements getModelAccess() {
		return (pModel != null) ? pModel : (pModel = new ModelElements());
	}
	
	public ParserRule getModelRule() {
		return getModelAccess().getRule();
	}

	//Import:
	//  "import" importURI=STRING;
	public ImportElements getImportAccess() {
		return (pImport != null) ? pImport : (pImport = new ImportElements());
	}
	
	public ParserRule getImportRule() {
		return getImportAccess().getRule();
	}

	//Type:
	//  SimpleType|Entity;
	public TypeElements getTypeAccess() {
		return (pType != null) ? pType : (pType = new TypeElements());
	}
	
	public ParserRule getTypeRule() {
		return getTypeAccess().getRule();
	}

	//SimpleType:
	//  "type" name=ID;
	public SimpleTypeElements getSimpleTypeAccess() {
		return (pSimpleType != null) ? pSimpleType : (pSimpleType = new SimpleTypeElements());
	}
	
	public ParserRule getSimpleTypeRule() {
		return getSimpleTypeAccess().getRule();
	}

	//Entity:
	//  "entity" name=ID ("extends" extends=[Entity])? "{" properties+=Property* "}";
	public EntityElements getEntityAccess() {
		return (pEntity != null) ? pEntity : (pEntity = new EntityElements());
	}
	
	public ParserRule getEntityRule() {
		return getEntityAccess().getRule();
	}

	//Property:
	//  "property" name=ID ":" type=[Type] many?="[]"?;
	public PropertyElements getPropertyAccess() {
		return (pProperty != null) ? pProperty : (pProperty = new PropertyElements());
	}
	
	public ParserRule getPropertyRule() {
		return getPropertyAccess().getRule();
	}

	//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:
	//  "\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" |
	//  "t" | "n" | "f" | "r" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'";
	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();
	} 
}
