org.eclipse.xtext.xtext
Class RuleWithoutInstantiationInspector

java.lang.Object
  extended by org.eclipse.xtext.util.XtextSwitch<Result>
      extended by org.eclipse.xtext.xtext.XtextRuleInspector<java.lang.Boolean,ParserRule>
          extended by org.eclipse.xtext.xtext.RuleWithoutInstantiationInspector

public class RuleWithoutInstantiationInspector
extends XtextRuleInspector<java.lang.Boolean,ParserRule>

Checks if a parser rule ensures object instantiation. A rule that can be consumed without instantiating an object or providing an object that was instantiated by another unassigned called rule, is considered to be invalid as it leads to surprises when clients traverse the model.

Author:
Sebastian Zarnekow - Initial contribution and API

Field Summary
 
Fields inherited from class org.eclipse.xtext.util.XtextSwitch
modelPackage
 
Constructor Summary
RuleWithoutInstantiationInspector(ValidationMessageAcceptor acceptor)
           
 
Method Summary
protected  boolean canInspect(ParserRule rule)
           
 java.lang.Boolean caseAbstractElement(AbstractElement object)
          Returns the result of interpreting the object as an instance of 'Abstract Element'.
 java.lang.Boolean caseAction(Action object)
          Returns the result of interpreting the object as an instance of 'Action'.
 java.lang.Boolean caseAlternatives(Alternatives object)
          Returns the result of interpreting the object as an instance of 'Alternatives'.
 java.lang.Boolean caseAssignment(Assignment object)
          Returns the result of interpreting the object as an instance of 'Assignment'.
 java.lang.Boolean caseCompoundElement(CompoundElement object)
          Returns the result of interpreting the object as an instance of 'Compound Element'.
 java.lang.Boolean caseRuleCall(RuleCall object)
          Returns the result of interpreting the object as an instance of 'Rule Call'.
protected  void handleResult(java.lang.Boolean r, ParserRule rule)
           
 
Methods inherited from class org.eclipse.xtext.xtext.XtextRuleInspector
acceptError, acceptWarning, addVisited, doInspect, getNestingLevel, getTypeRefName, inspect, removeVisited
 
Methods inherited from class org.eclipse.xtext.util.XtextSwitch
caseAbstractMetamodelDeclaration, caseAbstractNegatedToken, caseAbstractRule, caseCharacterRange, caseCrossReference, caseEnumLiteralDeclaration, caseEnumRule, caseEOF, caseGeneratedMetamodel, caseGrammar, caseGroup, caseKeyword, caseNegatedToken, caseParserRule, caseReferencedMetamodel, caseTerminalRule, caseTypeRef, caseUnorderedGroup, caseUntilToken, caseWildcard, defaultCase, doSwitch, doSwitch, doSwitch
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RuleWithoutInstantiationInspector

public RuleWithoutInstantiationInspector(ValidationMessageAcceptor acceptor)
Method Detail

canInspect

protected boolean canInspect(ParserRule rule)
Overrides:
canInspect in class XtextRuleInspector<java.lang.Boolean,ParserRule>

handleResult

protected void handleResult(java.lang.Boolean r,
                            ParserRule rule)
Overrides:
handleResult in class XtextRuleInspector<java.lang.Boolean,ParserRule>

caseCompoundElement

public java.lang.Boolean caseCompoundElement(CompoundElement object)
Description copied from class: XtextSwitch
Returns the result of interpreting the object as an instance of 'Compound Element'. This implementation returns null; returning a non-null result will terminate the switch.

Overrides:
caseCompoundElement in class XtextSwitch<java.lang.Boolean>
Parameters:
object - the target of the switch.
Returns:
the result of interpreting the object as an instance of 'Compound Element'.
See Also:
doSwitch(EObject)

caseAbstractElement

public java.lang.Boolean caseAbstractElement(AbstractElement object)
Description copied from class: XtextSwitch
Returns the result of interpreting the object as an instance of 'Abstract Element'. This implementation returns null; returning a non-null result will terminate the switch.

Overrides:
caseAbstractElement in class XtextSwitch<java.lang.Boolean>
Parameters:
object - the target of the switch.
Returns:
the result of interpreting the object as an instance of 'Abstract Element'.
See Also:
doSwitch(EObject)

caseAction

public java.lang.Boolean caseAction(Action object)
Description copied from class: XtextSwitch
Returns the result of interpreting the object as an instance of 'Action'. This implementation returns null; returning a non-null result will terminate the switch.

Overrides:
caseAction in class XtextSwitch<java.lang.Boolean>
Parameters:
object - the target of the switch.
Returns:
the result of interpreting the object as an instance of 'Action'.
See Also:
doSwitch(EObject)

caseAlternatives

public java.lang.Boolean caseAlternatives(Alternatives object)
Description copied from class: XtextSwitch
Returns the result of interpreting the object as an instance of 'Alternatives'. This implementation returns null; returning a non-null result will terminate the switch.

Overrides:
caseAlternatives in class XtextSwitch<java.lang.Boolean>
Parameters:
object - the target of the switch.
Returns:
the result of interpreting the object as an instance of 'Alternatives'.
See Also:
doSwitch(EObject)

caseAssignment

public java.lang.Boolean caseAssignment(Assignment object)
Description copied from class: XtextSwitch
Returns the result of interpreting the object as an instance of 'Assignment'. This implementation returns null; returning a non-null result will terminate the switch.

Overrides:
caseAssignment in class XtextSwitch<java.lang.Boolean>
Parameters:
object - the target of the switch.
Returns:
the result of interpreting the object as an instance of 'Assignment'.
See Also:
doSwitch(EObject)

caseRuleCall

public java.lang.Boolean caseRuleCall(RuleCall object)
Description copied from class: XtextSwitch
Returns the result of interpreting the object as an instance of 'Rule Call'. This implementation returns null; returning a non-null result will terminate the switch.

Overrides:
caseRuleCall in class XtextSwitch<java.lang.Boolean>
Parameters:
object - the target of the switch.
Returns:
the result of interpreting the object as an instance of 'Rule Call'.
See Also:
doSwitch(EObject)