コード例 #1
0
ファイル: JcrFolder.java プロジェクト: OpenDataSpace/opencmis
  /**
   * See CMIS 1.0 section 2.2.4.2 createDocumentFromSource
   *
   * @throws CmisStorageException
   */
  public JcrNode addNodeFromSource(JcrDocument source, Properties properties) {
    try {
      String destPath = PathManager.createCmisPath(getNode().getPath(), source.getName());
      Session session = getNode().getSession();

      session.getWorkspace().copy(source.getNode().getPath(), destPath);
      JcrNode jcrNode = create(session.getNode(destPath));

      // overlay new properties
      if (properties != null && properties.getProperties() != null) {
        updateProperties(jcrNode.getNode(), jcrNode.getTypeId(), properties);
      }

      session.save();
      return jcrNode;
    } catch (RepositoryException e) {
      log.debug(e.getMessage(), e);
      throw new CmisStorageException(e.getMessage(), e);
    }
  }
コード例 #2
0
ファイル: JcrFolder.java プロジェクト: OpenDataSpace/opencmis
 /**
  * See CMIS 1.0 section 2.2.4.14 deleteObject
  *
  * @throws CmisRuntimeException
  */
 @Override
 public void delete(boolean allVersions, boolean isPwc) {
   try {
     if (getNode().hasNodes()) {
       throw new CmisConstraintException("Folder is not empty!");
     } else {
       super.delete(allVersions, isPwc);
     }
   } catch (RepositoryException e) {
     log.debug(e.getMessage(), e);
     throw new CmisRuntimeException(e.getMessage(), e);
   }
 }
コード例 #3
0
ファイル: JcrFolder.java プロジェクト: OpenDataSpace/opencmis
  @Override
  protected void compileProperties(
      PropertiesImpl properties, Set<String> filter, ObjectInfoImpl objectInfo)
      throws RepositoryException {

    super.compileProperties(properties, filter, objectInfo);

    objectInfo.setHasContent(false);
    objectInfo.setSupportsDescendants(true);
    objectInfo.setSupportsFolderTree(true);

    String typeId = getTypeIdInternal();

    addPropertyString(properties, typeId, filter, PropertyIds.PATH, pathManager.getPath(getNode()));

    // folder properties
    if (pathManager.isRoot(getNode())) {
      objectInfo.setHasParent(false);
    } else {
      objectInfo.setHasParent(true);
      addPropertyId(properties, typeId, filter, PropertyIds.PARENT_ID, getParent().getObjectId());
    }
  }