/** * Comme <code>require</code>, mais valide en profondeur les <code>DataObject</code>s. * * @param error true si l'absence est une erreur, false si c'est juste un warning. * @param source L'objet source. * @param property Le nom de la propriété à vérifier. * @return true ssi la propriété est définie et n'a pas d'erreurs. */ protected boolean requireProperty(boolean error, DataObject source, String property) { Object value = source.readProperty(property); String propertyName = propertyName(source, property); if (require(error, value, propertyName)) { if (value instanceof DataObject) { return subValidate(propertyName, (DataObject) value); } else { return true; } } else { return false; } }
@Override protected Object buildValue(ConstRef ref) { Class<?> clazz = ref.clazz; String nom = ref.nom; DataContext dc = DataContext.createDataContext(); String constEntity = "Const" + clazz.getSimpleName(); if (dc.getEntityResolver().getObjEntity(constEntity) == null) { throw new RuntimeException("Pas de constantes de type " + clazz.getName()); } DataObject result = CommonQueries.unique(dc, constEntity, "nom", nom); if (result == null) { result = dc.createAndRegisterNewObject(constEntity); result.writeProperty("nom", nom); result.writeProperty("libelle", nom); dc.commitChanges(); // throw new RuntimeException("Pas de constante nommée " + nom // + " (type:" + clazz.getName() + ")"); } return result.readProperty("valeur"); }
protected boolean checkPeriode(DataObject object, String debut, String fin) { return checkPeriode( object, // (Date) object.readProperty(debut), // (Date) object.readProperty(fin)); }