org.eclipse.xtext.xtext
Class XtextValidator

java.lang.Object
  extended by org.eclipse.xtext.validation.AbstractInjectableValidator
      extended by org.eclipse.xtext.validation.AbstractDeclarativeValidator
          extended by org.eclipse.xtext.xtext.XtextValidator
All Implemented Interfaces:
org.eclipse.emf.ecore.EValidator, ValidationMessageAcceptor

public class XtextValidator
extends AbstractDeclarativeValidator

Author:
Sebastian Zarnekow - Initial contribution and API, Michael Clay

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.xtext.validation.AbstractDeclarativeValidator
AbstractDeclarativeValidator.State, AbstractDeclarativeValidator.StateAccess
 
Nested classes/interfaces inherited from interface org.eclipse.emf.ecore.EValidator
org.eclipse.emf.ecore.EValidator.Descriptor, org.eclipse.emf.ecore.EValidator.PatternMatcher, org.eclipse.emf.ecore.EValidator.Registry, org.eclipse.emf.ecore.EValidator.SubstitutionLabelProvider, org.eclipse.emf.ecore.EValidator.ValidationDelegate
 
Field Summary
static java.lang.String EMPTY_ENUM_LITERAL
           
static java.lang.String EMPTY_GENERATED_PACKAGE
           
static java.lang.String INVALID_ACTION_USAGE
           
static java.lang.String INVALID_HIDDEN_TOKEN
           
static java.lang.String INVALID_HIDDEN_TOKEN_FRAGMENT
           
static java.lang.String INVALID_METAMODEL_NAME
           
 
Fields inherited from class org.eclipse.xtext.validation.AbstractInjectableValidator
CURRENT_LANGUAGE_NAME
 
Fields inherited from interface org.eclipse.xtext.validation.ValidationMessageAcceptor
INSIGNIFICANT_INDEX
 
Fields inherited from interface org.eclipse.emf.ecore.EValidator
MARKER, RELATED_URIS_ATTRIBUTE, URI_ATTRIBUTE
 
Constructor Summary
XtextValidator()
           
 
Method Summary
 void checkActionInUnorderedGroup(Action action)
           
 void checkAssignedActionAfterAssignment(Action action)
           
 void checkCrossReferenceTerminal(CrossReference reference)
           
 boolean checkCrossReferenceTerminal(RuleCall call)
           
 void checkCrossReferenceType(CrossReference reference)
           
 void checkEnumLiteralIsUnique(EnumLiteralDeclaration decl)
           
 void checkEnumLiteralIsValid(EnumLiteralDeclaration decl)
           
 void checkFirstRule(Grammar g)
           
 void checkForLeftRecursion(Grammar grammar)
           
 void checkForOverriddenValue(ParserRule rule)
           
 void checkGeneratedEnumIsValid(EnumLiteralDeclaration decl)
           
 void checkGeneratedMetamodel(GeneratedMetamodel metamodel)
           
 void checkGeneratedPackage(GeneratedMetamodel metamodel)
           
 void checkGeneratedPackage(GeneratedMetamodel metamodel, org.eclipse.emf.ecore.util.Diagnostician diagnostician, java.util.Map<?,?> params)
           
 void checkGeneratedPackageForNameClashes(GeneratedMetamodel metamodel)
           
 void checkGeneratedPackageNotEmpty(GeneratedMetamodel metamodel)
           
 void checkGrammarName(Grammar g)
           
 void checkGrammarRecursiveReference(Grammar grammar)
           
 void checkGrammarUsesMaxOneOther(Grammar grammar)
           
protected  void checkHiddenTokenIsNotAFragment(org.eclipse.emf.ecore.EObject owner, java.util.List<AbstractRule> hiddenTokens, org.eclipse.emf.ecore.EReference reference)
           
 void checkHiddenTokenIsNotAFragment(Grammar grammar)
           
 void checkHiddenTokenIsNotAFragment(ParserRule rule)
           
 void checkInstanceCreated(ParserRule rule)
           
 void checkInstanceCreatedForEntryRule(ParserRule rule)
           
 void checkInstantiatedType(Action action)
           
 void checkKeywordHidesTerminalRule(Keyword keyword)
           
 void checkMetamodelUris(AbstractMetamodelDeclaration declaration)
           
 void checkPackageImport(Grammar grammar)
           
 void checkReferencedMetamodel(ReferencedMetamodel metamodel)
           
 void checkRuleCallInUnorderedGroup(RuleCall call)
           
 void checkRuleName(AbstractRule rule)
           
 void checkTerminalFragmentCalledFromTerminalRule(RuleCall call)
           
 void checkUnassignedActionAfterAssignment(Action action)
           
 void checkUnassignedRuleCallAllowed(RuleCall call)
           
 void checkUnorderedGroupIsNotPredicated(Grammar grammar)
           
 void createMessageForNameClashes(com.google.common.collect.Multimap<java.lang.String,org.eclipse.emf.ecore.ENamedElement> nameToElement)
           
 boolean createMessageForSource(org.eclipse.emf.common.util.Diagnostic diagnostic, org.eclipse.emf.ecore.EObject object, ValidationMessageAcceptor acceptor)
           
 boolean createMessageForSource(java.lang.String message, java.lang.String code, int severity, org.eclipse.emf.ecore.EObject object, ValidationMessageAcceptor acceptor)
           
 void doCreateMessage(org.eclipse.emf.common.util.Diagnostic diagnostic, org.eclipse.emf.ecore.EObject object, org.eclipse.emf.ecore.EStructuralFeature feature, ValidationMessageAcceptor acceptor)
           
 void doCreateMessage(java.lang.String message, java.lang.String code, int severity, org.eclipse.emf.ecore.EObject context, org.eclipse.emf.ecore.EStructuralFeature feature, ValidationMessageAcceptor acceptor)
           
protected  java.util.Set<org.eclipse.emf.ecore.EPackage> findReferencedPackages(org.eclipse.emf.ecore.EPackage pack)
           
protected  java.util.List<org.eclipse.emf.ecore.EPackage> getEPackages()
           
 
Methods inherited from class org.eclipse.xtext.validation.AbstractDeclarativeValidator
acceptError, acceptError, acceptInfo, acceptInfo, acceptWarning, acceptWarning, checkDone, createDiagnostic, createDiagnostic, error, error, error, error, error, error, error, getChain, getCheckMode, getContext, getCurrentMethod, getCurrentObject, getMessageAcceptor, guard, info, info, info, info, info, info, internalValidate, newInstance, setInjector, setMessageAcceptor, toDiagnosticSeverity, warning, warning, warning, warning, warning, warning, warning
 
Methods inherited from class org.eclipse.xtext.validation.AbstractInjectableValidator
getCurrentLanguage, isLanguageSpecific, isResponsible, register, validate, validate, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INVALID_METAMODEL_NAME

public static final java.lang.String INVALID_METAMODEL_NAME
See Also:
Constant Field Values

INVALID_ACTION_USAGE

public static final java.lang.String INVALID_ACTION_USAGE
See Also:
Constant Field Values

EMPTY_ENUM_LITERAL

public static final java.lang.String EMPTY_ENUM_LITERAL
See Also:
Constant Field Values

INVALID_HIDDEN_TOKEN

public static final java.lang.String INVALID_HIDDEN_TOKEN
See Also:
Constant Field Values

INVALID_HIDDEN_TOKEN_FRAGMENT

public static final java.lang.String INVALID_HIDDEN_TOKEN_FRAGMENT
See Also:
Constant Field Values

EMPTY_GENERATED_PACKAGE

public static final java.lang.String EMPTY_GENERATED_PACKAGE
See Also:
Constant Field Values
Constructor Detail

XtextValidator

public XtextValidator()
Method Detail

getEPackages

protected java.util.List<org.eclipse.emf.ecore.EPackage> getEPackages()
Overrides:
getEPackages in class AbstractInjectableValidator

checkGrammarUsesMaxOneOther

public void checkGrammarUsesMaxOneOther(Grammar grammar)

checkGrammarRecursiveReference

public void checkGrammarRecursiveReference(Grammar grammar)

checkGrammarName

public void checkGrammarName(Grammar g)

checkFirstRule

public void checkFirstRule(Grammar g)

checkGeneratedMetamodel

public void checkGeneratedMetamodel(GeneratedMetamodel metamodel)

checkGeneratedPackage

public void checkGeneratedPackage(GeneratedMetamodel metamodel)

checkGeneratedPackage

public void checkGeneratedPackage(GeneratedMetamodel metamodel,
                                  org.eclipse.emf.ecore.util.Diagnostician diagnostician,
                                  java.util.Map<?,?> params)

checkGeneratedPackageForNameClashes

public void checkGeneratedPackageForNameClashes(GeneratedMetamodel metamodel)

checkGeneratedPackageNotEmpty

public void checkGeneratedPackageNotEmpty(GeneratedMetamodel metamodel)

createMessageForNameClashes

public void createMessageForNameClashes(com.google.common.collect.Multimap<java.lang.String,org.eclipse.emf.ecore.ENamedElement> nameToElement)

createMessageForSource

public boolean createMessageForSource(org.eclipse.emf.common.util.Diagnostic diagnostic,
                                      org.eclipse.emf.ecore.EObject object,
                                      ValidationMessageAcceptor acceptor)

doCreateMessage

public void doCreateMessage(org.eclipse.emf.common.util.Diagnostic diagnostic,
                            org.eclipse.emf.ecore.EObject object,
                            org.eclipse.emf.ecore.EStructuralFeature feature,
                            ValidationMessageAcceptor acceptor)

createMessageForSource

public boolean createMessageForSource(java.lang.String message,
                                      java.lang.String code,
                                      int severity,
                                      org.eclipse.emf.ecore.EObject object,
                                      ValidationMessageAcceptor acceptor)

doCreateMessage

public void doCreateMessage(java.lang.String message,
                            java.lang.String code,
                            int severity,
                            org.eclipse.emf.ecore.EObject context,
                            org.eclipse.emf.ecore.EStructuralFeature feature,
                            ValidationMessageAcceptor acceptor)

checkReferencedMetamodel

public void checkReferencedMetamodel(ReferencedMetamodel metamodel)
                              throws ValueConverterException
Throws:
ValueConverterException

checkMetamodelUris

public void checkMetamodelUris(AbstractMetamodelDeclaration declaration)

checkPackageImport

public void checkPackageImport(Grammar grammar)

findReferencedPackages

protected java.util.Set<org.eclipse.emf.ecore.EPackage> findReferencedPackages(org.eclipse.emf.ecore.EPackage pack)

checkCrossReferenceTerminal

public void checkCrossReferenceTerminal(CrossReference reference)

checkCrossReferenceTerminal

public boolean checkCrossReferenceTerminal(RuleCall call)

checkRuleName

public void checkRuleName(AbstractRule rule)

checkUnassignedActionAfterAssignment

public void checkUnassignedActionAfterAssignment(Action action)

checkUnassignedRuleCallAllowed

public void checkUnassignedRuleCallAllowed(RuleCall call)

checkTerminalFragmentCalledFromTerminalRule

public void checkTerminalFragmentCalledFromTerminalRule(RuleCall call)

checkAssignedActionAfterAssignment

public void checkAssignedActionAfterAssignment(Action action)

checkEnumLiteralIsUnique

public void checkEnumLiteralIsUnique(EnumLiteralDeclaration decl)

checkGeneratedEnumIsValid

public void checkGeneratedEnumIsValid(EnumLiteralDeclaration decl)

checkEnumLiteralIsValid

public void checkEnumLiteralIsValid(EnumLiteralDeclaration decl)

checkForOverriddenValue

public void checkForOverriddenValue(ParserRule rule)

checkInstanceCreated

public void checkInstanceCreated(ParserRule rule)

checkInstanceCreatedForEntryRule

public void checkInstanceCreatedForEntryRule(ParserRule rule)

checkKeywordHidesTerminalRule

public void checkKeywordHidesTerminalRule(Keyword keyword)

checkForLeftRecursion

public void checkForLeftRecursion(Grammar grammar)

checkActionInUnorderedGroup

public void checkActionInUnorderedGroup(Action action)

checkRuleCallInUnorderedGroup

public void checkRuleCallInUnorderedGroup(RuleCall call)

checkCrossReferenceType

public void checkCrossReferenceType(CrossReference reference)

checkInstantiatedType

public void checkInstantiatedType(Action action)

checkHiddenTokenIsNotAFragment

public void checkHiddenTokenIsNotAFragment(ParserRule rule)

checkHiddenTokenIsNotAFragment

public void checkHiddenTokenIsNotAFragment(Grammar grammar)

checkHiddenTokenIsNotAFragment

protected void checkHiddenTokenIsNotAFragment(org.eclipse.emf.ecore.EObject owner,
                                              java.util.List<AbstractRule> hiddenTokens,
                                              org.eclipse.emf.ecore.EReference reference)

checkUnorderedGroupIsNotPredicated

public void checkUnorderedGroupIsNotPredicated(Grammar grammar)