private boolean renderEagerly() { final RenderFacet renderFacet = objectMember.getFacet(RenderFacet.class); return renderFacet != null && renderFacet.value() == Type.EAGERLY; }
private static Object getCollectionPojo(final OneToManyAssociation association, final ObjectAdapter ownerAdapter) { final PropertyOrCollectionAccessorFacet accessor = association.getFacet(PropertyOrCollectionAccessorFacet.class); return accessor.getProperty(ownerAdapter, InteractionInitiatedBy.FRAMEWORK); }
public Object getCollectionPojo(final OneToManyAssociation association, final ObjectAdapter ownerAdapter) { final PropertyOrCollectionAccessorFacet accessor = association.getFacet(PropertyOrCollectionAccessorFacet.class); return accessor.getProperty(ownerAdapter); }
private boolean renderEagerly(ObjectAdapter valueAdapter) { final RenderFacet renderFacet = objectMember.getFacet(RenderFacet.class); return renderFacet != null && renderFacet.value() == Type.EAGERLY && rendererContext.canEagerlyRender(valueAdapter); }
private EntityCollectionModel(final EntityModel entityModel) { this.type = Type.PARENTED; this.entityModel = entityModel; final OneToManyAssociation collection = collectionFor(entityModel.getObjectAdapterMemento(), getLayoutData()); this.typeOf = forName(collection.getSpecification()); this.collectionMemento = new CollectionMemento(collection, entityModel.getIsisSessionFactory()); this.pageSize = pageSize(collection.getFacet(PagedFacet.class), PAGE_SIZE_DEFAULT_FOR_PARENTED); final SortedByFacet sortedByFacet = collection.getFacet(SortedByFacet.class); this.sortedBy = sortedByFacet != null ? sortedByFacet.value(): null; this.toggledMementosList = Lists.newArrayList(); }
private EntityCollectionModel(final EntityModel entityModel) { this.type = Type.PARENTED; this.entityModel = entityModel; final OneToManyAssociation collection = collectionFor(entityModel.getObjectAdapterMemento(), getLayoutData()); this.typeOf = forName(collection.getSpecification()); this.collectionMemento = new CollectionMemento(collection, entityModel.getIsisSessionFactory()); this.pageSize = pageSize(collection.getFacet(PagedFacet.class), PAGE_SIZE_DEFAULT_FOR_PARENTED); final SortedByFacet sortedByFacet = collection.getFacet(SortedByFacet.class); this.sortedBy = sortedByFacet != null ? sortedByFacet.value(): null; this.toggledMementosList = Lists.newArrayList(); }
/** * Creates an {@link ObjectAdapter adapter} to represent a collection * of the parent. * * <p> * The returned adapter will have a {@link ParentedCollectionOid}; its version * and its persistence are the same as its owning parent. * * <p> * Should only be called if the pojo is known not to be * {@link #getAdapterFor(Object) mapped}. */ private ObjectAdapter createCollectionAdapter( final Object pojo, final ObjectAdapter parentAdapter, final OneToManyAssociation otma) { ensureMapsConsistent(parentAdapter); Assert.assertNotNull(pojo); final Oid parentOid = parentAdapter.getOid(); // persistence of collection follows the parent final ParentedCollectionOid collectionOid = new ParentedCollectionOid((RootOid) parentOid, otma); final ObjectAdapter collectionAdapter = createCollectionAdapter(pojo, collectionOid); // we copy over the type onto the adapter itself // [not sure why this is really needed, surely we have enough info in // the adapter // to look this up on the fly?] final TypeOfFacet facet = otma.getFacet(TypeOfFacet.class); collectionAdapter.setElementSpecificationProvider(ElementSpecificationProviderFromTypeOfFacet.createFrom(facet)); return collectionAdapter; }
private void addValue() { final ObjectAdapter valueAdapter = objectMember.get(objectAdapter); if (valueAdapter == null) { return; } final RenderFacet renderFacet = objectMember.getFacet(RenderFacet.class); boolean eagerlyRender = renderFacet != null && renderFacet.value() == Type.EAGERLY && rendererContext.canEagerlyRender(valueAdapter); final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(valueAdapter); final List<JsonRepresentation> list = Lists.newArrayList(); for (final ObjectAdapter elementAdapter : facet.iterable(valueAdapter)) { final LinkBuilder valueLinkBuilder = DomainObjectReprRenderer.newLinkToBuilder(rendererContext, Rel.VALUE, elementAdapter); if(eagerlyRender) { final DomainObjectReprRenderer renderer = new DomainObjectReprRenderer(getRendererContext(), getLinkFollowSpecs(), JsonRepresentation.newMap()); renderer.with(elementAdapter); if(mode.isEventSerialization()) { renderer.asEventSerialization(); } valueLinkBuilder.withValue(renderer.render()); } list.add(valueLinkBuilder.build()); } representation.mapPut("value", list); }
@Override public JsonRepresentation render() { renderMemberContent(); final RenderFacet renderFacet = objectMember.getFacet(RenderFacet.class); boolean eagerlyRender = renderFacet != null && renderFacet.value() == Type.EAGERLY; if ((mode.isInline() && eagerlyRender) || mode.isStandalone() || mode.isMutated() || mode.isEventSerialization() || !objectAdapter.representsPersistent()) { addValue(); } if(!mode.isEventSerialization()) { putDisabledReasonIfDisabled(); } if (mode.isStandalone() || mode.isMutated()) { addExtensionsIsisProprietaryChangedObjects(); } return representation; }