private void updateOneToManyAssociation( final NakedObject object, final OneToManyAssociation field, final CollectionData collectionData) { final NakedObject collection = field.get(object); final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection); final Vector original = new Vector(); final Enumeration elements = facet.elements(collection); while (elements.hasMoreElements()) { original.addElement(elements.nextElement()); } for (int j = 0; j < collectionData.elements.length; j++) { final NakedObject element = recreateReference(collectionData.elements[j]); if (!facet.contains(collection, element)) { LOG.debug(" association " + field + " changed, added " + element.getOid()); field.addElement(object, element); } else { field.removeElement(object, element); } } final int size = original.size(); for (int i = 0; i < size; i++) { final NakedObject element = (NakedObject) original.elementAt(i); LOG.debug(" association " + field + " changed, removed " + element.getOid()); field.removeElement(object, element); } }
@Override public void checkInstances(final Context context, final NakedObject[] objects) { final NakedObject collection = field.get(getTarget(context)); final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection); final NakedObject target = getTarget(context); for (int i = 0; i < objects.length; i++) { final Consent valueValid = field.isValidToAdd(target, objects[i]); if (valueValid.isVetoed()) { objects[i] = null; } else if (facet.contains(collection, objects[i])) { objects[i] = null; } } }
@Override public void checkInstances(final Context context, final NakedObject[] objects) { final NakedObject collection = field.get(getTarget(context)); final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection); final NakedObject target = getTarget(context); for (int i = 0; i < objects.length; i++) { final Consent valueValid = field.isValidToAdd(target, objects[i]); if (valueValid.isVetoed()) { objects[i] = null; } else if (facet.contains(collection, objects[i])) { objects[i] = null; } } }