@Override public PropertyObjectResolver getObjectResolver() { ObjectResolver resolver = getType().getObjectResolver(); if (resolver != null) { return new PropertyObjectResolverImpl(this, resolver); } return null; }
public static DocumentPropertyObjectResolverImpl create(DocumentModel doc, String xpath) { Field field = Framework.getService(SchemaManager.class).getField(xpath); if (field != null) { ObjectResolver resolver = field.getType().getObjectResolver(); if (resolver != null) { return new DocumentPropertyObjectResolverImpl(doc, xpath, resolver); } } return null; }
protected void writeListProperty(JsonGenerator jg, Property prop) throws IOException { jg.writeStartArray(); if (prop instanceof ArrayProperty) { Object[] ar = (Object[]) prop.getValue(); if (ar == null) { jg.writeEndArray(); return; } Type itemType = ((ListType) prop.getType()).getFieldType(); ObjectResolver resolver = itemType.getObjectResolver(); String path = prop.getXPath(); for (Object o : ar) { if (!fetchProperty(jg, resolver, o, path)) { writeScalarPropertyValue(jg, ((SimpleType) itemType).getPrimitiveType(), o); } } } else { ListProperty listp = (ListProperty) prop; for (Property p : listp.getChildren()) { writeProperty(jg, p); } } jg.writeEndArray(); }
protected void writeScalarProperty(JsonGenerator jg, Property prop) throws IOException { Type type = prop.getType(); Object value = prop.getValue(); if (!fetchProperty(jg, prop.getType().getObjectResolver(), value, prop.getXPath())) { writeScalarPropertyValue(jg, ((SimpleType) type).getPrimitiveType(), value); } }
private Object getScalarPropertyValue(Property property, JsonNode jn, Type type) throws IOException { Object value; if (jn.isObject()) { ObjectResolver resolver = type.getObjectResolver(); if (resolver == null) {