org.eclipse.xtext.serializer.analysis
Class GrammarConstraintProvider

java.lang.Object
  extended by org.eclipse.xtext.serializer.analysis.GrammarConstraintProvider
All Implemented Interfaces:
IGrammarConstraintProvider

public class GrammarConstraintProvider
extends java.lang.Object
implements IGrammarConstraintProvider

Author:
Moritz Eysholdt - Initial contribution and API

Nested Class Summary
protected static class GrammarConstraintProvider.AbstractConstraintContext
           
protected static class GrammarConstraintProvider.ActionConstraint
           
protected static class GrammarConstraintProvider.AssignedActionConstraintContext
           
protected static class GrammarConstraintProvider.Constraint
           
protected static class GrammarConstraintProvider.ConstraintElement
           
protected static class GrammarConstraintProvider.FeatureInfo
           
protected static class GrammarConstraintProvider.ParserRuleConstraintContext
           
protected static class GrammarConstraintProvider.RuleConstraint
           
 
Nested classes/interfaces inherited from interface org.eclipse.xtext.serializer.analysis.IGrammarConstraintProvider
IGrammarConstraintProvider.ConstraintElementType, IGrammarConstraintProvider.IConstraint, IGrammarConstraintProvider.IConstraintContext, IGrammarConstraintProvider.IConstraintElement, IGrammarConstraintProvider.IFeatureInfo, IGrammarConstraintProvider.RelationalDependencyType
 
Field Summary
protected  java.util.Map<Grammar,java.util.List<IGrammarConstraintProvider.IConstraintContext>> cache
           
protected  Context2NameFunction context2Name
           
protected  IContextProvider contextProvider
           
protected static GrammarConstraintProvider.ConstraintElement INVALID
           
protected  ActionFilterNFAProvider nfaProvider
           
protected static GrammarConstraintProvider.ConstraintElement TYPEMATCH
           
protected static GrammarConstraintProvider.ConstraintElement UNINTITIALIZED
           
 
Fields inherited from interface org.eclipse.xtext.serializer.analysis.IGrammarConstraintProvider
MAX
 
Constructor Summary
GrammarConstraintProvider()
           
 
Method Summary
protected  GrammarConstraintProvider.ConstraintElement createConstraintElement(org.eclipse.emf.ecore.EObject context, AbstractElement ele, org.eclipse.emf.ecore.EClass requiredType, java.util.Set<java.lang.Object> visited)
           
protected  GrammarConstraintProvider.ConstraintElement createConstraintElement(org.eclipse.emf.ecore.EObject context, ActionFilterNFAProvider.ActionFilterState state, org.eclipse.emf.ecore.EClass requiredType, boolean allowLocal, java.util.Set<java.lang.Object> visited)
           
protected  GrammarConstraintProvider.ConstraintElement createConstraintElement(ParserRule rule, org.eclipse.emf.ecore.EClass requiredType, java.util.Set<java.lang.Object> visited)
           
protected  void filterDuplicateConstraintsAndSetNames(java.util.List<IGrammarConstraintProvider.IConstraintContext> contexts)
           
protected  java.util.List<GrammarConstraintProvider.ConstraintElement> filterDuplicates(java.util.List<GrammarConstraintProvider.ConstraintElement> list)
           
protected  java.lang.String findBestConstraintName(java.util.Collection<IGrammarConstraintProvider.IConstraint> equalConstraints)
           
protected  IGrammarConstraintProvider.IConstraint findRepresentativeConstraint(java.util.Collection<IGrammarConstraintProvider.IConstraint> equalConstraints)
           
protected  IGrammarConstraintProvider.ConstraintElementType getConstraintElementType(AbstractElement ele)
           
protected  IGrammarConstraintProvider.IConstraintContext getConstraints(Action context)
           
 java.util.List<IGrammarConstraintProvider.IConstraintContext> getConstraints(Grammar context)
          Returns all constraints form this grammar.
protected  IGrammarConstraintProvider.IConstraintContext getConstraints(ParserRule context)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INVALID

protected static final GrammarConstraintProvider.ConstraintElement INVALID

TYPEMATCH

protected static final GrammarConstraintProvider.ConstraintElement TYPEMATCH

UNINTITIALIZED

protected static final GrammarConstraintProvider.ConstraintElement UNINTITIALIZED

cache

protected java.util.Map<Grammar,java.util.List<IGrammarConstraintProvider.IConstraintContext>> cache

context2Name

@Inject
protected Context2NameFunction context2Name

contextProvider

@Inject
protected IContextProvider contextProvider

nfaProvider

@Inject
protected ActionFilterNFAProvider nfaProvider
Constructor Detail

GrammarConstraintProvider

public GrammarConstraintProvider()
Method Detail

createConstraintElement

protected GrammarConstraintProvider.ConstraintElement createConstraintElement(org.eclipse.emf.ecore.EObject context,
                                                                              AbstractElement ele,
                                                                              org.eclipse.emf.ecore.EClass requiredType,
                                                                              java.util.Set<java.lang.Object> visited)

createConstraintElement

protected GrammarConstraintProvider.ConstraintElement createConstraintElement(org.eclipse.emf.ecore.EObject context,
                                                                              ActionFilterNFAProvider.ActionFilterState state,
                                                                              org.eclipse.emf.ecore.EClass requiredType,
                                                                              boolean allowLocal,
                                                                              java.util.Set<java.lang.Object> visited)

createConstraintElement

protected GrammarConstraintProvider.ConstraintElement createConstraintElement(ParserRule rule,
                                                                              org.eclipse.emf.ecore.EClass requiredType,
                                                                              java.util.Set<java.lang.Object> visited)

filterDuplicateConstraintsAndSetNames

protected void filterDuplicateConstraintsAndSetNames(java.util.List<IGrammarConstraintProvider.IConstraintContext> contexts)

filterDuplicates

protected java.util.List<GrammarConstraintProvider.ConstraintElement> filterDuplicates(java.util.List<GrammarConstraintProvider.ConstraintElement> list)

findBestConstraintName

protected java.lang.String findBestConstraintName(java.util.Collection<IGrammarConstraintProvider.IConstraint> equalConstraints)

findRepresentativeConstraint

protected IGrammarConstraintProvider.IConstraint findRepresentativeConstraint(java.util.Collection<IGrammarConstraintProvider.IConstraint> equalConstraints)

getConstraintElementType

protected IGrammarConstraintProvider.ConstraintElementType getConstraintElementType(AbstractElement ele)

getConstraints

protected IGrammarConstraintProvider.IConstraintContext getConstraints(Action context)

getConstraints

public java.util.List<IGrammarConstraintProvider.IConstraintContext> getConstraints(Grammar context)
Description copied from interface: IGrammarConstraintProvider
Returns all constraints form this grammar. If a constraint belongs to multiple ConstraintContexts, it is important to call this method to ensure there is inly one instance fo this constraint.

Specified by:
getConstraints in interface IGrammarConstraintProvider

getConstraints

protected IGrammarConstraintProvider.IConstraintContext getConstraints(ParserRule context)