private ObjectData[] convertToNakedCollection(final NakedCollection instances) { ObjectData[] data = new ObjectData[instances.size()]; Enumeration elements = instances.elements(); int i = 0; while (elements.hasMoreElements()) { NakedObject element = (NakedObject) elements.nextElement(); data[i++] = encoder.createCompletePersistentGraph(element ); } return data; }
private void makePersistent(final NakedCollection collection, final PersistedObjectAdder persistor) { if (collection.getResolveState().isPersistent() || collection.persistable() == Persistable.TRANSIENT) { return; } LOG.info("persist " + collection); if (collection.getResolveState() == ResolveState.TRANSIENT) { collection.changeState(ResolveState.RESOLVED); } NakedObjectsContext.getObjectLoader().madePersistent(collection); Enumeration elements = collection.elements(); while (elements.hasMoreElements()) { makePersistent((NakedObject) elements.nextElement(), persistor); } }
public NakedObject firstElement() { return wrappedCollection.firstElement(); }
protected void makePersistent(final NakedCollection collection, final PersistedObjectAdder persistor) { LOG.info("persist " + collection); if (collection.getResolveState() == ResolveState.GHOST) { collection.changeState(ResolveState.RESOLVING); collection.changeState(ResolveState.RESOLVED); } else if (collection.getResolveState() == ResolveState.TRANSIENT) { collection.changeState(ResolveState.RESOLVED); } Enumeration elements = collection.elements(); while (elements.hasMoreElements()) { persist((NakedObject) elements.nextElement(), persistor); } }
private Data createCollectionData(final Naked object) { NakedCollection coll = (NakedCollection) object; Data[] collData = new Data[coll.size()]; Enumeration elements = coll.elements(); int i = 0; while (elements.hasMoreElements()) { NakedObject ref = (NakedObject) elements.nextElement(); collData[i++] = createReferenceData(ref); // collData[i] = new Data(ref.getOid(), ref.getResolveState().name(), ref.getSpecification().getFullName()); } return new CollectionData(coll.getOid(), NakedCollection.class.getName(), collData); }
public int size() { return wrappedCollection.size(); }
public Enumeration elements() { return wrappedCollection.elements(); }
public void execute() { Naked result; result = action.execute(target, null); if (result != null) { if (result instanceof NakedCollection) { NakedCollection collection = ((NakedCollection) result); if (collection.size() == 1) { result = collection.firstElement(); } } view.objectActionResult(result, at); } view.getViewManager().disposeUnneededViews(); view.getFeedbackManager().showMessagesAndWarnings(); }
public int canOpen(final Content content) { NakedCollection collection = ((CollectionContent) content).getCollection(); if (collection.getResolveState().isGhost()) { return UNKNOWN; } else { return collection.size() > 0 ? CAN_OPEN : CANT_OPEN; } }
private void updateOneToManyAssociation( final NakedObject object, final OneToManyAssociation field, final CollectionData collectionData) { NakedCollection collection = (NakedCollection) field.get(object); Vector original = new Vector(); Enumeration elements = collection.elements(); while (elements.hasMoreElements()) { original.addElement(elements.nextElement()); } for (int j = 0; j < collectionData.elements.length; j++) { NakedObject element = recreateReference((Data) collectionData.elements[j]); if (!collection.contains(element)) { LOG.debug(" association " + field + " changed, added " + element.getOid()); field.addElement(object, element); } else { field.removeElement(object, element); } } int size = original.size(); for (int i = 0; i < size; i++) { NakedObject element = (NakedObject) original.elementAt(i); LOG.debug(" association " + field + " changed, removed " + element.getOid()); field.removeElement(object, element); } }
public NakedObjectSpecification getElementSpecification() { return wrappedCollection.getElementSpecification(); }
public void resolveField(final NakedObject object, final NakedObjectField field) { LOG.debug("resolveField id=" + object.getOid() + ", field=" + field.getId()); if (field.isObject()) { final NakedObject adapter = (NakedObject) field.get(object); initializeField(object.getObject(), adapter.getObject()); } else if (field.isCollection()) { final NakedCollection collectionAdapter = (NakedCollection) field.get(object); // can sometimes be called if collection is already resolved! e.g. // BasicPerpsective.services if (!collectionAdapter.getResolveState().isResolved()) { NakedObjectsContext.getObjectLoader().start(collectionAdapter, ResolveState.RESOLVING); final Object collection = collectionAdapter.getObject(); initializeField(object.getObject(), collection); NakedObjectsContext.getObjectLoader().end(collectionAdapter); } } }
public void execute(final Workspace workspace, final View view, final Location at) { collection.changeState(ResolveState.GHOST); } });
public ResolveState getResolveState() { return wrappedCollection.getResolveState(); }
public Oid getOid() { return wrappedCollection.getOid(); }
public boolean contains(NakedObject object) { return wrappedCollection.contains(object); }
public boolean hasInstances(final NakedObjectSpecification specification, final boolean includeSubclasses) { LOG.debug("hasInstances of " + specification); if (cache.containsKey(specification)) { Object collection = cache.get(specification); if (collection instanceof NakedCollection) { return ((NakedCollection) collection).size() > 0; } } // TODO includeInstances flag is not passed to server return connection.hasInstances(NakedObjectsContext.getSession(), specification.getFullName()); }
private String debugCollectionGraph(final NakedCollection collection, final int level, final Vector recursiveElements) { StringBuffer s = new StringBuffer(); if (recursiveElements.contains(collection)) { s.append("*\n"); } else { recursiveElements.addElement(collection); Enumeration e = ((NakedCollection) collection).elements(); while (e.hasMoreElements()) { indent(s, level); NakedObject element; try { element = ((NakedObject) e.nextElement()); } catch (ClassCastException ex) { LOG.error(ex); return s.toString(); } s.append(element); s.append(debugGraph(element, level + 1, recursiveElements)); } } return s.toString(); }
protected void makePersistent(final NakedCollection collection, final PersistedObjectAdder persistor) { LOG.info("persist " + collection); if (collection.getResolveState() == ResolveState.TRANSIENT) { collection.changeState(ResolveState.RESOLVED); } Enumeration elements = collection.elements(); while (elements.hasMoreElements()) { makePersistent((NakedObject) elements.nextElement(), persistor); } }