/*******************************************************************************
* Copyright (c) 2008 Cambridge Semantics Incorporated.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* File: $Source$
* Created by: Matthew Roy ( <a href="mailto:mroy@cambridgesemantics.com">mroy@cambridgesemantics.com </a>)
* Created on: Mar 21, 2008
* Revision: $Id$
*
* Contributors:
* Cambridge Semantics Incorporated - initial API and implementation
*******************************************************************************/
package org.openanzo.datasource;
import org.openanzo.datasource.update.NamedGraphType;
import org.openanzo.rdf.URI;
/**
* This is an object interface used during the update process to describe a namedgraph
*
* @author Matthew Roy ( <a href="mailto:mroy@cambridgesemantics.com">mroy@cambridgesemantics.com </a>)
*
*/
public interface IStoredNamedGraph {
/**
* Get the type of graph
*
* @return the type of graph
*/
public NamedGraphType getNamedGraphType();
/**
* True if the graph is not yet stored
*
* @return True if the graph is not yet stored
*/
public boolean isNewGraph();
/**
* Get the graphs URI
*
* @return the graphs URI
*/
public URI getURI();
/**
* Set the graphs metadata URI
*
* @return the graphs metadata URI
*/
public URI getMetaURI();
/**
* Set the graphs UUID
*
* @return the graphs UUID
*/
public URI getUUID();
/**
* Get the graphs current revision
*
* @return the graphs current revision
*/
public Long getRevision();
/**
* Get the graphs new revision
*
* @return the graphs new revision
*/
public Long getNewRevision();
/**
* Commit the new revision to the store
*/
public void commitNewRevision();
/**
* Abort the new revision number
*/
public void abortNewRevision();
/**
* Set the revision number for the graph
*
* @param revision
* the revision number for the graph
*/
public void setRevision(Long revision);
/**
* Get the last modified time for the graph
*
* @return the last modified time for the graph
*/
public Long getLastModifiedTime();
/**
* Set the last modified time for the graph
*
* @param timestamp
* the last modified time for the graph
*/
public void setLastModifiedTime(Long timestamp);
/**
* Get the last modified by value for the graph
*
* @return the last modified by value for the graph
*/
public URI getLastModifiedBy();
/**
* Set the last modified by value for the graph
*
* @param lastModifiedBy
* the last modified by value for the graph
*/
public void setLastModifiedBy(URI lastModifiedBy);
}