public EditModel.Reference addChild(String editModelID, Map params, Object accessorKey) { return addChild(editModelID, params, ComposedAccessorKey.getComposedAccessorKey(accessorKey, this)); }
public void removeChild(EditModel.Reference reference, Object accessorKey) { ComposedAccessorKey composedAccessorKey = ComposedAccessorKey.getComposedAccessorKey(accessorKey, this); EditModel editModel = (EditModel) getChildrenMap().remove(reference); if (editModel != null) { editModel.releaseAccess(composedAccessorKey); editModel.removeListener(this); getChildren().remove(editModel); } }
/** * This method should be called from each client when they are finished working with the * EditModel. */ public void releaseAccess(Object accessorKey) { List tempchildren = getChildren(); ComposedAccessorKey composedAccessorKey = ComposedAccessorKey.getComposedAccessorKey(accessorKey, this); for (int i = 0; i < tempchildren.size(); i++) { EditModel model = (EditModel) tempchildren.get(i); model.releaseAccess(composedAccessorKey); } removeKeyFromCache(composedAccessorKey); // Removing this call... Children should be able to handle all releasing defect 1978 super.releaseAccess(accessorKey); }
/** * This only increments the reference count of the children and should only be called if you * know what you are doing. */ public void access(Object accessorKey) { ComposedAccessorKey composedAccessorKey = ComposedAccessorKey.getComposedAccessorKey(accessorKey, this); if (getChildren().size() == 0) { createChildrenIfNecessary(composedAccessorKey); } else { List tempchildren = getChildren(); for (int i = 0; i < tempchildren.size(); i++) { EditModel model = (EditModel) tempchildren.get(i); model.access(composedAccessorKey); } } // removing for defect 1978, children should do all the accessing super.access(accessorKey); }