/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2002-2008, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotools.data; import java.io.IOException; /** * A data store that can version enable feature types, and then keep version * history for those. * TODO: add better docs on how to leverage featureVersion in standard queries, * as well as * * @author Andrea Aime, TOPP * * * @source $URL$ */ public interface VersioningDataStore extends DataStore { /** * Key used in transaction properties to hold the commit author */ public static final String AUTHOR = "VersioningCommitAuthor"; /** * Key used in transaction properties to hold the commit message */ public static final String MESSAGE = "VersioningCommitMessage"; /** * Returns true if the specified feature type is versioned, false otherwise * * @param typeName * @return */ public boolean isVersioned(String typeName) throws IOException; /** * Alters the versioned state of a feature type * * @param typeName * the type name that must be changed * @param versioned * if true, the type gets version enabled, if false versioning is * disabled * @param t * the transaction used to performe version enabling. It shall * contain user and commit message as properties. * @throws IOException */ public void setVersioned(String typeName, boolean versioned, String author, String message) throws IOException; }