/******************************************************************************* * 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; /** * Core implementation of IStoredNamedGraph * * @author Matthew Roy ( <a href="mailto:mroy@cambridgesemantics.com">mroy@cambridgesemantics.com </a>) * */ public class StoredNamedGraph implements IStoredNamedGraph { protected URI lastModifiedBy; protected Long lastModifiedTime; protected Long revision; protected Long newRevision; protected URI uri; protected URI metaUri; protected URI uuid; protected boolean newGraph = false; protected NamedGraphType type; /** * */ public StoredNamedGraph() { } /** * * @param newGraph * @param type * @param uri * @param metaUri * @param uuid * @param revision * @param lastModifiedBy * @param lastModifiedTime */ public StoredNamedGraph(boolean newGraph, NamedGraphType type, URI uri, URI metaUri, URI uuid, Long revision, URI lastModifiedBy, Long lastModifiedTime) { super(); this.type = type; this.newGraph = newGraph; this.uri = uri; this.metaUri = metaUri; this.uuid = uuid; this.revision = revision; this.lastModifiedTime = lastModifiedTime; this.lastModifiedBy = lastModifiedBy; } @Override public String toString() { return "StoredNamedGraph:" + uri.toString() + ":" + metaUri.toString() + ":" + revision + ":" + newRevision + ":" + uuid + ":" + lastModifiedBy + ":" + lastModifiedTime; } public NamedGraphType getNamedGraphType() { return type; } public boolean isNewGraph() { return newGraph; } public Long getLastModifiedTime() { return lastModifiedTime; } public void commitNewRevision() { if (newRevision != null) { revision = newRevision; newRevision = null; } newGraph = false; } public void abortNewRevision() { newRevision = null; } public Long getNewRevision() { if (newRevision == null) { newRevision = (newGraph) ? revision : Long.valueOf(revision + 1); } return newRevision; } public Long getRevision() { return revision; } public URI getMetaURI() { return metaUri; } public URI getURI() { return uri; } public URI getUUID() { return uuid; } public void setLastModifiedTime(Long timestamp) { this.lastModifiedTime = timestamp; } public void setRevision(Long revision) { this.revision = revision; } public URI getLastModifiedBy() { return lastModifiedBy; } public void setLastModifiedBy(URI lastModifiedBy) { this.lastModifiedBy = lastModifiedBy; } }