All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.bigdata.bfs.IContentRepository Maven / Gradle / Ivy

package com.bigdata.bfs;

import java.util.Iterator;

/**
 * Document-centric interface for the {@link BigdataFileSystem}.
 * 
 * @author Bryan Thompson
 * @version $Id$
 * @deprecated This is part of the BFS support.
 */
public interface IContentRepository 
{

    /**
     * Fetch a single document object based on a URI.
     * 
     * @param id
     *            the identifier of the document to fetch
     * 
     * @return the document -or- null if there is no such document.
     */
    Document read( String id);
    
    /**
     * Create a new persistent document in this repository based on the metadata
     * and content in the supplied document object.
     * 
     * @param document
     *            an object containing the content and metadata to persist
     * 
     * @return The new version.
     */
    int create( Document document );
    
    /**
     * Update an existing persistent document in this repository based on the
     * metadata and content in the supplied document object. The document to be
     * updated will be identified by the {@link DocumentHeader#getId()} method.
     * 
     * @param document
     *            an object containing the content and metadata to update
     * 
     * @return The new version.
     */
    int update( Document document );
    
    /**
     * Delete a single document.
     * 
     * @param id
     *            the identifier of the document to delete
     * 
     * @return The #of blocks that were deleted for that file.
     */
    long delete(String id);
    
    /**
     * Delete all documents in the identified key range.
     * 

* Note: If you assign identifiers using a namespace then you can use this * method to rapidly delete all documents within that namespace. * * @param fromId * The identifier of the first document to be deleted or * null if there is no lower bound. * @param toId * The identifier of the first document that will NOT be deleted * or null if there is no upper bound. * * @return The #of files that were deleted. */ long deleteAll(String fromId, String toId); /** * Return a listing of the documents and metadata about them in this * repository. *

* Note: If you assign identifiers using a namespace then you can use this * method to efficiently visit all documents within that namespace. * * @param fromId * The identifier of the first document to be visited or * null if there is no lower bound. * @param toId * The identifier of the first document that will NOT be visited * or null if there is no upper bound. * * @return an iterator of {@link DocumentHeader}s. */ Iterator getDocumentHeaders(String fromId, String toId); /** * Full text search against the indexed documents. * * @param query * A query. * * @return An iterator visiting the identifiers of the documents in order of * decreasing relevance to the query. * * @todo return more metadata about the search results. * * @todo allow fromId, toId to restrict to a given namespace? * * @todo register analyzers against MIME types and index those that are * selected on index or update. * * @todo refactor out of this API since more than one free text index could * be used over the repo. */ Iterator search(String query); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy