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

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


public class CountElements extends AbstractObjectProcessor {

    @Override
    protected void process(final Request request, final ObjectAdapter collection) {
        final CollectionFacet facet = collection.getSpecification().getFacet(CollectionFacet.class);
        final int size = facet.size(collection);
        if (size == 0) {
            request.appendHtml(request.getOptionalProperty("none", "0"));
        } else if (size == 1) {
            request.appendHtml(request.getOptionalProperty("one", "1"));
        } else {
View Full Code Here


    public Iterable<Object> getListContents(final String listAlias) {
        final ObjectAdapter listAdapter = getScenario().getAliasRegistry().getAliased(StringUtils.normalized(listAlias));
        if (listAdapter == null) {
            return Collections.emptyList();
        }
        final CollectionFacet facet = listAdapter.getSpecification().getFacet(CollectionFacet.class);
        if (facet == null) {
            return Collections.emptyList();
        }
        final Iterable<ObjectAdapter> objectAdapters = facet.iterable(listAdapter);
        return Iterables.transform(objectAdapters, new Function<ObjectAdapter, Object>() {

            @Override
            public Object apply(final ObjectAdapter from) {
                return from.getObject();
View Full Code Here

    }

    private void readCollection(final StateReader reader, final DataEncryption dataEncrypter, final OneToManyAssociation association, final ObjectAdapter parentAdapter) {
        final ObjectAdapter collectionAdapter = association.get(parentAdapter);
       
        final CollectionFacet facet = collectionAdapter.getSpecification().getFacet(CollectionFacet.class);
        if (association.getSpecification().isParented()) {
            // were persisted inline, so read back inline
            final List<StateReader> readers = reader.readCollection(association.getId());
            final ObjectAdapter[] elementAdapters = new ObjectAdapter[readers.size()];
            int i = 0;
            for (final StateReader elementReader : readers) {
               
                final String oidStr = elementReader.readOid();
                final AggregatedOid aggregatedOid = getOidMarshaller().unmarshal(oidStr, AggregatedOid.class);
               
                elementAdapters[i++] = restoreAggregatedObject(elementReader, aggregatedOid, dataEncrypter);
            }
            facet.init(collectionAdapter, elementAdapters);
        } else {
            // were persisted as references, so read back as references
            final String referencesList = reader.readField(association.getId());
            if (referencesList == null || referencesList.length() == 0) {
                facet.init(collectionAdapter, new ObjectAdapter[0]);
            } else {
                final ObjectAdapter[] elements = restoreElements(referencesList);
                facet.init(collectionAdapter, elements);
            }
        }
    }
View Full Code Here

        }
    }

    private void writeCollectionOfAggregated(final StateWriter writer, final ObjectAssociation association, final ObjectAdapter collectionAdapter) {
        final List<StateWriter> elementWriters = Lists.newArrayList();
        final CollectionFacet collectionFacet = collectionAdapter.getSpecification().getFacet(CollectionFacet.class);
        for (final ObjectAdapter referencedAdapter : collectionFacet.iterable(collectionAdapter)) {
            final AggregatedOid elementOid = (AggregatedOid) referencedAdapter.getOid();
            final StateWriter elementWriter = writer.createElementWriter();
           
            //elementWriter.writeId(elementOid.getLocalId());
            elementWriter.writeOid(elementOid);
View Full Code Here

        }
        writer.writeCollection(association.getId(), elementWriters);
    }

    private void writeCollectionOfReferences(final StateWriter writer, final ObjectAssociation association, final ObjectAdapter collectionAdapter) {
        final CollectionFacet collectionFacet = collectionAdapter.getSpecification().getFacet(CollectionFacet.class);
       
        final StringBuilder buf = new StringBuilder();
        for (final ObjectAdapter elementAdapter : collectionFacet.iterable(collectionAdapter)) {
            if (elementAdapter.isParented()) {
                throw new DomainModelException("Can't store an aggregated object within a collection that is not expected aggregates: " + elementAdapter + " (" + collectionAdapter + ")");
            }
            buf.append(keyCreator.oidStrFor(elementAdapter)).append("|");
        }
View Full Code Here

    private int canOpenCollection(final Content content) {
        final ObjectAdapter collection = ((CollectionContent) content).getCollection();
        if (collection.isGhost()) {
            return UNKNOWN;
        } else {
            final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
            return facet.size(collection) > 0 ? CAN_OPEN : CANT_OPEN;
        }
    }
View Full Code Here

    public int canOpen(final Content content) {
        final ObjectAdapter collection = ((CollectionContent) content).getCollection();
        if (collection.isGhost()) {
            return UNKNOWN;
        } else {
            final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
            return facet.size(collection) > 0 ? CAN_OPEN : CANT_OPEN;
        }
    }
View Full Code Here

    }

    @Override
    public ObjectAdapter[] elements() {
        final ObjectAdapter collection = getCollection();
        final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
        final ObjectAdapter[] elementsArray = new ObjectAdapter[facet.size(collection)];
        int i = 0;
        for (final ObjectAdapter element : facet.iterable(collection)) {
            elementsArray[i++] = element;
        }
        return elementsArray;
    }
View Full Code Here

    }

    @Override
    public void objectActionResult(final ObjectAdapter result, final Placement placement) {
        if (result != null) {
            final CollectionFacet facet = result.getSpecification().getFacet(CollectionFacet.class);
            ObjectAdapter objectToDisplay = result;
            if (facet != null) {
                if (facet.size(result) == 1) {
                    objectToDisplay = facet.firstElement(result);
                }
            }
            getWorkspace().addWindowFor(objectToDisplay, placement);
        }
    }
View Full Code Here

    public boolean canDisplay(final ViewRequirement requirement) {
        final ObjectAdapter collection = requirement.getAdapter();
        if (collection == null) {
            return false;
        } else {
            final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(collection);
            return facet != null && facet.size(collection) > 0;
        }
    }
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.