Search in sources :

Example 6 with ISyntaxConstraint

use of org.eclipse.xtext.validation.IConcreteSyntaxConstraintProvider.ISyntaxConstraint in project xtext-core by eclipse.

the class ConcreteSyntaxValidator method validateObject.

@Override
public boolean validateObject(EObject obj, IDiagnosticAcceptor acceptor, Map<Object, Object> context) {
    if (isEObjectTransient(obj))
        return true;
    List<IConcreteSyntaxDiagnostic> allDiags = new ArrayList<IConcreteSyntaxDiagnostic>();
    Collection<ISyntaxConstraint> rules = constraintProvider.getConstraints(obj.eClass());
    if (rules.isEmpty())
        // no validation if there are no rules for this EClass
        return true;
    for (ISyntaxConstraint rule : rules) {
        // System.out.println(rule);
        List<IConcreteSyntaxDiagnostic> diags = validateRule(obj, rule);
        if (diags.size() == 0)
            // validation succeeded
            return true;
        allDiags.addAll(diags);
    }
    for (IConcreteSyntaxDiagnostic d : allDiags) acceptor.accept(d);
    return false;
}
Also used : ISyntaxConstraint(org.eclipse.xtext.validation.IConcreteSyntaxConstraintProvider.ISyntaxConstraint) ArrayList(java.util.ArrayList) IConcreteSyntaxDiagnostic(org.eclipse.xtext.validation.IConcreteSyntaxDiagnosticProvider.IConcreteSyntaxDiagnostic)

Aggregations

ISyntaxConstraint (org.eclipse.xtext.validation.IConcreteSyntaxConstraintProvider.ISyntaxConstraint)6 ArrayList (java.util.ArrayList)3 IConcreteSyntaxDiagnostic (org.eclipse.xtext.validation.IConcreteSyntaxDiagnosticProvider.IConcreteSyntaxDiagnostic)3 Collection (java.util.Collection)2 Map (java.util.Map)2 EStructuralFeature (org.eclipse.emf.ecore.EStructuralFeature)2 IQuantities (org.eclipse.xtext.validation.IAssignmentQuantityAllocator.IQuantities)2 HashSet (java.util.HashSet)1 EAttribute (org.eclipse.emf.ecore.EAttribute)1 Pair (org.eclipse.xtext.util.Pair)1