package org.deephacks.confit.spi;
import com.google.common.base.Optional;
import java.util.Collection;
/**
* When beans are created or updated, it is the responsibility of the validator to
* maintain data integrity by enforcing validation constraints and reject operations
* that violate these rules.
*
*/
public abstract class ValidationManager {
private static Lookup lookup = Lookup.get();
/**
* Lookup the most suitable ValidationManager available.
*
* @return ValidationManager.
*/
public static Optional<ValidationManager> lookup() {
ValidationManager manager = lookup.lookup(ValidationManager.class);
if (manager != null) {
return Optional.of(manager);
} else {
return Optional.absent();
}
}
/**
* Validate a collection of beans. Beans have their references initialized.
*
* This method is called when beans are provisioned from an administrative context.
*
* @param beans to validate.
*/
public abstract void validate(Collection<Object> beans);
/**
* Validate a beans. Bean references are initialized.
*
* This method is called when beans are provisioned from an administrative context.
*
* @param bean to validate
*/
public abstract void validate(Object bean);
}