# Class Repository

java.lang.Object
net.sf.statcvs.model.Repository

public class Repository extends Object
Represents a CVS Repository and provides access to the `VersionedFile`s, `Directory`s, `Revision`s and `Author`s recorded in the repository's history. TODO: Rename class to Repository, getCurrentLOC to getCurrentLines, getAuthors to getLogins TODO: Change getCommits to SortedSet

Version:
  $Id: Repository.java,v 1.5 2009/08/31 19:16:35 benoitx Exp $
Author:
  Manuel Schulze, Tammo van Lessen, Richard Cyganiak invalid input: '<'richard@cyganiak.de>

## Constructor Summary

Constructors
Constructor
Description
`Repository()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addFile(VersionedFile file)`
Adds one file to the repository.
`SortedSet`
`getAuthors()`
Returns a `SortedSet` of all `Author`s who have committed to the repository, sorted by name.
`List`
`getCommits()`
Returns a `List` of all `Commit`s.
`int`
`getCurrentLOC()`
returns the current line count of the repository
`SortedSet`
`getDirectories()`
Returns a `SortedSet` of all `Directory` objects in the repository, ordered in tree order
`SortedSet`
`getFiles()`
Returns a list of all `VersionedFile`s, ordered by full name
`Date`
`getFirstDate()`
Returns the first `Date` when there were changes on the repository.
`SymbolicName`
`getHead()`
A special symbolic name that contains the latest revision of every file.
`Date`
`getLastDate()`
Returns the latest `Date` when there were changes on the repository.
`SortedMap`
`getModules()`
`SortedSet`
`getRevisions()`
Returns a `SortedSet` of `Revision`s in the repository, sorted from oldest to most recent.
`Directory`
`getRoot()`
Returns the repository's root directory, or `null` if the directory contains no files.
`SortedSet`
`getSymbolicNames()`
Returns a list of `SymbolicName`s, ordered from latest to oldest.
`boolean`
`isEmpty()`
Returns `true` if the repository contains no files.
`void`
`setCommits(List commits)`
Sets the list of commits.
`void`
`setSymbolicNames(SortedSet symbolicNames)`
Sets the list of symbolic names contained in this Repository.
`String`
`toString()`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### Repository

public Repository()

## Method Details

### addFile

public void addFile(VersionedFile file)
Adds one file to the repository.

Parameters:
  `file` - the file

### setCommits

public void setCommits(List commits)
Sets the list of commits. This method exists only because of stupid design. This method may only be called by stupid designers. TODO: Fix this ugly hack!

Parameters:
  `commits` - the list of commits

### getCommits

public List getCommits()
Returns a `List` of all `Commit`s.

Returns:
  all commits

### getLastDate

public Date getLastDate()
Returns the latest `Date` when there were changes on the repository.

Returns:
  The latest Date

### getFirstDate

public Date getFirstDate()
Returns the first `Date` when there were changes on the repository.

Returns:
  The first Date

### getCurrentLOC

public int getCurrentLOC()
returns the current line count of the repository

Returns:
  the current line count of the repository

### getFiles

public SortedSet getFiles()
Returns a list of all `VersionedFile`s, ordered by full name

Returns:
  a list of all `VersionedFile`s

### isEmpty

public boolean isEmpty()
Returns `true` if the repository contains no files.

Returns:
  `true` if the repository is empty

### getRevisions

public SortedSet getRevisions()
Returns a `SortedSet` of `Revision`s in the repository, sorted from oldest to most recent.

Returns:
  all revisions in the repository.

### getDirectories

public SortedSet getDirectories()
Returns a `SortedSet` of all `Directory` objects in the repository, ordered in tree order

Returns:
  a collection of `Directory` objects

### getRoot

public Directory getRoot()
Returns the repository's root directory, or `null` if the directory contains no files.

Returns:
  the root directory

### setSymbolicNames

public void setSymbolicNames(SortedSet symbolicNames)
Sets the list of symbolic names contained in this Repository.

Parameters:
  `symbolicNames` -

### getSymbolicNames

public SortedSet getSymbolicNames()
Returns a list of `SymbolicName`s, ordered from latest to oldest.

### getHead

public SymbolicName getHead()
A special symbolic name that contains the latest revision of every file.

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### getAuthors

public SortedSet getAuthors()
Returns a `SortedSet` of all `Author`s who have committed to the repository, sorted by name.

Returns:
  a `SortedSet` of `Author`s

### getModules

public SortedMap getModules()