@Override public boolean check(ValidationContext ctx, QualModelPlugin qmp) { Boolean onlyOneListOfTransition = new DuplicatedElementValidationFunction<QualModelPlugin>(QualConstants.listOfTransitions).check(ctx, qmp); Boolean onlyOneListOfQualSpec = new DuplicatedElementValidationFunction<QualModelPlugin>(QualConstants.listOfQualitativeSpecies).check(ctx, qmp); return (onlyOneListOfTransition && onlyOneListOfQualSpec); } };
@Override public boolean check(ValidationContext ctx, Reaction r) { return new DuplicatedElementValidationFunction<Reaction>("listOfReactants").check(ctx, r) && new DuplicatedElementValidationFunction<Reaction>("listOfProducts").check(ctx, r) && new DuplicatedElementValidationFunction<Reaction>("listOfModifiers").check(ctx, r) && new DuplicatedElementValidationFunction<Reaction>("kineticLaw").check(ctx, r); } };
@Override public boolean check(ValidationContext ctx, Model m) { return new DuplicatedElementValidationFunction<Model>("listOfFunctionDefinitions").check(ctx, m) && new DuplicatedElementValidationFunction<Model>("listOfUnitDefinitions").check(ctx, m) && new DuplicatedElementValidationFunction<Model>("listOfCompartments").check(ctx, m) && new DuplicatedElementValidationFunction<Model>("listOfSpecies").check(ctx, m) && new DuplicatedElementValidationFunction<Model>("listOfParameters").check(ctx, m) && new DuplicatedElementValidationFunction<Model>("listOfInitialAssignments").check(ctx, m) && new DuplicatedElementValidationFunction<Model>("listOfRules").check(ctx, m) && new DuplicatedElementValidationFunction<Model>("listOfConstraints").check(ctx, m) && new DuplicatedElementValidationFunction<Model>("listOfReactions").check(ctx, m) && new DuplicatedElementValidationFunction<Model>("listOfEvents").check(ctx, m); } };
@Override public boolean check(ValidationContext ctx, Transition t) { Boolean functionTerm = false; if (t.isSetListOfFunctionTerms() && t.getListOfFunctionTerms().size() > 0) { functionTerm = new DuplicatedElementValidationFunction<Transition>(QualConstants.listOfFunctionTerms).check(ctx, t); } Boolean input = new DuplicatedElementValidationFunction<Transition>(QualConstants.listOfInputs).check(ctx, t); Boolean output = new DuplicatedElementValidationFunction<Transition>(QualConstants.listOfOutputs).check(ctx, t); if ((functionTerm && input && output) == false){ ValidationConstraint.logError(ctx, QUAL_20405, t, Boolean.toString(t.isSetListOfFunctionTerms()), Boolean.toString(input), Boolean.toString(output)); return false; } return true; } };
@Override public boolean check(ValidationContext ctx, Event e) { boolean duplicatedTriggerElement = new DuplicatedElementValidationFunction<TreeNodeWithChangeSupport>("trigger").check(ctx, e); if (ctx.isLevelAndVersionGreaterEqualThan(3, 2)) { return duplicatedTriggerElement; } return e.isSetTrigger() && duplicatedTriggerElement; } };
@Override public boolean check(ValidationContext ctx, SBMLDocument d) { // count the number of model xml element and check if it is not above 1 DuplicatedElementValidationFunction<SBMLDocument> duplicatedModelcheck = new DuplicatedElementValidationFunction<SBMLDocument>(TreeNodeChangeEvent.model); if (!duplicatedModelcheck.check(ctx, d)) { return false; } if (ctx.isLevelAndVersionLessThan(3, 2)) { return d.getModel() != null; } else { // from L3V2 the model element can be undefined return true; } } };
@Override public boolean check(ValidationContext ctx, Transition t) { if (t.isSetListOfFunctionTerms() && !t.getListOfFunctionTerms().isEmpty()) { Boolean hasDefaultTerm = false; for (FunctionTerm ft : t.getListOfFunctionTerms()) { if (ft.isDefaultTerm()) { hasDefaultTerm = true; } } Boolean onlyDefaultTerm = new DuplicatedElementValidationFunction<ListOf<FunctionTerm>>( QualConstants.defaultTerm).check(ctx, t.getListOfFunctionTerms()); Boolean onlyFuntionTermObjects = new UnknownElementValidationFunction<ListOf<FunctionTerm>>() .check(ctx, t.getListOfFunctionTerms()); return (hasDefaultTerm && onlyDefaultTerm && onlyFuntionTermObjects); } return true; } };