    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.
add(String[], 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, String[])
commit(String, String[])
  Commit pending actions to all that directory content.
commit(String[], String)
commit(String[], 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 static final 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 static final 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 static final 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 static final String cvspath_def

  The default CVS path.

cvsroot_def

     public static final String cvsroot_def

  The default CVS root path.

cvswrap_def

     public static final 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,
                        String env[]) throws CvsException

  Commit pending actions on given file.

  Parameters:
    names - The name of the files to commit.
    msg - The associated message.
    env - The extra env to use during commit.
  Throws: CvsEXception
    If some error occured during the CVS process.

commit

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

commit

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

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.

commit

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

  Commit pending actions to all that directory content.

  Parameters:
    msg - The associated message.
    env - The extra environment.
  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.

add

     public void add(String names[],
                     String env[]) 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.
    env - The extra env to use during the process.
  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