net.sourceforge.groboutils.pmti.v1.defimpl
Class AbstractIssue

java.lang.Object
  extended bynet.sourceforge.groboutils.pmti.v1.defimpl.AbstractIssue
All Implemented Interfaces:
IIssue

public abstract class AbstractIssue
extends java.lang.Object
implements 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 12, 2002
Version:
$Date: 2003/02/10 22:51:57 $
Author:
Matt Albrecht groboclown@users.sourceforge.net

Constructor Summary
AbstractIssue(java.lang.String i, java.lang.String t, java.lang.String d, IIssueState s, IAttributeSet a)
           
 
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.
abstract  IIssue reload()
          Reloads all the data in this issue so that it reflects the most current tracker data possible.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractIssue

public AbstractIssue(java.lang.String i,
                     java.lang.String t,
                     java.lang.String d,
                     IIssueState s,
                     IAttributeSet a)
Method Detail

getID

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

Specified by:
getID in interface IIssue
Returns:
the problem tracker's assigned ID for this issue.

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.

Specified by:
getType in interface IIssue
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.

Specified by:
getShortDescription in interface IIssue
Returns:
the issue's short description.

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.

Specified by:
getState in interface IIssue
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.

Specified by:
getAttributes in interface IIssue
Returns:
the set of tracker-specific and issue type-specific attributes and values associated with this issue. Can never return null.

reload

public abstract IIssue reload()
                       throws ProblemManagerException
Reloads all the data in this issue so that it reflects the most current tracker data possible. If this is called on an editable issue, then all changes will be forgotten, and the issue will reflect the current tracker state.

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.

Specified by:
reload in interface IIssue
Returns:
an IIssue with the
Throws:
ProblemManagerException - if there was an underlying tracker error.


Copyright © 2001-2003 by The GroboUtils Project