示例#1
0
  public ListItem getParentListItem() {

    int minElements = 1;

    Iterator objectIterator = getObjects().iterator();
    while (objectIterator.hasNext()) {
      SoapClientObject obj = (SoapClientObject) objectIterator.next();
      Iterator refIterator = obj.getReferences().iterator();
      while (refIterator.hasNext()) {
        SoapClientObjectReference ref = (SoapClientObjectReference) refIterator.next();
        ArrayList<SoapClientObjectReferencePath> pathElements =
            (ArrayList<SoapClientObjectReferencePath>) ref.getPathElements();

        if (pathElements.size() >= minElements) {

          SoapClientObjectReferencePath parent = pathElements.get(pathElements.size() - 1);
          RemoteListItem parentItem = new RemoteListItem();
          parentItem.setRefId(parent.getRefId());
          parentItem.setType(parent.getType());
          parentItem.setTitle(parent.getTitle());
          return parentItem;
        }
      }
    }
    return null;
  }
示例#2
0
  /**
   * Check for a naming conflict e.g. when pasting files from clipboard
   *
   * @param files
   * @return
   */
  public HashMap<File, SoapClientObject> checkNamingConflict(List<File> files) {

    HashMap<File, SoapClientObject> conflict = new HashMap<File, SoapClientObject>();

    for (File file : files) {
      for (SoapClientObject obj : getObjects()) {
        if (file.getName().equalsIgnoreCase(obj.getTitle())
            && (obj.getType().equals("file")
                || obj.getType().equals("fold")
                || obj.getType().equals("cat"))
            && obj.isWritable()) {
          logger.info("File names are equal!");
          conflict.put(file, obj);
        }
      }
    }
    return conflict;
  }
示例#3
0
  public List<File> checkNamingConflicts(List<File> files) {

    ArrayList<File> conflicted = new ArrayList<File>();

    for (File file : files) {
      for (SoapClientObject obj : getObjects()) {
        if (file.getName().equalsIgnoreCase(obj.getTitle())
            && (obj.getType().equals("file")
                || obj.getType().equals("fold")
                || obj.getType().equals("cat"))
            && obj.isWritable()) {
          logger.info("File names are equal!");
          conflicted.add(file);
        }
      }
    }
    return conflicted;
  }
示例#4
0
  /**
   * Create a unique file name
   *
   * @param file
   * @return
   */
  public String createUniqueName(File file) {

    String newName;

    for (int i = 2; i < 50; i++) {

      newName = FileManagerUtils.increaseVersionName(file.getName(), i);

      // Check if file exists
      boolean exists = false;
      for (SoapClientObject obj : getObjects()) {

        if (obj.getTitle().equalsIgnoreCase(newName)) {
          exists = true;
        }
      }

      if (!exists) {
        logger.info("Using new name " + newName);
        return newName;
      }
    }
    return file.getName();
  }
示例#5
0
  /**
   * Get list of path elements
   *
   * @param includeLeaf
   * @return
   */
  public List<SoapClientObjectReferencePath> getFirstPath(boolean includeLeaf) {

    List<SoapClientObjectReferencePath> pathList = new ArrayList<SoapClientObjectReferencePath>();

    // choose first object
    for (SoapClientObject obj : getObjects()) {
      // choose first reference
      for (SoapClientObjectReference ref : obj.getReferences()) {
        pathList = ref.getPathElements();
        break;
      }
      break;
    }

    // Append a leaf the leaf node as path element if desired
    if (includeLeaf) {

      for (SoapClientObject obj : getObjects()) {
        for (SoapClientObjectReference ref : obj.getReferences()) {
          SoapClientObjectReferencePath leaf = new SoapClientObjectReferencePath();

          if (pathList.size() < 1) {
            leaf.setTitle("Repository");
          } else {
            leaf.setTitle(obj.getTitle());
          }
          leaf.setRefId(ref.getRefId());
          leaf.setType(obj.getType());
          pathList.add(leaf);
          break;
        }
        break;
      }
    }
    return pathList;
  }