@Override public String process(Entity entity, MetaClass metaclass, View view) throws Exception { Document document = _process(entity, view); return documentToString(document); }
protected boolean attrViewPermitted(MetaClass metaClass, String property) { return attrPermitted(metaClass, property, EntityAttrAccess.VIEW); }
protected boolean readPermitted(MetaClass metaClass) { return entityOpPermitted(metaClass, EntityOp.READ); }
throw new IllegalArgumentException("XML description of entity doesn't contain valid 'id' attribute"); entity = createEmptyInstance(loadInfo); entity.setValue("id", loadInfo.getId()); MetaProperty property = metaPropertyPath.getMetaProperty(); if (commitRequest != null && !attrModifyPermitted(metaClass, propertyName)) continue; case COMPOSITION: case ASSOCIATION: MetaClass propertyMetaClass = propertyMetaClass(property); if (commitRequest != null && !updatePermitted(propertyMetaClass) && !readPermitted(propertyMetaClass)) break; MetaClass embeddedMetaClass = property.getRange().asClass(); Entity embeddedEntity = metadata.create(embeddedMetaClass); value = parseEntity(refInstanceEl, embeddedEntity, commitRequest); } else { String id = refInstanceEl.attributeValue("id"); value = parseEntity(refInstanceEl, null, commitRequest); Entity childEntity = parseEntity((Element) childInstanceEl, null, commitRequest); coll.add(childEntity);
if (!readPermitted(entity.getMetaClass())) throw new IllegalAccessException(); if (!attrViewPermitted(metaClass, property.getName())) continue; if (!isPropertyIncluded(view, property) && !DynamicAttributesUtils.isDynamicAttribute(property.getName())) { continue; fieldEl.setText(property.getRange().asDatatype().format(value)); } else if (!DynamicAttributesUtils.isDynamicAttribute(property.getName())) { encodeNull(fieldEl); fieldEl.addAttribute("name", property.getName()); if (value == null) { encodeNull(fieldEl); } else { fieldEl.setText(property.getRange().asEnumeration().format(value)); case COMPOSITION: case ASSOCIATION: MetaClass meta = propertyMetaClass(property); if (!readPermitted(meta)) { break; Element referenceEl = instanceEl.addElement("reference"); referenceEl.addAttribute("name", property.getName());
@Override @Nonnull public String processServiceMethodResult(Object result, Class resultType) throws Exception { Document document = DocumentHelper.createDocument(); Element resultEl = document.addElement("result"); if (result instanceof Entity) { Entity entity = (Entity) result; Document convertedEntity = _process(entity, null); resultEl.add(convertedEntity.getRootElement()); } else if (result instanceof Collection) { if (!checkCollectionItemTypes((Collection) result, Entity.class)) throw new IllegalArgumentException("Items that are not instances of Entity class found in service method result"); ArrayList list = new ArrayList((Collection) result); MetaClass metaClass = null; if (!list.isEmpty()) metaClass = ((Entity) list.get(0)).getMetaClass(); Document processed = _process(list, metaClass, null); resultEl.add(processed.getRootElement()); } else { if (result != null && resultType != Void.TYPE) { Datatype datatype = getDatatype(resultType); resultEl.setText(datatype != null ? datatype.format(result) : result.toString()); } else { encodeNull(resultEl); } } return documentToString(document); }
@Override public String process(Set<Entity> entities) throws Exception { Document document = DocumentHelper.createDocument(); Element rootEl = document.addElement("instances"); for (Entity entity : entities) { encodeEntity(entity, new HashSet<>(), null, rootEl); } return documentToString(document); }
protected Document _process(Entity entity, View view) throws Exception { Document document = DocumentHelper.createDocument(); Element rootEl = document.addElement("instances"); encodeEntity(entity, new HashSet<>(), view, rootEl); return document; }
protected Document _process(List<Entity> entities, MetaClass metaClass, View view) throws Exception { Document document = DocumentHelper.createDocument(); Element rootEl = document.addElement("instances"); for (Entity entity : entities) { encodeEntity(entity, new HashSet<>(), view, rootEl); } return document; }
@Override public String process(List<Entity> entities, MetaClass metaClass, View view) throws Exception { Document document = _process(entities, metaClass, view); return documentToString(document); }
protected boolean attrModifyPermitted(MetaClass metaClass, String property) { return attrPermitted(metaClass, property, EntityAttrAccess.MODIFY); }
protected boolean updatePermitted(MetaClass metaClass) { return entityOpPermitted(metaClass, EntityOp.UPDATE); }