@Override public String process(Entity entity, MetaClass metaclass, View view) throws Exception { Document document = _process(entity, view); return documentToString(document); }
@Override public String process(List<Entity> entities, MetaClass metaClass, View view) throws Exception { Document document = _process(entities, metaClass, view); 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); }
@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); }