001: /*
002: * Primitive Collections for Java.
003: * Copyright (C) 2003 Søren Bak
004: *
005: * This library is free software; you can redistribute it and/or
006: * modify it under the terms of the GNU Lesser General Public
007: * License as published by the Free Software Foundation; either
008: * version 2.1 of the License, or (at your option) any later version.
009: *
010: * This library is distributed in the hope that it will be useful,
011: * but WITHOUT ANY WARRANTY; without even the implied warranty of
012: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
013: * Lesser General Public License for more details.
014: *
015: * You should have received a copy of the GNU Lesser General Public
016: * License along with this library; if not, write to the Free Software
017: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
018: */
019: package bak.pcj.benchmark;
020:
021: /**
022: * This class represents results from benchmarks.
023: *
024: * @author Søren Bak
025: * @version 1.0 2003/4/1
026: * @since 1.0
027: */
028: public class Result {
029:
030: /** The time registered for this result. */
031: private long time;
032:
033: /** The benchmark identifier of this result. */
034: private String benchmarkId;
035:
036: /** The task identifier of this result. */
037: private String taskId;
038:
039: /** The description of the task of this result. */
040: private String taskDescription;
041:
042: /** The data set identifier of this result. */
043: private String dataSetId;
044:
045: /** The class identifier of this result. */
046: private String classId;
047:
048: /**
049: * Creates a new result.
050: *
051: * @param benchmarkId
052: * an identifier of the benchmark that produced the
053: * result. Typically the class name.
054: *
055: * @param dataSetId
056: * an identifier of the data set against which the
057: * benchmark was run.
058: *
059: * @param classId
060: * an identifier of the class that is benchmarked.
061: * Typically the class name.
062: *
063: * @param taskId
064: * an identifier of the task that was measured. Typically
065: * the name of a method in a benchmark.
066: *
067: * @param taskDescription
068: * a description of the task.
069: *
070: * @param time
071: * the time measured for completing the task.
072: *
073: * @throws NullPointerException
074: * if <tt>benchmarkId</tt> is <tt>null</tt>;
075: * if <tt>dataSetId</tt> is <tt>null</tt>;
076: * if <tt>classId</tt> is <tt>null</tt>;
077: * if <tt>taskId</tt> is <tt>null</tt>;
078: * if <tt>taskDescription</tt> is <tt>null</tt>.
079: *
080: * @throws IllegalArgumentException
081: * if <tt>time</tt> is negative.
082: */
083: public Result(String benchmarkId, String dataSetId, String classId,
084: String taskId, String taskDescription, long time) {
085: if (benchmarkId == null || dataSetId == null || classId == null
086: || taskId == null || taskDescription == null)
087: throw new NullPointerException();
088: if (time < 0L)
089: throw new IllegalArgumentException();
090: this .benchmarkId = benchmarkId;
091: this .taskId = taskId;
092: this .dataSetId = dataSetId;
093: this .classId = classId;
094: this .taskDescription = taskDescription;
095: this .time = time;
096: }
097:
098: /**
099: * Returns the benchmark identifier of this result.
100: *
101: * @return the benchmark identifier of this result.
102: */
103: public String getBenchmarkId() {
104: return benchmarkId;
105: }
106:
107: /**
108: * Returns the task identifier of this result.
109: *
110: * @return the task identifier of this result.
111: */
112: public String getTaskId() {
113: return taskId;
114: }
115:
116: /**
117: * Returns the description of the task of this result.
118: *
119: * @return the description of the task of this result.
120: */
121: public String getTaskDescription() {
122: return taskDescription;
123: }
124:
125: /**
126: * Returns the data set identifier of this result.
127: *
128: * @return the data set identifier of this result.
129: */
130: public String getDataSetId() {
131: return dataSetId;
132: }
133:
134: /**
135: * Returns the class identifier of this result.
136: *
137: * @return the class identifier of this result.
138: */
139: public String getClassId() {
140: return classId;
141: }
142:
143: /**
144: * Returns the time registered for this result.
145: *
146: * @return the time registered for this result.
147: */
148: public long getTime() {
149: return time;
150: }
151:
152: }
|