예제 #1
0
 /**
  * True if the filename is already used by an {@link Item} in this {@link CollectionImeji}
  *
  * @param filename
  * @return
  */
 private boolean filenameExistsInCollection(String filename) {
   Search s = new Search(SearchType.ITEM, null);
   return s.searchSimpleForQuery(
               SPARQLQueries.selectContainerItemByFilename(
                   collection.getId(), FilenameUtils.getBaseName(filename)),
               null)
           .size()
       > 0;
 }
예제 #2
0
 /**
  * Search for an item in the current collection with the same filename. The filename must be
  * unique!
  *
  * @param filename
  * @return
  */
 private Item findItemByFileName(String filename) {
   Search s = new Search(SearchType.ITEM, null);
   List<String> sr =
       s.searchSimpleForQuery(
           SPARQLQueries.selectContainerItemByFilename(
               collection.getId(), FilenameUtils.getBaseName(filename)),
           null);
   if (sr.size() == 0)
     throw new RuntimeException(
         "No item found with the filename " + FilenameUtils.getBaseName(filename));
   if (sr.size() > 1)
     throw new RuntimeException(
         "Filename "
             + FilenameUtils.getBaseName(filename)
             + " not unique ("
             + sr.size()
             + " found).");
   return ObjectLoader.loadItem(URI.create(sr.get(0)), user);
 }