/** * Serializes the type definition to JSON, using the format defined in the * CMIS specification. * * The JSON is UTF-8 encoded and the stream is not closed. */ public static void writeToJSON(TypeDefinition type, OutputStream stream) throws IOException { if (type == null) { throw new IllegalArgumentException("Type must be set!"); } if (stream == null) { throw new IllegalArgumentException("Output stream must be set!"); } Writer writer = new BufferedWriter(new OutputStreamWriter(stream, IOUtils.UTF8)); JSONConverter.convert(type, DateTimeFormat.SIMPLE).writeJSONString(writer); writer.flush(); }
/** * Converts an object in a folder list. */ public static JSONObject convert(final ObjectInFolderData objectInFolder, final TypeCache typeCache, final boolean succinct, final DateTimeFormat dateTimeFormat) { if ((objectInFolder == null) || (objectInFolder.getObject() == null)) { return null; } JSONObject result = new JSONObject(); result.put(JSON_OBJECTINFOLDER_OBJECT, convert(objectInFolder.getObject(), typeCache, PropertyMode.OBJECT, succinct, dateTimeFormat)); setIfNotNull(JSON_OBJECTINFOLDER_PATH_SEGMENT, objectInFolder.getPathSegment(), result); convertExtension(objectInFolder, result); return result; }
@Override public TypeDefinition updateType(String repositoryId, TypeDefinition type, ExtensionsData extension) { // build URL UrlBuilder url = getRepositoryUrl(repositoryId); // prepare form data final FormDataWriter formData = new FormDataWriter(Constants.CMISACTION_UPDATE_TYPE); if (type != null) { formData.addParameter(Constants.CONTROL_TYPE, JSONConverter.convert(type, getDateTimeFormat()) .toJSONString()); } // send Response resp = post(url, formData.getContentType(), new Output() { @Override public void write(OutputStream out) throws IOException { formData.write(out); } }); Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset()); return JSONConverter.convertTypeDefinition(json); }
/** * Converts an object in a folder list. */ public static JSONObject convert(final ObjectInFolderData objectInFolder, final TypeCache typeCache, final boolean succinct, final DateTimeFormat dateTimeFormat) { if ((objectInFolder == null) || (objectInFolder.getObject() == null)) { return null; } JSONObject result = new JSONObject(); result.put(JSON_OBJECTINFOLDER_OBJECT, convert(objectInFolder.getObject(), typeCache, PropertyMode.OBJECT, succinct, dateTimeFormat)); setIfNotNull(JSON_OBJECTINFOLDER_PATH_SEGMENT, objectInFolder.getPathSegment(), result); convertExtension(objectInFolder, result); return result; }
@Override public TypeDefinition createType(String repositoryId, TypeDefinition type, ExtensionsData extension) { // build URL UrlBuilder url = getRepositoryUrl(repositoryId); // prepare form data final FormDataWriter formData = new FormDataWriter(Constants.CMISACTION_CREATE_TYPE); if (type != null) { formData.addParameter(Constants.CONTROL_TYPE, JSONConverter.convert(type, getDateTimeFormat()) .toJSONString()); } // send Response resp = post(url, formData.getContentType(), new Output() { @Override public void write(OutputStream out) throws IOException { formData.write(out); } }); Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset()); return JSONConverter.convertTypeDefinition(json); }
@Override public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request, HttpServletResponse response) throws Exception { assert context != null; assert service != null; assert repositoryId != null; assert request != null; assert response != null; // get parameters String objectId = ((BrowserCallContextImpl) context).getObjectId(); // execute if (stopBeforeService(service)) { return; } AllowableActions allowableActions = service.getAllowableActions(repositoryId, objectId, null); if (stopAfterService(service)) { return; } JSONObject jsonAllowableActions = JSONConverter.convert(allowableActions); response.setStatus(HttpServletResponse.SC_OK); writeJSON(jsonAllowableActions, request, response); } }
/** * Converts a type definition container. */ public static JSONObject convert(final TypeDefinitionContainer container, final DateTimeFormat dateTimeFormat) { if (container == null) { return null; } JSONObject result = new JSONObject(); result.put(JSON_TYPESCONTAINER_TYPE, convert(container.getTypeDefinition(), dateTimeFormat)); if (isNotEmpty(container.getChildren())) { JSONArray children = new JSONArray(); for (TypeDefinitionContainer child : container.getChildren()) { children.add(convert(child, dateTimeFormat)); } result.put(JSON_TYPESCONTAINER_CHILDREN, children); } convertExtension(container, result); return result; }
@Override public TypeDefinition createType(String repositoryId, TypeDefinition type, ExtensionsData extension) { // build URL UrlBuilder url = getRepositoryUrl(repositoryId); // prepare form data final FormDataWriter formData = new FormDataWriter(Constants.CMISACTION_CREATE_TYPE); if (type != null) { formData.addParameter(Constants.CONTROL_TYPE, JSONConverter.convert(type, getDateTimeFormat()) .toJSONString()); } // send Response resp = post(url, formData.getContentType(), new Output() { @Override public void write(OutputStream out) throws IOException { formData.write(out); } }); Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset()); return JSONConverter.convertTypeDefinition(json); }
@Override public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request, HttpServletResponse response) throws Exception { assert context != null; assert service != null; assert repositoryId != null; assert request != null; assert response != null; // get parameters String typeId = getStringParameter(request, PARAM_TYPE_ID); DateTimeFormat dateTimeFormat = getDateTimeFormatParameter(request); // execute if (stopBeforeService(service)) { return; } TypeDefinition type = service.getTypeDefinition(repositoryId, typeId, null); if (stopAfterService(service)) { return; } JSONObject jsonType = JSONConverter.convert(type, dateTimeFormat); response.setStatus(HttpServletResponse.SC_OK); writeJSON(jsonType, request, response); } }
/** * Converts a folder container. */ public static JSONObject convert(final ObjectInFolderContainer container, final TypeCache typeCache, final boolean succinct, final DateTimeFormat dateTimeFormat) { if (container == null) { return null; } JSONObject result = new JSONObject(); result.put(JSON_OBJECTINFOLDERCONTAINER_OBJECT, convert(container.getObject(), typeCache, succinct, dateTimeFormat)); if (isNotEmpty(container.getChildren())) { JSONArray children = new JSONArray(); for (ObjectInFolderContainer descendant : container.getChildren()) { children.add(JSONConverter.convert(descendant, typeCache, succinct, dateTimeFormat)); } result.put(JSON_OBJECTINFOLDERCONTAINER_CHILDREN, children); } convertExtension(container, result); return result; }
@Override public TypeDefinition updateType(String repositoryId, TypeDefinition type, ExtensionsData extension) { // build URL UrlBuilder url = getRepositoryUrl(repositoryId); // prepare form data final FormDataWriter formData = new FormDataWriter(Constants.CMISACTION_UPDATE_TYPE); if (type != null) { formData.addParameter(Constants.CONTROL_TYPE, JSONConverter.convert(type, getDateTimeFormat()) .toJSONString()); } // send Response resp = post(url, formData.getContentType(), new Output() { @Override public void write(OutputStream out) throws IOException { formData.write(out); } }); Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset()); return JSONConverter.convertTypeDefinition(json); }
@Override public void serve(CallContext context, CmisService service, String repositoryId, HttpServletRequest request, HttpServletResponse response) throws Exception { assert context != null; assert service != null; assert request != null; assert response != null; // execute if (stopBeforeService(service)) { return; } List<RepositoryInfo> infoDataList = service.getRepositoryInfos(null); if (stopAfterService(service)) { return; } JSONObject result = new JSONObject(); for (RepositoryInfo ri : infoDataList) { String repositoryUrl = compileRepositoryUrl(request, ri.getId()).toString(); String rootUrl = compileRootUrl(request, ri.getId()).toString(); result.put(ri.getId(), JSONConverter.convert(ri, repositoryUrl, rootUrl, true)); } response.setStatus(HttpServletResponse.SC_OK); writeJSON(result, request, response); } }
/** * Converts a folder container. */ public static JSONObject convert(final ObjectInFolderContainer container, final TypeCache typeCache, final boolean succinct, final DateTimeFormat dateTimeFormat) { if (container == null) { return null; } JSONObject result = new JSONObject(); result.put(JSON_OBJECTINFOLDERCONTAINER_OBJECT, convert(container.getObject(), typeCache, succinct, dateTimeFormat)); if (isNotEmpty(container.getChildren())) { JSONArray children = new JSONArray(); for (ObjectInFolderContainer descendant : container.getChildren()) { children.add(JSONConverter.convert(descendant, typeCache, succinct, dateTimeFormat)); } result.put(JSON_OBJECTINFOLDERCONTAINER_CHILDREN, children); } convertExtension(container, result); return result; }
/** * Converts a type definition container. */ public static JSONObject convert(final TypeDefinitionContainer container, final DateTimeFormat dateTimeFormat) { if (container == null) { return null; } JSONObject result = new JSONObject(); result.put(JSON_TYPESCONTAINER_TYPE, convert(container.getTypeDefinition(), dateTimeFormat)); if (isNotEmpty(container.getChildren())) { JSONArray children = new JSONArray(); for (TypeDefinitionContainer child : container.getChildren()) { children.add(convert(child, dateTimeFormat)); } result.put(JSON_TYPESCONTAINER_CHILDREN, children); } convertExtension(container, result); return result; }
/** * Converts an object parent. */ public static JSONObject convert(final ObjectParentData parent, final TypeCache typeCache, final boolean succinct, final DateTimeFormat dateTimeFormat) { if ((parent == null) || (parent.getObject() == null)) { return null; } JSONObject result = new JSONObject(); result.put(JSON_OBJECTPARENTS_OBJECT, convert(parent.getObject(), typeCache, PropertyMode.OBJECT, succinct, dateTimeFormat)); if (parent.getRelativePathSegment() != null) { result.put(JSON_OBJECTPARENTS_RELATIVE_PATH_SEGMENT, parent.getRelativePathSegment()); } convertExtension(parent, result); return result; }
/** * Converts an object parent. */ public static JSONObject convert(final ObjectParentData parent, final TypeCache typeCache, final boolean succinct, final DateTimeFormat dateTimeFormat) { if ((parent == null) || (parent.getObject() == null)) { return null; } JSONObject result = new JSONObject(); result.put(JSON_OBJECTPARENTS_OBJECT, convert(parent.getObject(), typeCache, PropertyMode.OBJECT, succinct, dateTimeFormat)); if (parent.getRelativePathSegment() != null) { result.put(JSON_OBJECTPARENTS_RELATIVE_PATH_SEGMENT, parent.getRelativePathSegment()); } convertExtension(parent, result); return result; }
/** * Converts a type definition list. */ public static JSONObject convert(final TypeDefinitionList list, final DateTimeFormat dateTimeFormat) { if (list == null) { return null; } JSONObject result = new JSONObject(); if (list.getList() != null) { JSONArray objects = new JSONArray(); for (TypeDefinition type : list.getList()) { objects.add(convert(type, dateTimeFormat)); } result.put(JSON_TYPESLIST_TYPES, objects); } setIfNotNull(JSON_TYPESLIST_HAS_MORE_ITEMS, list.hasMoreItems(), result); setIfNotNull(JSON_TYPESLIST_NUM_ITEMS, list.getNumItems(), result); convertExtension(list, result); return result; }
/** * Converts a type definition list. */ public static JSONObject convert(final TypeDefinitionList list, final DateTimeFormat dateTimeFormat) { if (list == null) { return null; } JSONObject result = new JSONObject(); if (list.getList() != null) { JSONArray objects = new JSONArray(); for (TypeDefinition type : list.getList()) { objects.add(convert(type, dateTimeFormat)); } result.put(JSON_TYPESLIST_TYPES, objects); } setIfNotNull(JSON_TYPESLIST_HAS_MORE_ITEMS, list.hasMoreItems(), result); setIfNotNull(JSON_TYPESLIST_NUM_ITEMS, list.getNumItems(), result); convertExtension(list, result); return result; }
/** * Converts a folder list. */ public static JSONObject convert(final ObjectInFolderList objectInFolderList, final TypeCache typeCache, final boolean succinct, final DateTimeFormat dateTimeFormat) { if (objectInFolderList == null) { return null; } JSONObject result = new JSONObject(); if (objectInFolderList.getObjects() != null) { JSONArray objects = new JSONArray(); for (ObjectInFolderData object : objectInFolderList.getObjects()) { objects.add(convert(object, typeCache, succinct, dateTimeFormat)); } result.put(JSON_OBJECTINFOLDERLIST_OBJECTS, objects); } setIfNotNull(JSON_OBJECTINFOLDERLIST_HAS_MORE_ITEMS, objectInFolderList.hasMoreItems(), result); setIfNotNull(JSON_OBJECTINFOLDERLIST_NUM_ITEMS, objectInFolderList.getNumItems(), result); convertExtension(objectInFolderList, result); return result; }
/** * Converts a folder list. */ public static JSONObject convert(final ObjectInFolderList objectInFolderList, final TypeCache typeCache, final boolean succinct, final DateTimeFormat dateTimeFormat) { if (objectInFolderList == null) { return null; } JSONObject result = new JSONObject(); if (objectInFolderList.getObjects() != null) { JSONArray objects = new JSONArray(); for (ObjectInFolderData object : objectInFolderList.getObjects()) { objects.add(convert(object, typeCache, succinct, dateTimeFormat)); } result.put(JSON_OBJECTINFOLDERLIST_OBJECTS, objects); } setIfNotNull(JSON_OBJECTINFOLDERLIST_HAS_MORE_ITEMS, objectInFolderList.hasMoreItems(), result); setIfNotNull(JSON_OBJECTINFOLDERLIST_NUM_ITEMS, objectInFolderList.getNumItems(), result); convertExtension(objectInFolderList, result); return result; }