docs: @Override
  	public EObject create(EClass eClass) {
  		switch (eClass.getClassifierID()) {
  			case XtextPackage.GRAMMAR: return createGrammar();
  			case XtextPackage.ABSTRACT_RULE: return createAbstractRule();
  			case XtextPackage.ABSTRACT_METAMODEL_DECLARATION: return createAbstractMetamodelDeclaration();
  			case XtextPackage.GENERATED_METAMODEL: return createGeneratedMetamodel();
  			case XtextPackage.REFERENCED_METAMODEL: return createReferencedMetamodel();
  			case XtextPackage.PARSER_RULE: return createParserRule();
  			case XtextPackage.TYPE_REF: return createTypeRef();
  			case XtextPackage.ABSTRACT_ELEMENT: return createAbstractElement();
  			case XtextPackage.ACTION: return createAction();
  			case XtextPackage.KEYWORD: return createKeyword();
  			case XtextPackage.RULE_CALL: return createRuleCall();
  			case XtextPackage.ASSIGNMENT: return createAssignment();
  			case XtextPackage.CROSS_REFERENCE: return createCrossReference();
  			case XtextPackage.TERMINAL_RULE: return createTerminalRule();
  			case XtextPackage.ABSTRACT_NEGATED_TOKEN: return createAbstractNegatedToken();
  			case XtextPackage.NEGATED_TOKEN: return createNegatedToken();
  			case XtextPackage.UNTIL_TOKEN: return createUntilToken();
  			case XtextPackage.WILDCARD: return createWildcard();
  			case XtextPackage.ENUM_RULE: return createEnumRule();
  			case XtextPackage.ENUM_LITERAL_DECLARATION: return createEnumLiteralDeclaration();
  			case XtextPackage.ALTERNATIVES: return createAlternatives();
  			case XtextPackage.UNORDERED_GROUP: return createUnorderedGroup();
  			case XtextPackage.GROUP: return createGroup();
  			case XtextPackage.CHARACTER_RANGE: return createCharacterRange();
  			case XtextPackage.COMPOUND_ELEMENT: return createCompoundElement();
  			case XtextPackage.EOF: return createEOF();
  			case XtextPackage.PARAMETER: return createParameter();
  			case XtextPackage.NAMED_ARGUMENT: return createNamedArgument();
  			case XtextPackage.CONDITION: return createCondition();
  			case XtextPackage.CONJUNCTION: return createConjunction();
  			case XtextPackage.NEGATION: return createNegation();
  			case XtextPackage.DISJUNCTION: return createDisjunction();
  			case XtextPackage.COMPOSITE_CONDITION: return createCompositeCondition();
  			case XtextPackage.PARAMETER_REFERENCE: return createParameterReference();
  			case XtextPackage.LITERAL_CONDITION: return createLiteralCondition();
  			case XtextPackage.ANNOTATION: return createAnnotation();
  			default:
  				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
  		}
  	}