001: /*
002: * @(#)AutoDocITSet.java
003: *
004: * Copyright (C) 2002-2003 Matt Albrecht
005: * groboclown@users.sourceforge.net
006: * http://groboutils.sourceforge.net
007: *
008: * Part of the GroboUtils package at:
009: * http://groboutils.sourceforge.net
010: *
011: * Permission is hereby granted, free of charge, to any person obtaining a
012: * copy of this software and associated documentation files (the "Software"),
013: * to deal in the Software without restriction, including without limitation
014: * the rights to use, copy, modify, merge, publish, distribute, sublicense,
015: * and/or sell copies of the Software, and to permit persons to whom the
016: * Software is furnished to do so, subject to the following conditions:
017: *
018: * The above copyright notice and this permission notice shall be included in
019: * all copies or substantial portions of the Software.
020: *
021: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
022: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
023: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
024: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
025: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
026: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
027: * DEALINGS IN THE SOFTWARE.
028: */
029: package net.sourceforge.groboutils.autodoc.v1.defimpl;
030:
031: import net.sourceforge.groboutils.autodoc.v1.AutoDocIT;
032:
033: import java.util.Vector;
034: import java.util.Enumeration;
035:
036: /**
037: * Issue Tracker entry point. Allows bugs and requriements to be tracked
038: * directly to the test that ensures that part of the bug/requirement has been
039: * fulfilled in the current code base.
040: * <P>
041: * The alternate forms of the base {@link #testsIssue( String, String )} are
042: * for convenience only.
043: *
044: * @author Matt Albrecht <a href="mailto:groboclown@users.sourceforge.net">groboclown@users.sourceforge.net</a>
045: * @version $Date: 2003/02/10 22:52:11 $
046: * @since June 28, 2002
047: */
048: public class AutoDocITSet implements AutoDocIT, IAutoDocSet {
049: private Vector set = new Vector();
050:
051: public void addIT(AutoDocIT it) {
052: this .set.addElement(it);
053: }
054:
055: public Enumeration getSetContents() {
056: return this .set.elements();
057: }
058:
059: /**
060: * Traces an issue from the owning class and declared method, to the
061: * given ID. This is a <tt>long</tt>, as some systems may allow for
062: * more than 2 billion issues.
063: *
064: * @param methodName the owning class's method to trace the issue back to.
065: * @param issueID the id of the issue being tracked.
066: */
067: public void testsIssue( String methodName, long issueID )
068: {
069: Enumeration enum = getSetContents();
070: while (enum.hasMoreElements())
071: {
072: ((AutoDocIT)enum.nextElement()).testsIssue( methodName, issueID );
073: }
074: }
075:
076: /**
077: * Traces an issue from the owning class and declared method, to the
078: * given ID.
079: *
080: * @param methodName the owning class's method to trace the issue back to.
081: * @param issueID the id of the issue being tracked.
082: */
083: public void testsIssue( String methodName, String issueID )
084: {
085: Enumeration enum = getSetContents();
086: while (enum.hasMoreElements())
087: {
088: ((AutoDocIT)enum.nextElement()).testsIssue( methodName, issueID );
089: }
090: }
091:
092: /**
093: * Traces an issue from the owning class to the given ID.
094: * The method will still be given to the underlying tracker, but it will
095: * be discovered through the stack trace. Hence, this is a volitile
096: * method for tracking; it should only be called from the owning class
097: * which is actually testing the bug.
098: *
099: * @param issueID the id of the issue being tracked.
100: */
101: public void testsIssue( long issueID )
102: {
103: Enumeration enum = getSetContents();
104: while (enum.hasMoreElements())
105: {
106: ((AutoDocIT)enum.nextElement()).testsIssue( issueID );
107: }
108: }
109:
110: /**
111: * Traces an issue from the owning class to the given ID.
112: * The method will still be given to the underlying tracker, but it will
113: * be discovered through the stack trace. Hence, this is a volitile
114: * method for tracking; it should only be called from the owning class
115: * which is actually testing the bug.
116: *
117: * @param issueID the id of the issue being tracked.
118: */
119: public void testsIssue( String issueID )
120: {
121: Enumeration enum = getSetContents();
122: while (enum.hasMoreElements())
123: {
124: ((AutoDocIT)enum.nextElement()).testsIssue( issueID );
125: }
126: }
127: }
|