Package org.apache.isis.core.metamodel.facets.collections.modify

Examples of org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet


        }
    }

    public static Object[] getCollectionAsObjectArray(final Object option, final ObjectSpecification spec, final AdapterManager adapterManager) {
        final ObjectAdapter collection = adapterManager.adapterFor(option);
        final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
        final Object[] optionArray = new Object[facet.size(collection)];
        int j = 0;
        for (final ObjectAdapter adapter : facet.iterable(collection)) {
            optionArray[j++] = adapter.getObject();
        }
        return optionArray;
    }
View Full Code Here


        }
    }

    private void readCollection(final StateReader reader, final KeyCreator keyCreator, final DataEncryption dataEncrypter, final OneToManyAssociation association, final ObjectAdapter object) {
        final ObjectAdapter collection = association.get(object);
        final CollectionFacet facet = collection.getSpecification().getFacet(CollectionFacet.class);
        if (association.getSpecification().isAggregated()) {
            final List<StateReader> readers = reader.readCollection(association.getId());
            // String id = association.getId();
            final ObjectAdapter[] elements = new ObjectAdapter[readers.size()];
            int i = 0;
            for (final StateReader elementReader : readers) {
                final String id = elementReader.readId();
                final AggregatedOid oid = new AggregatedOid(object.getOid(), id);
                elements[i++] = restoreAggregatedObject(elementReader, oid, keyCreator, dataEncrypter);
            }
            facet.init(collection, elements);
        } else {
            final String referencesList = reader.readField(association.getId());
            if (referencesList == null || referencesList.length() == 0) {
                facet.init(collection, new ObjectAdapter[0]);
            } else {
                final ObjectAdapter[] elements = restoreElements(referencesList, keyCreator);
                facet.init(collection, elements);
            }
        }
    }
View Full Code Here

        }
        writer.writeField(association.getId(), data);
    }

    private void writeCollection(final StateWriter writer, final ObjectAssociation association, final ObjectAdapter collection, final KeyCreator keyCreator) {
        final CollectionFacet collectionFacet = collection.getSpecification().getFacet(CollectionFacet.class);
        if (association.getSpecification().isAggregated()) {
            final List<StateWriter> elements = new ArrayList<StateWriter>();
            for (final ObjectAdapter element : collectionFacet.iterable(collection)) {
                final StateWriter elementWriter = writer.createElementWriter();
                elementWriter.writeId(((AggregatedOid) element.getOid()).getId());
                writeFields(elementWriter, element.getSpecification().getFullIdentifier(), element);
                elements.add(elementWriter);
            }
            writer.writeCollection(association.getId(), elements);
        } else {
            String refs = "";
            for (final ObjectAdapter element : collectionFacet.iterable(collection)) {
                if (element.isAggregated()) {
                    throw new DomainModelException("Can't store an aggregated object within a collection that is not exoected aggregates: " + element + " (" + collection + ")");
                }
                refs += keyCreator.reference(element) + "|";
            }
View Full Code Here

        final List<ObjectAssociation> fields = adapter.getSpecification().getAssociations();
        for (int i = 0; i < fields.size(); i++) {
            final ObjectAssociation field = fields.get(i);
            if (field.isOneToManyAssociation()) {
                final ObjectAdapter col = field.get(adapter);
                final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(col);
                for (final Iterator<ObjectAdapter> e = facet.iterator(col); e.hasNext();) {
                    final ObjectAdapter element = e.next();
                    setupReferencedObjects(element, all);
                }
            } else if (field.isOneToOneAssociation()) {
                final ObjectAdapter fieldContent = field.get(adapter);
View Full Code Here

        if (recursiveElements.contains(collection)) {
            s.append("*\n");
        } else {
            recursiveElements.addElement(collection);

            final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
            final Iterator<ObjectAdapter> e = facet.iterator(collection);

            while (e.hasNext()) {
                indent(s, level);

                ObjectAdapter element;
View Full Code Here

                if (adapter == null) {
                    adapter = getObject(elementOid, null);
                }
                elements[j] = adapter;
            }
            final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
            facet.init(collection, elements);
            PersistorUtil.end(collection);
        }
    }
View Full Code Here

        initCollection(fieldId);

        // int size = collection.size();

        final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
        for (final ObjectAdapter element : facet.iterable(collection)) {
            // LOG.debug("adding element to internal collection field " +
            // fieldId +" " + element);
            final Object elementOid = element.getOid();
            if (elementOid == null) {
                throw new IllegalStateException("Element is not persistent " + element);
View Full Code Here

            final boolean isEmpty = association.isEmpty(adapter);
            if (isEmpty) {
                continue;
            }
            if (association.isOneToManyAssociation()) {
                final CollectionFacet facet = associatedObject.getSpecification().getFacet(CollectionFacet.class);
                for (final ObjectAdapter element : facet.iterable(associatedObject)) {
                    addObjectAndAssociates(element);
                }
            } else if (association.isOneToOneAssociation() && !association.getSpecification().isParseable()) {
                addObjectAndAssociates(associatedObject);
            }
View Full Code Here

    // /////////////////////////////////////////////////////////////////////
    // Helpers
    // /////////////////////////////////////////////////////////////////////

    private static List<Object> convertToList(final ObjectAdapter instances, final Class<?> cls) {
        final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(instances);
        final List<Object> list = new ArrayList<Object>();
        for (final ObjectAdapter adapter : facet.iterable(instances)) {
            list.add(adapter.getObject());
        }
        return list;
    }
View Full Code Here

                    final ObjectAdapter[] elements = new ObjectAdapter[ids.length];
                    for (int i = 0; i < ids.length; i++) {
                        elements[i] = loaded.get(ids[i]);
                    }
                    final ObjectAdapter collection = association.get(object);
                    final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
                    facet.init(collection, elements);
                } else if (association.getSpecification().isParseable()) {
                    data = data.replaceAll("\\n", "\n");
                    final ParseableFacet facet = association.getSpecification().getFacet(ParseableFacet.class);
                    final ObjectAdapter value = facet.parseTextEntry(null, data);
                    ((OneToOneAssociation) association).initAssociation(object, value);
                } else if (association.isOneToOneAssociation()) {
                    final ObjectAdapter value = loaded.get(data);
                    ((OneToOneAssociation) association).initAssociation(object, value);
                }
View Full Code Here

TOP

Related Classes of org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.