1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| public final class DomainValidator {
/** Validators cache (for each Entity class name) */
private static final Map<String, ClassValidator<? extends AbstractEntity>> VALIDATORS = new TreeMap<String, ClassValidator<? extends AbstractEntity>>();
/** Get the Entity validator in the cache, or create it if it does not already exist */
private static <Entity extends AbstractEntity> ClassValidator<Entity> getValidator(Entity entity) {
Class<Entity> clazz = (Class<Entity>) entity.getClass(); // Avertissement 1
String className = clazz.getName();
ClassValidator<Entity> validator = null;
synchronized (VALIDATORS) {
validator = (ClassValidator<Entity>) VALIDATORS.get(className); // Avertissement 2
if (validator == null) {
validator = new ClassValidator<Entity>(clazz);
VALIDATORS.put(className, validator);
}
}
return validator;
}
/** Validate an Entity */
public static <Entity extends AbstractEntity> Collection<InvalidValue> validate(Entity entity, String... properties) {
// ...
}
private DomainValidator() {
//
}
} |