net.sourceforge.groboutils.pmti.v1
Interface IIssue

All Known Subinterfaces:
IEditableIssue
All Known Implementing Classes:
AbstractEditableIssue, AbstractIssue

public interface IIssue

Reflects an issue (or bug, or anomally report, or problem ticket) that is generic enough to be used by most problem tracker system. All IIssue instances are immutable, unless they also implement IEditableIssue.

An issue will only reflect the data associated with the issue at the time of the polling of the issue from the tracker. Currently, the only way to update the issue's data fields is to re-poll the issue from the ProblemManager, or to call reload(). Individual implemenations of the PMTI framework may provide alternative means to real-time update the issue data, but that is not the standard implementation.

Containment patterns would require the creation methods for an editable form of the issue to be in this interface. For security reasons, this method is placed in the ProblemManager interface instead.

NOTE: this interface may be too generic to be useful.

Since:
July 6, 2002
Version:
$Date: 2003/02/10 22:51:54 $
Author:
Matt Albrecht groboclown@users.sourceforge.net

Method Summary
 IAttributeSet getAttributes()
          Returns a list of all attributes associated with this issue.
 java.lang.String getID()
          Returns the unique ID associated with this issue.
 java.lang.String getShortDescription()
          Retrieves the short description of the issue.
 IIssueState getState()
          Queries the "state" of the issue.
 java.lang.String getType()
          Returns the type of issue.
 IIssue reload()
          Returns a new issue instance, containing the most up-to-date tracker information for this issue.
 

Method Detail

getID

public java.lang.String getID()
Returns the unique ID associated with this issue.

Returns:
the problem tracker's assigned ID for this issue, which can never be null.

getType

public java.lang.String getType()
Returns the type of issue. For the SourceForge.net site, this may be "bug", "feature request", and so forth. Some trackers may only have one type of issue, so this field may not be as useful. For those trackers that have different attribute data sets for different types, this may aid programs in decoding the attributes and states.

NOTE: this field may be deprecated in the future in favor of specific IAttributeSet types.

Returns:
the issue's type, which may be null.
See Also:
getAttributes()

getShortDescription

public java.lang.String getShortDescription()
Retrieves the short description of the issue. This can also be referred to as the issue title or summary. It should be a human-readable short description, describing a general overview of the issue.

Returns:
the issue's short description, which may be null.

getState

public IIssueState getState()
Queries the "state" of the issue. In a very general way, this refers to various progress states an issue can be in, such as "new", "assigned", "investigating", "resolved", "verified", "closed", and so on. Additional data may be associated with this state, such as who's working on the issue, the resolution of the issue, who verified the resolution, and so on. If the tracker does not support a state, then null may be returned.

Some trackers may have different state categories for different issue types.

Returns:
the issue's state, which may be null.

getAttributes

public IAttributeSet getAttributes()
Returns a list of all attributes associated with this issue. All issues of a particular type should have the same set of issues.

Returns:
the set of tracker-specific and issue type-specific attributes and values associated with this issue. Can never return null.

reload

public IIssue reload()
              throws ProblemManagerException
Returns a new issue instance, containing the most up-to-date tracker information for this issue. Since the IIssue instances are immutable, this will not change the invoked issue. If the current instance is of type IEditableIssue, then an IEditableIssue will be returned, but will contain none of the non-committed changes performed on the owning issue.

In theory, issues should never be removed. However, some systems allow them to be deleted (say, if there was an accidental creation). In this case, an IssueRemovedException will be thrown.

Returns:
an IIssue with the
Throws:
ProblemManagerException - if there was an underlying tracker error.


Copyright © 2001-2003 by The GroboUtils Project