@Override public boolean accept(final ObjectAssociation association) { return association.isOneToOneAssociation(); } };
@Override public String checkFieldType(final ObjectAssociation objectField) { return objectField.isOneToOneAssociation() ? null : "is not an object"; }
public LinkedObject[] linkedFields(final List<ObjectAssociation> fields) { final LinkedObject[] includedFields = new LinkedObject[fields.size()]; for (int i = 0; i < fields.size(); i++) { final String id2 = fields.get(i).getId(); if (fields.get(i).isOneToOneAssociation() && linkedFields.containsKey(id2)) { includedFields[i] = linkedFields.get(id2); } } return includedFields; }
public static void write(final Request request, final String summary, final ObjectAdapter object, final ObjectAssociation field, final ObjectAdapter collection, final int noColumns, final List<ObjectAssociation> fields, final boolean linkAllFields, final boolean showIconByDefault, final String tableClass, final String[] rowClasses) { final boolean[] linkFields = new boolean[noColumns]; if (linkAllFields) { for (int i = 0; i < linkFields.length; i++) { linkFields[i] = fields.get(i).isOneToOneAssociation(); } } final RequestContext context = request.getContext(); final TableContentWriter rowBuilder = rowBuilder(request, context, null, context.mapObject(object, Scope.REQUEST), field.getId(), fields, showIconByDefault); write(request, collection, summary, rowBuilder, tableClass, rowClasses); }
protected OneToOneAssociation getPropertyThatIsVisibleAndUsable(final String propertyId, final Intent intent, Where where) { final ObjectAssociation association = objectAdapter.getSpecification().getAssociation(propertyId); if (association == null || !association.isOneToOneAssociation()) { throwNotFoundException(propertyId, MemberType.PROPERTY); } final OneToOneAssociation property = (OneToOneAssociation) association; return memberThatIsVisibleAndUsable(property, MemberType.PROPERTY, intent, where); }
public PropertyResult definePropertyOrAlias(final String heading, final int colNum) { OneToOneAssociation otoa = null; try { final int aliasColumn = getAliasBinding().getColumn(); if (colNum == aliasColumn) { return PropertyResult.ALIAS; } ObjectAssociation association = null; try { final String memberName = StringUtils.memberIdFor(heading); association = spec.getAssociation(memberName); } catch (final Exception ex) { return PropertyResult.NO_SUCH_PROPERTY; } if (!association.isOneToOneAssociation()) { return PropertyResult.NOT_A_PROPERTY; } otoa = (OneToOneAssociation) association; return PropertyResult.OK; } finally { // add an association if OK, add null otherwise getProperties().add(otoa); } }
protected OneToOneAssociation getPropertyThatIsVisibleForIntent(final String propertyId, final Intent intent, Where where) { final ObjectAssociation association; try { final ObjectSpecification specification = objectAdapter.getSpecification(); association = specification.getAssociation(propertyId); } catch(Exception ex) { // fall through throwNotFoundException(propertyId, MemberType.PROPERTY); return null; // to keep compiler happy. } if (association == null || !association.isOneToOneAssociation()) { throwNotFoundException(propertyId, MemberType.PROPERTY); } final OneToOneAssociation property = (OneToOneAssociation) association; return memberThatIsVisibleForIntent(property, MemberType.PROPERTY, intent, where); }
public OneToOneAssociation getPropertyThatIsVisibleForIntent( final String propertyId, final Intent intent) { final Where where = rendererContext.getWhere(); final ObjectAssociation association; try { final ObjectSpecification specification = objectAdapter.getSpecification(); association = specification.getAssociation(propertyId); } catch(Exception ex) { // fall through throwNotFoundException(propertyId, MemberType.PROPERTY); return null; // to keep compiler happy. } if (association == null || !association.isOneToOneAssociation()) { throwNotFoundException(propertyId, MemberType.PROPERTY); } final OneToOneAssociation property = (OneToOneAssociation) association; return memberThatIsVisibleForIntent(property, MemberType.PROPERTY, intent); }
private void addObjectAndAssociates(final ObjectAdapter adapter) { if (objects.contains(adapter.getObject())) { return; } objects.add(adapter.getObject()); final ObjectSpecification adapterSpec = adapter.getSpecification(); final List<ObjectAssociation> associations = adapterSpec.getAssociations(); for (final ObjectAssociation association : associations) { if (association.isNotPersisted()) { continue; } final ObjectAdapter associatedObject = association.get(adapter); 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); } } }
private void updateField(final ObjectAdapter objectAdapter, final ObjectData objectData, final ObjectAssociation objectAssoc) { final Object fieldData = objectData.getEntry(objectAssoc.getId()); if (objectAssoc.isOneToManyAssociation()) { updateOneToManyAssociation(objectAdapter, (OneToManyAssociation) objectAssoc, (CollectionData) fieldData); } else if (objectAssoc.getSpecification().containsFacet(EncodableFacet.class)) { final EncodableFacet facet = objectAssoc.getSpecification().getFacet(EncodableFacet.class); final ObjectAdapter value = facet.fromEncodedString((String) fieldData); ((OneToOneAssociation) objectAssoc).initAssociation(objectAdapter, value); } else if (objectAssoc.isOneToOneAssociation()) { updateOneToOneAssociation(objectAdapter, (OneToOneAssociation) objectAssoc, (Data) fieldData); } }
private void updateField(final ObjectAdapter object, final ObjectData od, final ObjectAssociation field) { final Object fieldData = od.getEntry(field.getId()); if (field.isOneToManyAssociation()) { updateOneToManyAssociation(object, (OneToManyAssociation) field, (CollectionData) fieldData); } else if (field.getSpecification().containsFacet(EncodableFacet.class)) { final EncodableFacet facet = field.getSpecification().getFacet(EncodableFacet.class); final ObjectAdapter value = facet.fromEncodedString((String) fieldData); ((OneToOneAssociation) field).initAssociation(object, value); } else if (field.isOneToOneAssociation()) { updateOneToOneAssociation(object, (OneToOneAssociation) field, (Data) fieldData); } }
protected ObjectData createObjectData(final ObjectAdapter adapter, final boolean ensurePersistent) { if (LOG.isDebugEnabled()) { LOG.debug("compiling object data for " + adapter); } final ObjectSpecification adapterSpec = adapter.getSpecification(); final ObjectData data = new ObjectData(adapterSpec, (SerialOid) adapter.getOid(), (FileVersion) adapter.getVersion()); final List<ObjectAssociation> associations = adapterSpec.getAssociations(); for (final ObjectAssociation association : associations) { if (association.isNotPersisted()) { continue; } final ObjectAdapter associatedObject = association.get(adapter); final boolean isEmpty = association.isEmpty(adapter); final String associationId = association.getId(); if (association.isOneToManyAssociation()) { saveCollection(associationId, data, associatedObject, ensurePersistent); } else if (association.getSpecification().isEncodeable()) { saveEncoded(data, associationId, associatedObject, isEmpty); } else if (association.isOneToOneAssociation()) { saveReference(data, associationId, associatedObject, ensurePersistent); } } return data; }
private void addObjectAndAssociates(final ObjectAdapter adapter) { if (objects.contains(adapter.getObject())) { return; } objects.add(adapter.getObject()); final ObjectSpecification adapterSpec = adapter.getSpecification(); final List<ObjectAssociation> associations = adapterSpec.getAssociations(Contributed.EXCLUDED); for (final ObjectAssociation association : associations) { if (association.isNotPersisted()) { continue; } final ObjectAdapter associatedObject = association.get(adapter, InteractionInitiatedBy.FRAMEWORK); final boolean isEmpty = association.isEmpty(adapter, InteractionInitiatedBy.FRAMEWORK); 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); } } }
linkAllView = request.getContext().fullUriPath(linkAllView); for (int i = 0; i < linkFields.length; i++) { final boolean isObject = fields.get(i).isOneToOneAssociation(); final boolean isNotParseable = !fields.get(i).getSpecification().containsFacet(ParseableFacet.class); linkFields[i] = isObject && isNotParseable ? new LinkedObject(linkAllView) : null;
private void createFieldData(final ObjectAdapter object, final ObjectData data, final ObjectAssociation field) { Object fieldData; if (field.isOneToManyAssociation()) { final ObjectAdapter coll = field.get(object); fieldData = createCollectionData(coll); } else if (field.getSpecification().isEncodeable()) { final EncodableFacet facet = field.getSpecification().getFacet(EncodableFacet.class); final ObjectAdapter value = field.get(object); fieldData = facet.toEncodedString(value); } else if (field.isOneToOneAssociation()) { final ObjectAdapter ref = ((OneToOneAssociation) field).get(object); fieldData = createReferenceData(ref); } else { throw new UnknownTypeException(field); } data.addField(field.getId(), fieldData); }
private void createAssociationData(final ObjectAdapter adapter, final ObjectData data, final ObjectAssociation objectAssoc) { Object assocData; if (objectAssoc.isOneToManyAssociation()) { final ObjectAdapter collAdapter = objectAssoc.get(adapter, InteractionInitiatedBy.FRAMEWORK); assocData = createCollectionData(collAdapter); } else if (objectAssoc.getSpecification().isEncodeable()) { final EncodableFacet facet = objectAssoc.getSpecification().getFacet(EncodableFacet.class); final ObjectAdapter value = objectAssoc.get(adapter, InteractionInitiatedBy.FRAMEWORK); assocData = facet.toEncodedString(value); } else if (objectAssoc.isOneToOneAssociation()) { final ObjectAdapter referencedAdapter = objectAssoc.get(adapter, InteractionInitiatedBy.FRAMEWORK); assocData = createReferenceData(referencedAdapter); } else { throw new UnknownTypeException(objectAssoc); } data.addField(objectAssoc.getId(), assocData); }
private void setDefaults(final RequestContext context, final ObjectAdapter object, final InputField[] formFields, final FormState entryState, final boolean showIcon) { for (final InputField formField : formFields) { final String fieldId = formField.getName(); final ObjectAssociation field = object.getSpecification().getAssociation(fieldId); final ObjectAdapter defaultValue = field.getDefault(object); if (defaultValue == null) { continue; } final String title = defaultValue.titleString(); if (field.getSpecification().containsFacet(ParseableFacet.class)) { formField.setValue(title); } else if (field.isOneToOneAssociation()) { final ObjectSpecification objectSpecification = field.getSpecification(); if (defaultValue != null) { final String iconSegment = showIcon ? "<img class=\"small-icon\" src=\"" + context.imagePath(objectSpecification) + "\" alt=\"" + objectSpecification.getShortIdentifier() + "\"/>" : ""; final String html = iconSegment + title; formField.setHtml(html); final String value = defaultValue == null ? null : context.mapObject(defaultValue, Scope.INTERACTION); formField.setValue(value); } } } }
private void addMembers() { final JsonRepresentation membersList = JsonRepresentation.newArray(); representation.mapPut("members", membersList); final List<ObjectAssociation> associations = objectSpecification.getAssociations(Contributed.EXCLUDED); for (final ObjectAssociation association : associations) { if (association.isOneToOneAssociation()) { final OneToOneAssociation property = (OneToOneAssociation) association; final LinkBuilder linkBuilder = PropertyDescriptionReprRenderer.newLinkToBuilder(getRendererContext(), Rel.PROPERTY, objectSpecification, property); membersList.arrayAdd(linkBuilder.build()); } else if (association.isOneToManyAssociation()) { final OneToManyAssociation collection = (OneToManyAssociation) association; final LinkBuilder linkBuilder = CollectionDescriptionReprRenderer.newLinkToBuilder(getRendererContext(), Rel.PROPERTY, objectSpecification, collection); membersList.arrayAdd(linkBuilder.build()); } } final List<ObjectAction> actions = objectSpecification.getObjectActions(Contributed.INCLUDED); for (final ObjectAction action : actions) { final LinkBuilder linkBuilder = ActionDescriptionReprRenderer.newLinkToBuilder(getRendererContext(), Rel.ACTION, objectSpecification, action); membersList.arrayAdd(linkBuilder.build()); } }
private void addMembers() { final JsonRepresentation membersList = JsonRepresentation.newArray(); representation.mapPut("members", membersList); final List<ObjectAssociation> associations = objectSpecification.getAssociations(); for (final ObjectAssociation association : associations) { if (association.isOneToOneAssociation()) { final OneToOneAssociation property = (OneToOneAssociation) association; final LinkBuilder linkBuilder = PropertyDescriptionReprRenderer.newLinkToBuilder(getResourceContext(), Rel.PROPERTY, objectSpecification, property); membersList.arrayAdd(linkBuilder.build()); } else if (association.isOneToManyAssociation()) { final OneToManyAssociation collection = (OneToManyAssociation) association; final LinkBuilder linkBuilder = CollectionDescriptionReprRenderer.newLinkToBuilder(getResourceContext(), Rel.PROPERTY, objectSpecification, collection); membersList.arrayAdd(linkBuilder.build()); } } final List<ObjectAction> actions = objectSpecification.getObjectActions(Contributed.INCLUDED); for (final ObjectAction action : actions) { final LinkBuilder linkBuilder = ActionDescriptionReprRenderer.newLinkToBuilder(getResourceContext(), Rel.ACTION, objectSpecification, action); membersList.arrayAdd(linkBuilder.build()); } }
private void addMembers() { final JsonRepresentation membersList = JsonRepresentation.newArray(); representation.mapPut("members", membersList); final List<ObjectAssociation> associations = objectSpecification.getAssociations(Contributed.EXCLUDED); for (final ObjectAssociation association : associations) { if (association.isOneToOneAssociation()) { final OneToOneAssociation property = (OneToOneAssociation) association; final LinkBuilder linkBuilder = PropertyDescriptionReprRenderer.newLinkToBuilder(getRendererContext(), Rel.PROPERTY, objectSpecification, property); membersList.arrayAdd(linkBuilder.build()); } else if (association.isOneToManyAssociation()) { final OneToManyAssociation collection = (OneToManyAssociation) association; final LinkBuilder linkBuilder = CollectionDescriptionReprRenderer.newLinkToBuilder(getRendererContext(), Rel.PROPERTY, objectSpecification, collection); membersList.arrayAdd(linkBuilder.build()); } } final List<ObjectAction> actions = objectSpecification.getObjectActions(Contributed.INCLUDED); for (final ObjectAction action : actions) { final LinkBuilder linkBuilder = ActionDescriptionReprRenderer.newLinkToBuilder(getRendererContext(), Rel.ACTION, objectSpecification, action); membersList.arrayAdd(linkBuilder.build()); } }