private void validateMerge(Collection<Bean> mergebeans) { Map<BeanId, Bean> beansToValidate = beanManager.getBeanToValidate(mergebeans); setSchema(schemaManager.getSchemas(), beansToValidate); // since we are validating mergebean predecessors, we need to make sure // that they see a merged reference (not unmerged reference currently in storage) // before validation can proceed. for (Bean mergebean : mergebeans) { ArrayList<Bean> mergeBeanReferences = new ArrayList<Bean>(); ArrayList<Bean> checked = new ArrayList<Bean>(); findReferences(mergebean.getId(), beansToValidate.values(), mergeBeanReferences, checked); // merge all references merge(mergeBeanReferences, mergebean); } // ready to validate validationManager.validate(beansToValidate.values()); }
private void validateSet(Collection<Bean> setbeans) { Map<BeanId, Bean> beansToValidate = beanManager.getBeanToValidate(setbeans); setSchema(schemaManager.getSchemas(), beansToValidate); // since we are validating setbean predecessors, we need to make sure // that they see a replaced/set reference (not old reference currently in storage) // before validation can proceed. for (Bean setbean : setbeans) { ArrayList<Bean> setBeanReferences = new ArrayList<Bean>(); ArrayList<Bean> checked = new ArrayList<Bean>(); findReferences(setbean.getId(), beansToValidate.values(), setBeanReferences, checked); for (Bean ref : setBeanReferences) { // clearing and then merging have same // effect as a 'set' operation ref.clear(); } merge(setBeanReferences, setbean); } validationManager.validate(beansToValidate.values()); }
@Override public void create(Collection<Bean> beans) { if (beans == null || beans.isEmpty()) { return; } doLookup(); setSchema(schemaManager.getSchemas(), beans); validateSchema(beans); if (validationManager != null) { initReferences(beans); validationManager.validate(beans); } beanManager.create(beans); }