org.eclipse.xtext.validation.impl
Class ConcreteSyntaxConstraintProvider

java.lang.Object
  extended by org.eclipse.xtext.validation.impl.ConcreteSyntaxConstraintProvider
All Implemented Interfaces:
IConcreteSyntaxConstraintProvider

public class ConcreteSyntaxConstraintProvider
extends java.lang.Object
implements IConcreteSyntaxConstraintProvider

Author:
Moritz Eysholdt - Initial contribution and API

Nested Class Summary
static class ConcreteSyntaxConstraintProvider.SyntaxConstraintNode
           
 
Nested classes/interfaces inherited from interface org.eclipse.xtext.validation.IConcreteSyntaxConstraintProvider
IConcreteSyntaxConstraintProvider.ConstraintType, IConcreteSyntaxConstraintProvider.ISyntaxConstraint
 
Field Summary
protected  Grammar grammar
           
protected  IConcreteSyntaxConstraintProvider.ISyntaxConstraint INVALID_RULE
           
protected  java.util.Map<ParserRule,IConcreteSyntaxConstraintProvider.ISyntaxConstraint> rule2element
           
protected  java.util.Map<org.eclipse.emf.ecore.EClass,java.util.List<IConcreteSyntaxConstraintProvider.ISyntaxConstraint>> type2Elements
           
protected static java.util.Set<org.eclipse.emf.ecore.EClass> UNINITIALIZED
           
protected  java.util.Set<ParserRule> validRules
           
 
Constructor Summary
ConcreteSyntaxConstraintProvider()
           
 
Method Summary
protected  void collectReachableRules(ParserRule pr, java.util.Set<ParserRule> rules, java.util.Set<ParserRule> visited)
           
protected  boolean containsRelevantElement(AbstractElement ele)
           
protected  IConcreteSyntaxConstraintProvider.ISyntaxConstraint createElement(org.eclipse.emf.ecore.EObject obj)
           
protected  IConcreteSyntaxConstraintProvider.ISyntaxConstraint createElement(IConcreteSyntaxConstraintProvider.ConstraintType type, AbstractElement ele, org.eclipse.emf.ecore.EClass semanticType, boolean multiple, boolean optional)
           
protected  IConcreteSyntaxConstraintProvider.ISyntaxConstraint createElement(IConcreteSyntaxConstraintProvider.ConstraintType type, AbstractElement ele, java.util.List<AbstractElement> lazyContents, java.util.List<IConcreteSyntaxConstraintProvider.ISyntaxConstraint> contents, org.eclipse.emf.ecore.EClass semanticType, boolean multiple, boolean optional)
           
protected  java.util.List<IConcreteSyntaxConstraintProvider.ISyntaxConstraint> createSummarizedAssignments(CompoundElement group, java.util.List<AbstractElement> candidates, org.eclipse.emf.ecore.EClass semanticType, boolean optional)
           
 IConcreteSyntaxConstraintProvider.ISyntaxConstraint getConstraint(ParserRule rule)
           
 java.util.Collection<IConcreteSyntaxConstraintProvider.ISyntaxConstraint> getConstraints(org.eclipse.emf.ecore.EClass cls)
           
protected  ParserRule getFirstParserRule(Grammar grammar)
           
protected  java.util.Set<ParserRule> getValidRules()
           
protected  boolean isParserRule(AbstractRule rule)
           
protected  boolean isValidateableRule(ParserRule rule)
           
protected  boolean ruleContainsAssignedAction(AbstractRule rule, java.util.Set<AbstractRule> visited)
           
protected  boolean ruleContainsRecursiveUnassignedRuleCall(AbstractRule rule, java.util.Set<AbstractRule> visited)
           
protected  void setGrammar(IGrammarAccess grammar)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

UNINITIALIZED

protected static final java.util.Set<org.eclipse.emf.ecore.EClass> UNINITIALIZED

grammar

protected Grammar grammar

INVALID_RULE

protected final IConcreteSyntaxConstraintProvider.ISyntaxConstraint INVALID_RULE

rule2element

protected java.util.Map<ParserRule,IConcreteSyntaxConstraintProvider.ISyntaxConstraint> rule2element

type2Elements

protected java.util.Map<org.eclipse.emf.ecore.EClass,java.util.List<IConcreteSyntaxConstraintProvider.ISyntaxConstraint>> type2Elements

validRules

protected java.util.Set<ParserRule> validRules
Constructor Detail

ConcreteSyntaxConstraintProvider

public ConcreteSyntaxConstraintProvider()
Method Detail

collectReachableRules

protected void collectReachableRules(ParserRule pr,
                                     java.util.Set<ParserRule> rules,
                                     java.util.Set<ParserRule> visited)

containsRelevantElement

protected boolean containsRelevantElement(AbstractElement ele)

createElement

protected IConcreteSyntaxConstraintProvider.ISyntaxConstraint createElement(IConcreteSyntaxConstraintProvider.ConstraintType type,
                                                                            AbstractElement ele,
                                                                            org.eclipse.emf.ecore.EClass semanticType,
                                                                            boolean multiple,
                                                                            boolean optional)

createElement

protected IConcreteSyntaxConstraintProvider.ISyntaxConstraint createElement(IConcreteSyntaxConstraintProvider.ConstraintType type,
                                                                            AbstractElement ele,
                                                                            java.util.List<AbstractElement> lazyContents,
                                                                            java.util.List<IConcreteSyntaxConstraintProvider.ISyntaxConstraint> contents,
                                                                            org.eclipse.emf.ecore.EClass semanticType,
                                                                            boolean multiple,
                                                                            boolean optional)

createElement

protected IConcreteSyntaxConstraintProvider.ISyntaxConstraint createElement(org.eclipse.emf.ecore.EObject obj)

createSummarizedAssignments

protected java.util.List<IConcreteSyntaxConstraintProvider.ISyntaxConstraint> createSummarizedAssignments(CompoundElement group,
                                                                                                          java.util.List<AbstractElement> candidates,
                                                                                                          org.eclipse.emf.ecore.EClass semanticType,
                                                                                                          boolean optional)

getConstraint

public IConcreteSyntaxConstraintProvider.ISyntaxConstraint getConstraint(ParserRule rule)
Specified by:
getConstraint in interface IConcreteSyntaxConstraintProvider

getConstraints

public java.util.Collection<IConcreteSyntaxConstraintProvider.ISyntaxConstraint> getConstraints(org.eclipse.emf.ecore.EClass cls)
Specified by:
getConstraints in interface IConcreteSyntaxConstraintProvider

getFirstParserRule

protected ParserRule getFirstParserRule(Grammar grammar)

getValidRules

protected java.util.Set<ParserRule> getValidRules()

isParserRule

protected boolean isParserRule(AbstractRule rule)

isValidateableRule

protected boolean isValidateableRule(ParserRule rule)

ruleContainsAssignedAction

protected boolean ruleContainsAssignedAction(AbstractRule rule,
                                             java.util.Set<AbstractRule> visited)

ruleContainsRecursiveUnassignedRuleCall

protected boolean ruleContainsRecursiveUnassignedRuleCall(AbstractRule rule,
                                                          java.util.Set<AbstractRule> visited)

setGrammar

@Inject
protected void setGrammar(IGrammarAccess grammar)