    All Packages  Class Hierarchy  This Package  Previous  Next  Index

# Class w3c.cvs.CvsDirectory

    java.lang.Object
       |
       +----w3c.cvs.CvsDirectory

public class CvsDirectory
extends Object
implements LRUAble, CVS

##

cache
  Our cache of existing CVS managers.
cachesize
  Our recommended cache size.
clean
  Has this directory manager been cleaned up (removed from cache).
cvscheck_stamp
  The time at which we last checked the cvs status of that directory.
cvspath_def
  The default CVS path.
CVSPATH_P
  Property giving the path of the cvs binary.
cvsrep_stamp
  The time at which we last examined the repository for this directory.
cvsroot_def
  The default CVS root path.
CVSROOT_P
  Property giving your CVS repository.
cvswrap_def
  The default CVS wrapper path.
CVSWRAP_P
  Property giving the path of the cvswrapper.
defprops
  Get or create a manager for the given directory.
directory
  The directory we manage.
entries
  Known CVS entries (files)
lru
  All CVS entries are LRU maintained too.
next
  LRU management - next entry.
prev
  LRU management - previous entry.
props
  The properties we use for initialization.
repdir
  The corresponding repository directory (when available).
runner
  Our associated CvsRunner.

##

CvsDirectory(File, Properties, String, String, String[])
  Create a new CVS manager for the given directory.

##

add(String[])
  Add the given file to the CVS repository.
cacheLoaded()
  This directory manager is being fetched from the cache.
cacheUnload()
  Remove a directory manager from the cache.
checkDirectoryUse()
  This directory manager is about to be used for sub-directories.
checkUse()
  This directory manager is about to be used, check it.
checkUse(String)
  That file in the directory is about to be used, check its status.
commit(String)
  Commit pending actions to all that directory content.
commit(String, String)
commit(String[], String)
  Commit pending actions on given file.
createDirectoryEntry(long, String, int)
createFileEntry(long, String, int)
diff(String)
  Get the diff of given file against repository.
display(PrintStream)
  Display the status of the entries in that directory.
getCvsDefaults()
getCvsWrapper()
getDirectory()
  Get the directory controlled by this manager.
getDirectoryEntry(String)
  Look for a sub-directory entry.
getDirectoryStatus(String)
  Get a sub-directory status.
getFileEntry(String)
  Look for a file entry.
getManager(CvsDirectory, File)
getManager(File)
getManager(File, Properties)
getManager(File, Properties, String, String, String[])
getNext()
  LRU management - Get next node.
getPrev()
  LRU management - Get previous node.
listDirectories()
  List available sub-directories of that directory.
listFiles()
  List all available file entries in that directory.
log(String)
  Get the log associated to the given file.
main(String[])
needsUpdate()
  Does this directory needs some CVS update ?
refresh()
  Refresh the file entries for that directory.
remove(String[])
  Remove the given file from the repository.
setNext(LRUAble)
  LRU management - Set next node.
setPrev(LRUAble)
  LRU management - Set previous node.
status(String)
  Get the status of a file entry.
statusToString(int)
update()
  Update all that directory's content.
update(String)
update(String[])
  Update these files from the repository.
updateDirectory(String)
  Check out, or update a sub-directory.
usage()

##

CVSPATH_P

      public final static String CVSPATH_P

  Property giving the path of the cvs binary. This property should be set to the absolute path to the cvs command in your local environment.

  This property defaults to `/usr/local/bin/cvs`.

CVSROOT_P

      public final static String CVSROOT_P

  Property giving your CVS repository. This property should be set to the absolute path of your repository.

  This property defaults to `/afs/w3.org/pub/WWW`.

CVSWRAP_P

      public final static String CVSWRAP_P

  Property giving the path of the cvswrapper. Because CVS can't run without being in the right directory, this classes use a shell script wrapper to issue cvs commands, that will change directory appropriately.

  You should have gotten this wrapper in the distribution `bin` directory.

  This property defaults to `/afs/w3.org/usr/abaird/Jigsaw/bin/cvs_wrapper`.

cvspath_def

      public final static String cvspath_def

  The default CVS path.

cvsroot_def

      public final static String cvsroot_def

  The default CVS root path.

cvswrap_def

      public final static String cvswrap_def

  The default CVS wrapper path.

cache

      protected static Hashtable cache

  Our cache of existing CVS managers. Maps absolute directory names to appropriate CvsDirectory instance.

lru

      protected static LRUList lru

  All CVS entries are LRU maintained too.

cachesize

      protected static int cachesize

  Our recommended cache size.

prev

      protected LRUAble prev

  LRU management - previous entry.

next

      protected LRUAble next

  LRU management - next entry.

cvscheck_stamp

      protected long cvscheck_stamp

  The time at which we last checked the cvs status of that directory.

cvsrep_stamp

      protected long cvsrep_stamp

  The time at which we last examined the repository for this directory.

clean

      protected boolean clean

  Has this directory manager been cleaned up (removed from cache).

directory

      protected File directory

  The directory we manage.

repdir

      protected File repdir

  The corresponding repository directory (when available).

entries

      protected Hashtable entries

  Known CVS entries (files)

runner

      protected CvsRunner runner

  Our associated CvsRunner.

props

      public Properties props

  The properties we use for initialization.

defprops

      public static Properties defprops

  Get or create a manager for the given directory.

##

CvsDirectory

      protected CvsDirectory(File directory,
                             Properties props,
                             String cvspath,
                             String cvsroot,
                             String cvswrap[]) throws CvsException

  Create a new CVS manager for the given directory.
  Parameters:
    directory - The directory for which a manager is to be created.

##

getCvsWrapper

      protected String[] getCvsWrapper()

getCvsDefaults

      protected String[] getCvsDefaults()

createFileEntry

      protected synchronized void createFileEntry(long timestamp,
                                                  String name,
                                                  int status)

createDirectoryEntry

      protected synchronized void createDirectoryEntry(long timestamp,
                                                       String name,
                                                       int status)

getManager

      public static synchronized CvsDirectory getManager(File directory,
                                                         Properties props,
                                                         String cvspath,
                                                         String cvsroot,
                                                         String cvswrap[]) throws CvsException

getManager

      public static CvsDirectory getManager(File directory) throws CvsException

getManager

      public static CvsDirectory getManager(File directory,
                                            Properties props) throws CvsException

getManager

      protected static CvsDirectory getManager(CvsDirectory father,
                                               File dir) throws CvsException

getNext

      public LRUAble getNext()

  LRU management - Get next node.
  Returns:
    A CvsDirectory instance.

getPrev

      public LRUAble getPrev()

  LRU management - Get previous node.
  Returns:
    A CvsDirectory instance.

setNext

      public void setNext(LRUAble next)

  LRU management - Set next node.
  Returns:
    A CvsDirectory instance.

setPrev

      public void setPrev(LRUAble prev)

  LRU management - Set previous node.
  Returns:
    A CvsDirectory instance.

statusToString

      public static String statusToString(int st)

cacheLoaded

      protected void cacheLoaded() throws CvsException

  This directory manager is being fetched from the cache. Perform any action before we return it back to the user.
  Throws: CvsException
    If some CVS action fails during reinitialization.

cacheUnload

      protected static synchronized void cacheUnload()

  Remove a directory manager from the cache. Clear al references to other objects in order to free up memory even if the caller maintains a pointer to the manager.

getFileEntry

      protected CvsEntry getFileEntry(String filename)

  Look for a file entry.
  Parameters:
    filename - The name of the entry to look for.

getDirectoryEntry

      protected CvsEntry getDirectoryEntry(String filename)

  Look for a sub-directory entry.
  Parameters:
    filename - The name of the entry to look for.

refresh

      protected void refresh() throws CvsException

  Refresh the file entries for that directory.
  Throws: CvsException
    If the underlying CVS command failed.

checkUse

      protected synchronized void checkUse() throws CvsException

  This directory manager is about to be used, check it.
  Throws: CvsException
    If some CVS error occurs in that process.

checkUse

      protected synchronized void checkUse(String filename) throws CvsException

  That file in the directory is about to be used, check its status.
  Parameters:
    filename - The name of the entry that is about to be used.
  Throws: CvsException
    If a CVS error occurs.

checkDirectoryUse

      protected synchronized void checkDirectoryUse() throws CvsException

  This directory manager is about to be used for sub-directories.

needsUpdate

      protected boolean needsUpdate()

  Does this directory needs some CVS update ?

listFiles

      public Enumeration listFiles() throws CvsException

  List all available file entries in that directory. This method will list all possible files:
  - The ones that exist but are not in the repository.
  - The ones that are in the repository but not in local space.
  - All the other ones.
  Returns:
    An enumeration listing zero or more String instances.
  Throws: CvsException
    If some CVS error occured while examining the cvs status of entries.

listDirectories

      public Enumeration listDirectories() throws CvsException

  List available sub-directories of that directory. This method will list of possible directories. If access to the repository is permitted, it will look into that to get a list of unchecked out directories, otherwise, it will just list the checked out ones.
  Returns:
    An enumeration listing zero or more File instances.
  Throws: CvsException
    If some CVS error occured while examining the cvs status of entries.

status

      public int status(String filename) throws CvsException

  Get the status of a file entry.
  Parameters:
    filename - The file whose status is to be fetched.
  Returns:
    A integer status indicating the CVS status of that file within the repository.
  Throws: CvsException
    If some CVS error occured while examining the cvs status of entries.

update

      public void update(String files[]) throws CvsException

  Update these files from the repository.
  Parameters:
    files - The name of the files to update (as a String array).
  Throws: CvsException
    If CVS process failed.

update

      public void update(String file) throws CvsException

update

      public void update() throws CvsException

  Update all that directory's content.
  Throws: CvsException
    If some CVS error occured during update.

commit

      public void commit(String names[],
                         String msg) throws CvsException

  Commit pending actions on given file.
  Parameters:
    names - The name of the files to commit.
    msg - The associated message.
  Throws: CvsEXception
    If some error occured during the CVS process.

commit

      public void commit(String file,
                         String msg) throws CvsException

commit

      public void commit(String msg) throws CvsException

  Commit pending actions to all that directory content.
  Parameters:
    msg - The associated message.
  Throws: CvsException
    If some CVS error occurs during the CVS process.

log

      public String log(String filename) throws CvsException

  Get the log associated to the given file.
  Parameters:
    filename - The name of the file whose log is to be fetched.
  Throws: CvsException
    If some CVS error occurs in the process.

diff

      public String diff(String filename) throws CvsException

  Get the diff of given file against repository.
  Parameters:
    filename - The name of the file to diff.
  Returns:
    The diffs has a String, or null if the file is in sync with the repository.
  Throws: CvsException
    If some CVS exception occurs within the process.

add

      public void add(String names[]) throws CvsException

  Add the given file to the CVS repository. The addition will have to be commited through a commit of the same file before taking effect.
  Parameters:
    names - The name of the files to add.
  Throws: CvsException
    If some CVS error occurs during the process.

remove

      public void remove(String names[]) throws CvsException

  Remove the given file from the repository.
  Parameters:
    names - The files to be removed.
  Throws: CvsException
    If some CVS error occurs during that process.

display

      public void display(PrintStream prt)

  Display the status of the entries in that directory.
  Parameters:
    prt - A print stream to print to.

getDirectoryStatus

      public int getDirectoryStatus(String subdir) throws CvsException

  Get a sub-directory status.
  Parameters:
    subdir - The name of the subdirectory.
  Returns:
    An integer CVS status for the given sub-directory.

updateDirectory

      public void updateDirectory(String subdir) throws CvsException

  Check out, or update a sub-directory.
  Parameters:
    subdir - The sub directory to update.
  Throws: CvsException
    If the CVS process failed.

getDirectory

      public File getDirectory()

  Get the directory controlled by this manager.
  Returns:
    A File instance locating the directory.

usage

      public static void usage()

main

      public static void main(String args[])

    All Packages  Class Hierarchy  This Package  Previous  Next  Index