/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.lib.cvsclient.admin; import org.netbeans.lib.cvsclient.file.AbstractFileObject; import org.netbeans.lib.cvsclient.file.DirectoryObject; import org.netbeans.lib.cvsclient.file.FileObject; import org.netbeans.lib.cvsclient.file.ICvsFileSystem; import java.io.IOException; import java.util.Collection; import java.util.Date; /** * Handles the maintaining and reading of administration information on the * local machine. The standard CVS client does this by putting various files in * a CVS directory underneath each checked-out directory. How the files are * laid out and managed is not specified by the protocol document. <P>Hence it * is envisaged that, eventually, a client could add additional files for * higher performance or even change the mechanism for storing the information * completely. * @author Robert Greig */ public interface IAdminReader { /** * Get the Entry for the specified file, if one exists */ Entry getEntry(AbstractFileObject fileObject, ICvsFileSystem cvsFileSystem) throws IOException; /** * Get the entries for a specified directory. * @return an iterator of Entry objects */ Collection<Entry> getEntries(DirectoryObject directoryObject, ICvsFileSystem cvsFileSystem) throws IOException; /** * Get the repository path for a given directory, for example in * the directory /home/project/foo/bar, the repository directory * might be /usr/cvs/foo/bar. The repository directory is commonly * stored in the file <pre>Repository</pre> in the CVS directory on * the client. (This is the case in the standard CVS command-line tool) * @param repository repository path on the server, e.g. /home/bob/cvs. Must not * end with a slash. */ String getRepositoryForDirectory(DirectoryObject directoryObject, String repository, ICvsFileSystem cvsFileSystem) throws IOException; String getStickyTagForDirectory(DirectoryObject directoryObject, ICvsFileSystem cvsFileSystem); boolean hasCvsDirectory(DirectoryObject directoryObject, ICvsFileSystem cvsFileSystem); boolean isModified(FileObject fileObject, Date entryLastModified, ICvsFileSystem cvsFileSystem); boolean isStatic(DirectoryObject directoryObject, ICvsFileSystem cvsFileSystem); }