Code: Select all
public abstract class BaseValidator {
public BaseValidator(Function validatorInput) {
this.validatorInput = validatorInput;
}
public ValidationResult validate() {}
public addNotificationListener() {}
public removeNotificationListener() {}
....
}
Code: Select all
public class ValidateNoDuplicates extends BaseValidator {
public ValidateNoDuplicates(Function validatorInput) {
super(validatorInput);}
public ValidationResult validate() {
//Use validatorInput to validate
}
}
Code: Select all
public class ValidateNumberRanges extends BaseValidator {
public ValidateNumberRanges(Function validatorInput) {
super(validatorInput);}
public ValidationResult validate() {
//Use validatorInput to validate
}
}
BUSSchedulevalidator Factory
Code: Select all
public class BusScheduleValidatorFactory implements ScheduleValidatorFactory {
public ValidateNoDuplicates createNoDuplicateCheck() {
return new ValidateNoDuplicates();
}
public ValidateNumberRanges createRangeCheck() {
return new ValidateNumberRanges();
}
}
Code: Select all
public class FlightScheduleValidatorFactory implements ScheduleValidatorFactory {
public ValidateNoDuplicates createNoDuplicateCheck() {
return new ValidateNoDuplicates();
}
public ValidateNumberRanges createRangeCheck() {
return new ValidateNumberRanges();
}
}