Class PatternLanguageValidator
- java.lang.Object
-
- org.eclipse.xtext.validation.AbstractInjectableValidator
-
- org.eclipse.xtext.validation.AbstractDeclarativeValidator
-
- org.eclipse.viatra.query.patternlanguage.emf.validation.PatternLanguageValidator
-
- All Implemented Interfaces:
org.eclipse.emf.ecore.EValidator,IIssueCallback,org.eclipse.xtext.validation.ValidationMessageAcceptor
public class PatternLanguageValidator extends org.eclipse.xtext.validation.AbstractDeclarativeValidator implements IIssueCallback
Validators for Core Pattern Language.Validators implemented:
- Duplicate parameter in pattern declaration
- Duplicate pattern definition (name duplication only, better calculation is needed)
- Pattern call parameter checking (only the number of the parameters, types not supported yet)
- Empty PatternBody check
- Check for recursive pattern calls
- Since:
- 2.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.xtext.validation.AbstractDeclarativeValidator
org.eclipse.xtext.validation.AbstractDeclarativeValidator.MethodWrapper, org.eclipse.xtext.validation.AbstractDeclarativeValidator.State, org.eclipse.xtext.validation.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
-
Fields inherited from class org.eclipse.xtext.validation.AbstractInjectableValidator
CURRENT_LANGUAGE_NAME, ISSUE_SEVERITIES
-
-
Constructor Summary
Constructors Constructor Description PatternLanguageValidator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcheckAggregatorCallTypes(AggregatedValue expression)Check for mistyped aggregator expressionsvoidcheckAggregatorExpression(AggregatedValue expression)Checks if an aggregator expression has the correct number (0 or 1) aggregate variables.voidcheckAnnotation(Annotation annotation)voidcheckApplicabilityOfTransitiveClosureInPatternCall(CallableRelation call)voidcheckCompareConstraints(CompareConstraint constraint)voidcheckEmbeddedAggregatorLength(AggregatedValue value)voidcheckForImpureJavaCallsInCheckConstraints(CheckConstraint checkConstraint)voidcheckForImpureJavaCallsInEvalExpressions(FunctionEvaluationValue eval)voidcheckNegativeCallParameters(PatternCompositionConstraint constraint)voidcheckPackageDeclaration(PatternModel model)voidcheckPatternBody(PatternBody body)voidcheckPatternCallParameters(PatternCall call)voidcheckPatternParameters(Pattern pattern)voidcheckPatterns(PatternModel model)voidcheckPrivatePatternCall(PatternCall call)voidcheckRecursivePatternCall(PatternCall call)voidcheckReturnTypeOfCheckConstraints(CheckConstraint checkConstraint)voidcheckReturnTypeOfFunctionEvaluationValues(FunctionEvaluationValue evalValue)voidcheckValueReference(VariableReference value)Checks if an aggregateVariableReferenceis used only in the right context, that is, in anAggregatedValuewith an aggregator requiring aggregator parameters.voidcheckVariableNames(PatternBody body)voidenableQueryGroupGeneration(boolean queryGroupGenerationEnabled)voiderror(java.lang.String message, org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EStructuralFeature feature, java.lang.String code, java.lang.String... issueData)protected java.util.List<org.eclipse.emf.ecore.EPackage>getEPackages()protected java.lang.StringgetFormattedArgumentsList(java.util.List<ValueReference> arguments)voidinfo(java.lang.String message, org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EStructuralFeature feature, java.lang.String code, java.lang.String... issueData)voidregister(org.eclipse.xtext.validation.EValidatorRegistrar reg)voidwarning(java.lang.String message, org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EStructuralFeature feature, java.lang.String code, java.lang.String... issueData)-
Methods inherited from class org.eclipse.xtext.validation.AbstractDeclarativeValidator
acceptError, acceptError, acceptInfo, acceptInfo, acceptWarning, acceptWarning, addIssue, addIssue, addIssue, addIssue, addIssue, addIssueToState, checkDone, checkIsFromCurrentlyCheckedResource, createDiagnostic, createDiagnostic, createMethodWrapper, error, error, error, error, error, error, error, getCancelIndicator, getChain, getCheckMode, getContext, getCurrentMethod, getCurrentObject, getIssueSeverities, getMessageAcceptor, guard, handleExceptionDuringValidation, info, info, info, info, info, info, info, internalValidate, isIgnored, newInstance, setInjector, setMessageAcceptor, toDiagnosticSeverity, warning, warning, warning, warning, warning, warning, warning
-
-
-
-
Field Detail
-
DUPLICATE_VARIABLE_MESSAGE
public static final java.lang.String DUPLICATE_VARIABLE_MESSAGE
- See Also:
- Constant Field Values
-
DUPLICATE_PATTERN_DEFINITION_MESSAGE
public static final java.lang.String DUPLICATE_PATTERN_DEFINITION_MESSAGE
- See Also:
- Constant Field Values
-
CONFLICTING_SPECIFICATION_NAME_MESSAGE
public static final java.lang.String CONFLICTING_SPECIFICATION_NAME_MESSAGE
- Since:
- 1.7
- See Also:
- Constant Field Values
-
UNKNOWN_ANNOTATION_ATTRIBUTE
public static final java.lang.String UNKNOWN_ANNOTATION_ATTRIBUTE
- See Also:
- Constant Field Values
-
MISSING_ANNOTATION_ATTRIBUTE
public static final java.lang.String MISSING_ANNOTATION_ATTRIBUTE
- See Also:
- Constant Field Values
-
ANNOTATION_PARAMETER_TYPE_ERROR
public static final java.lang.String ANNOTATION_PARAMETER_TYPE_ERROR
- See Also:
- Constant Field Values
-
TRANSITIVE_CLOSURE_ARITY_IN_PATTERNCALL
public static final java.lang.String TRANSITIVE_CLOSURE_ARITY_IN_PATTERNCALL
- See Also:
- Constant Field Values
-
TRANSITIVE_CLOSURE_ONLY_IN_POSITIVE_COMPOSITION
public static final java.lang.String TRANSITIVE_CLOSURE_ONLY_IN_POSITIVE_COMPOSITION
- See Also:
- Constant Field Values
-
RECURSIVE_PATTERN_CALL
public static final java.lang.String RECURSIVE_PATTERN_CALL
- See Also:
- Constant Field Values
-
RECURSIVE_PATTERN_CALL_TRANSITIVE
public static final java.lang.String RECURSIVE_PATTERN_CALL_TRANSITIVE
- Since:
- 2.0
- See Also:
- Constant Field Values
-
RECURSIVE_PATTERN_CALL_NEGATIVE
public static final java.lang.String RECURSIVE_PATTERN_CALL_NEGATIVE
- Since:
- 2.0
- See Also:
- Constant Field Values
-
RECURSIVE_PATTERN_CALL_AGGREGATION
public static final java.lang.String RECURSIVE_PATTERN_CALL_AGGREGATION
- Since:
- 2.9
- See Also:
- Constant Field Values
-
INVALID_AGGREGATE_MESSAGE
public static final java.lang.String INVALID_AGGREGATE_MESSAGE
- Since:
- 1.4
- See Also:
- Constant Field Values
-
UNEXPECTED_AGGREGATE_MESSAGE
public static final java.lang.String UNEXPECTED_AGGREGATE_MESSAGE
- Since:
- 1.4
- See Also:
- Constant Field Values
-
EXACTLY_ONE_AGGREGATE_MESSAGE
public static final java.lang.String EXACTLY_ONE_AGGREGATE_MESSAGE
- Since:
- 1.4
- See Also:
- Constant Field Values
-
MISSING_AGGREGATE_MESSAGE
public static final java.lang.String MISSING_AGGREGATE_MESSAGE
- Since:
- 1.4
- See Also:
- Constant Field Values
-
VARIABLE_NAME_DUBIUS_REUSE_MESSAGE_SINGLEUSE
public static final java.lang.String VARIABLE_NAME_DUBIUS_REUSE_MESSAGE_SINGLEUSE
- Since:
- 1.4
- See Also:
- Constant Field Values
-
VARIABLE_NAME_DUBIUS_REUSE_MESSAGE_AGGREGATE
public static final java.lang.String VARIABLE_NAME_DUBIUS_REUSE_MESSAGE_AGGREGATE
- Since:
- 1.4
- See Also:
- Constant Field Values
-
-
Method Detail
-
enableQueryGroupGeneration
@Inject public void enableQueryGroupGeneration(boolean queryGroupGenerationEnabled)
- Since:
- 2.3
-
register
public void register(org.eclipse.xtext.validation.EValidatorRegistrar reg)
- Overrides:
registerin classorg.eclipse.xtext.validation.AbstractInjectableValidator
-
getEPackages
protected java.util.List<org.eclipse.emf.ecore.EPackage> getEPackages()
- Overrides:
getEPackagesin classorg.eclipse.xtext.validation.AbstractInjectableValidator
-
checkValueReference
public void checkValueReference(VariableReference value)
Checks if an aggregateVariableReferenceis used only in the right context, that is, in anAggregatedValuewith an aggregator requiring aggregator parameters.- Parameters:
value- theVariableReferenceinstance- Since:
- 1.4
-
checkAggregatorExpression
public void checkAggregatorExpression(AggregatedValue expression)
Checks if an aggregator expression has the correct number (0 or 1) aggregate variables.- Parameters:
expression- the aggregator expression- Since:
- 1.4
-
checkAggregatorCallTypes
public void checkAggregatorCallTypes(AggregatedValue expression)
Check for mistyped aggregator expressions- Since:
- 1.7
-
checkEmbeddedAggregatorLength
public void checkEmbeddedAggregatorLength(AggregatedValue value)
-
checkPatternParameters
public void checkPatternParameters(Pattern pattern)
-
checkPrivatePatternCall
public void checkPrivatePatternCall(PatternCall call)
-
checkPatternCallParameters
public void checkPatternCallParameters(PatternCall call)
-
checkApplicabilityOfTransitiveClosureInPatternCall
public void checkApplicabilityOfTransitiveClosureInPatternCall(CallableRelation call)
-
checkPatterns
public void checkPatterns(PatternModel model)
-
checkPatternBody
public void checkPatternBody(PatternBody body)
-
checkAnnotation
public void checkAnnotation(Annotation annotation)
-
checkCompareConstraints
public void checkCompareConstraints(CompareConstraint constraint)
-
checkRecursivePatternCall
public void checkRecursivePatternCall(PatternCall call)
-
getFormattedArgumentsList
protected java.lang.String getFormattedArgumentsList(java.util.List<ValueReference> arguments)
-
checkPackageDeclaration
public void checkPackageDeclaration(PatternModel model)
-
checkReturnTypeOfCheckConstraints
public void checkReturnTypeOfCheckConstraints(CheckConstraint checkConstraint)
-
checkReturnTypeOfFunctionEvaluationValues
public void checkReturnTypeOfFunctionEvaluationValues(FunctionEvaluationValue evalValue)
- Since:
- 2.7
-
checkVariableNames
public void checkVariableNames(PatternBody body)
-
checkForImpureJavaCallsInCheckConstraints
public void checkForImpureJavaCallsInCheckConstraints(CheckConstraint checkConstraint)
-
checkForImpureJavaCallsInEvalExpressions
public void checkForImpureJavaCallsInEvalExpressions(FunctionEvaluationValue eval)
-
checkNegativeCallParameters
public void checkNegativeCallParameters(PatternCompositionConstraint constraint)
-
info
public void info(java.lang.String message, org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EStructuralFeature feature, java.lang.String code, java.lang.String... issueData)- Specified by:
infoin interfaceIIssueCallback- Overrides:
infoin classorg.eclipse.xtext.validation.AbstractDeclarativeValidator
-
warning
public void warning(java.lang.String message, org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EStructuralFeature feature, java.lang.String code, java.lang.String... issueData)- Specified by:
warningin interfaceIIssueCallback- Overrides:
warningin classorg.eclipse.xtext.validation.AbstractDeclarativeValidator
-
error
public void error(java.lang.String message, org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EStructuralFeature feature, java.lang.String code, java.lang.String... issueData)- Specified by:
errorin interfaceIIssueCallback- Overrides:
errorin classorg.eclipse.xtext.validation.AbstractDeclarativeValidator
-
-