/**
* <p>
* Creates a validator with given observable models as context information.
* </p>
*
* <p>
* The validator observes changes in any of the given context models. It automatically updates the
* validated specification (see {@link #validSpecificationProperty()}) and/or the problems with
* the constraint specification (see {@link #problemsProperty()}).
* </p>
*
* @param typeContext the extracted types (esp. enums) from the code area
* @param codeIoVariables the extracted {@link CodeIoVariable}s from the code area
* @param validFreeVariables the most latest validated free variables from the
* {@link FreeVariableList}.
* @param specification the specification to be validated
*/
public ConstraintSpecificationValidator(ObjectProperty<List<Type>> typeContext,
ObjectProperty<List<CodeIoVariable>> codeIoVariables,
ReadOnlyObjectProperty<List<ValidFreeVariable>> validFreeVariables,
ConstraintSpecification specification) {
this.typeContext = typeContext;
this.codeIoVariables = codeIoVariables;
this.validFreeVariables = validFreeVariables;
this.specification = specification;
this.problems = new SimpleObjectProperty<>(new ArrayList<>());
this.validSpecification = new NullableProperty<>();
this.valid = new SimpleBooleanProperty(false);
// All these ObservableLists invoke the InvalidationListeners on deep updates
// So if only a cell in the Specification changes, the change listener on the ObservableList
// two layers above gets notified.
specification.getRows().addListener(listenToSpecUpdate);
specification.getDurations().addListener(listenToSpecUpdate);
specification.getColumnHeaders().addListener(listenToSpecUpdate);
typeContext.addListener(listenToSpecUpdate);
codeIoVariables.addListener(listenToSpecUpdate);
validFreeVariables.addListener(listenToSpecUpdate);
recalculateSpecProblems();
}
ConstraintSpecificationValidator.java 文件源码
java
阅读 38
收藏 0
点赞 0
评论 0
项目:stvs
作者:
评论列表
文章目录