/** * 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; }
/** * @see org.opencms.cmis.I_CmsCmisRepository#getFolderParent(org.opencms.cmis.CmsCmisCallContext, java.lang.String, java.lang.String) */ public synchronized ObjectData getFolderParent(CmsCmisCallContext context, String folderId, String filter) { List<ObjectParentData> parents = getObjectParents(context, folderId, filter, false, false); if (parents.size() == 0) { throw new CmisInvalidArgumentException("The root folder has no parent!"); } return parents.get(0).getObject(); }
f = createResult(CmisTestResultStatus.WARNING, "getObjectParents() delivered a relative path segment, although it hasn't been requested."); addResult(assertNull(parent.getRelativePathSegment(), null, f));
/** * See CMIS 1.0 section 2.2.3.4 getFolderParent */ public ObjectData getFolderParent(String folderId, String filter, ObjectInfoHandler objectInfos, boolean requiresObjectInfo) { List<ObjectParentData> parents = getObjectParents(folderId, filter, false, false, objectInfos, requiresObjectInfo); if (parents.isEmpty()) { throw new CmisInvalidArgumentException("The root folder has no parent!"); } return parents.get(0).getObject(); }
/** * 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; }
@Override public List<Folder> getParents(OperationContext context) { String objectId = getObjectId(); // get object ids of the parent folders List<ObjectParentData> bindingParents = getBinding().getNavigationService().getObjectParents(getRepositoryId(), objectId, getPropertyQueryName(PropertyIds.OBJECT_ID), false, IncludeRelationships.NONE, null, false, null); List<Folder> parents = new ArrayList<Folder>(); for (ObjectParentData p : bindingParents) { if (p == null || p.getObject() == null || p.getObject().getProperties() == null) { // should not happen... throw new CmisRuntimeException("Repository sent invalid data!"); } // get id property PropertyData<?> idProperty = p.getObject().getProperties().getProperties().get(PropertyIds.OBJECT_ID); if (!(idProperty instanceof PropertyId) && !(idProperty instanceof PropertyString)) { // the repository sent an object without a valid object id... throw new CmisRuntimeException("Repository sent invalid data! No object id!"); } // fetch the object and make sure it is a folder CmisObject parentFolder = getSession().getObject((String) idProperty.getFirstValue(), context); if (!(parentFolder instanceof Folder)) { // the repository sent an object that is not a folder... throw new CmisRuntimeException("Repository sent invalid data! Object is not a folder!"); } parents.add((Folder) parentFolder); } return parents; }
/** * Converts an ObjectParent object. */ public static CmisObjectParentsType convert(ObjectParentData objectParent, CmisVersion cmisVersion) { if (objectParent == null) { return null; } CmisObjectParentsType result = new CmisObjectParentsType(); result.setObject(convert(objectParent.getObject(), cmisVersion)); result.setRelativePathSegment(objectParent.getRelativePathSegment()); // handle extensions convertExtension(objectParent, result); return result; }
@Override public List<Folder> getParents(OperationContext context) { String objectId = getObjectId(); // get object ids of the parent folders List<ObjectParentData> bindingParents = getBinding().getNavigationService().getObjectParents(getRepositoryId(), objectId, getPropertyQueryName(PropertyIds.OBJECT_ID), false, IncludeRelationships.NONE, null, false, null); List<Folder> parents = new ArrayList<Folder>(); for (ObjectParentData p : bindingParents) { if (p == null || p.getObject() == null || p.getObject().getProperties() == null) { // should not happen... throw new CmisRuntimeException("Repository sent invalid data!"); } // get id property PropertyData<?> idProperty = p.getObject().getProperties().getProperties().get(PropertyIds.OBJECT_ID); if (!(idProperty instanceof PropertyId) && !(idProperty instanceof PropertyString)) { // the repository sent an object without a valid object id... throw new CmisRuntimeException("Repository sent invalid data! No object id!"); } // fetch the object and make sure it is a folder CmisObject parentFolder = getSession().getObject((String) idProperty.getFirstValue(), context); if (!(parentFolder instanceof Folder)) { // the repository sent an object that is not a folder... throw new CmisRuntimeException("Repository sent invalid data! Object is not a folder!"); } parents.add((Folder) parentFolder); } return parents; }
if (p == null || p.getObject() == null || p.getObject().getProperties() == null) { PropertyData<?> pathProperty = p.getObject().getProperties().getProperties().get(PropertyIds.PATH); if (!(pathProperty instanceof PropertyString)) { if (p.getRelativePathSegment() == null) { paths.add(folderPath + (folderPath.endsWith("/") ? "" : "/") + p.getRelativePathSegment());
if (p == null || p.getObject() == null || p.getObject().getProperties() == null) { PropertyData<?> pathProperty = p.getObject().getProperties().getProperties().get(PropertyIds.PATH); if (!(pathProperty instanceof PropertyString)) { if (p.getRelativePathSegment() == null) { paths.add(folderPath + (folderPath.endsWith("/") ? "" : "/") + p.getRelativePathSegment());
if ((object == null) || (object.getObject() == null)) { continue; writeObjectEntry(service, entry, object.getObject(), null, repositoryId, null, object.getRelativePathSegment(), baseUrl, false, context.getCmisVersion());