Package org.apache.isis.core.metamodel.spec.feature

Examples of org.apache.isis.core.metamodel.spec.feature.ObjectAssociation


            }
        });

        final List<ObjectAssociation> fields = getElementSpecification().getAssociations(Contributed.EXCLUDED);
        for (int i = 0; i < fields.size(); i++) {
            final ObjectAssociation field = fields.get(i);

            sortOptions.add(new UserActionAbstract("Sort by " + field.getName()) {
                @Override
                public void execute(final Workspace workspace, final View view, final Location at) {
                    order = new FieldComparator(field);
                    view.invalidateContent();
                }
View Full Code Here


        if (!(parent instanceof ObjectAdapter)) {
            parent = getParent().getParent().getContent().getAdapter();
        }

        if (getContent() instanceof FieldContent) {
            final ObjectAssociation field = ((FieldContent) getContent()).getField();
            IsisContext.getPersistenceSession().resolveField(parent, field);
        } else if (getContent() instanceof CollectionContent) {
            IsisContext.getPersistenceSession().resolveImmediately(parent);
        } else if (getContent() instanceof CollectionElement) {
            IsisContext.getPersistenceSession().resolveImmediately(getContent().getAdapter());
View Full Code Here

        }

        final List<ObjectAssociation> associations = target.getSpecification().getAssociations(Contributed.EXCLUDED, ObjectAssociation.Filters.dynamicallyVisible(IsisContext.getAuthenticationSession(), target, where));

        for (int i = 0; i < associations.size(); i++) {
            final ObjectAssociation association = associations.get(i);
            if (association.isOneToOneAssociation() && source.getSpecification().isOfType(association.getSpecification())) {
                final OneToOneAssociation otoa = (OneToOneAssociation) association;
                if (association.get(target) == null && otoa.isAssociationValid(target, source).isAllowed()) {
                    otoa.setAssociation(target, source);
                    break;
                }
            }
        }
View Full Code Here

    protected void buildView() {
        if (getSubviews().length == 0) {
            final ObjectAdapter object = getContent().getAdapter();
            final List<ObjectAssociation> associations = getContent().getSpecification().getAssociations(Contributed.EXCLUDED);

            final ObjectAssociation field = associations.get(0);

            addFieldView(object, field);
            addFieldView(object, associations.get(2));
        }
    }
View Full Code Here

       
        final ObjectSpecification elementSpec = model.getTypeOfSpecification();
       
        final String sortPropertyId = sort.getProperty();
        try {
            final ObjectAssociation sortProperty = elementSpec.getAssociation(sortPropertyId);
            if(sortProperty == null) {
                return adapters;
            }
           
            Ordering<ObjectAdapter> ordering = orderingBy(sortProperty, sort.isAscending());
View Full Code Here

        final ObjectAdapter object = instance;
        final ObjectSpecification nc = object.getSpecification();
        final List<ObjectAssociation> fields = nc.getAssociations();

        for (int f = 0; f < fields.size(); f++) {
            final ObjectAssociation fld = fields.get(f);

            // are ignoring internal collections - these probably should be
            // considered
            // ignore non-persistent fields - there is no persisted field to
            // compare against
            if (fld.isNotPersisted()) {
                continue;
            }
            if (fld.isOneToOneAssociation()) {
                if (fld.getSpecification().isCollectionOrIsAggregated()) {
                    // if pattern contains empty value then it matches anything
                    if (fld.isEmpty(pattern)) {
                        continue;
                    }

                    // find the objects
                    final ObjectAdapter reqd = fld.get(pattern);
                    final ObjectAdapter search = fld.get(object);

                    if (search == null) {
                        return false;
                    }

                    // compare the titles
                    final String r = reqd.titleString().toLowerCase();
                    final String s = search.titleString().toLowerCase();

                    // if the pattern occurs in the object
                    if (s.indexOf(r) == -1) {
                        return false;
                    }
                } else if (fld.isOneToOneAssociation()) {
                    // find the objects
                    final ObjectAdapter reqd = fld.get(pattern);

                    // if pattern contains null reference then it matches
                    // anything
                    if (reqd == null) {
                        continue;
                    }

                    final ObjectAdapter search = fld.get(object);

                    // otherwise there must be a reference, else they can never
                    // match
                    if (search == null) {
                        return false;
View Full Code Here

        all.addElement(adapter);
        PersistorUtil.start(adapter, ResolveState.RESOLVING);

        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);
                setupReferencedObjects(fieldContent, all);
            }
        }

        PersistorUtil.end(adapter);
View Full Code Here

        // work through all its fields
        final List<ObjectAssociation> fields = object.getSpecification().getAssociations();

        for (int i = 0; i < fields.size(); i++) {
            final ObjectAssociation field = fields.get(i);
            final Object obj = field.get(object);

            final String id = field.getId();
            indent(s, level);

            if (field.isOneToManyAssociation()) {
                s.append(id + ": \n" + debugCollectionGraph((ObjectAdapter) obj, level + 1, recursiveElements));
            } else {
                if (recursiveElements.contains(obj)) {
                    s.append(id + ": " + obj + "*\n");
                } else {
View Full Code Here

        if (object.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
            PersistorUtil.start(object, ResolveState.RESOLVING);

            final List<ObjectAssociation> fields = object.getSpecification().getAssociations();
            for (int i = 0; i < fields.size(); i++) {
                final ObjectAssociation field = fields.get(i);
                if (field.isNotPersisted()) {
                    continue;
                }

                final ObjectSpecification fieldSpecification = field.getSpecification();
                if (fieldSpecification.isEncodeable()) {
                    final EncodableFacet encoder = fieldSpecification.getFacet(EncodableFacet.class);
                    ObjectAdapter value;
                    final String valueData = data.value(field.getId());
                    if (valueData != null) {
                        if (valueData.equals("NULL")) {
                            value = null;
                        } else {
                            value = encoder.fromEncodedString(valueData);
                        }
                        ((OneToOneAssociation) field).initAssociation(object, value);
                    }
                } else if (field.isOneToManyAssociation()) {
                    initObjectSetupCollection(object, data, field);
                } else if (field.isOneToOneAssociation()) {
                    initObjectSetupReference(object, data, field);
                }
            }
            object.setOptimisticLock(data.getVersion());
            PersistorUtil.end(object);
View Full Code Here

            throw new FixtureException("no colon (:) in: " + line.trim());
        }
        final String name = line.substring(0, pos).trim();
        String data = line.substring(pos + 1).trim();
        try {
            final ObjectAssociation association = object.getSpecification().getAssociation(name);
            if (data.trim().length() == 0) {
                if (!association.isEmpty(object) && association instanceof OneToOneAssociation) {
                    ((OneToOneAssociation) association).clearAssociation(object);
                }
            } else {
                if (association.isOneToManyAssociation()) {
                    final String[] ids = data.split(" ");
                    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);
                }
            }
        } catch (final ObjectSpecificationException e) {
View Full Code Here

TOP

Related Classes of org.apache.isis.core.metamodel.spec.feature.ObjectAssociation

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.