001: /*
002: * Jacareto Copyright (c) 2002-2005
003: * Applied Computer Science Research Group, Darmstadt University of
004: * Technology, Institute of Mathematics & Computer Science,
005: * Ludwigsburg University of Education, and Computer Based
006: * Learning Research Group, Aachen University. All rights reserved.
007: *
008: * Jacareto is free software; you can redistribute it and/or
009: * modify it under the terms of the GNU General Public
010: * License as published by the Free Software Foundation; either
011: * version 2 of the License, or (at your option) any later version.
012: *
013: * Jacareto is distributed in the hope that it will be useful,
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
016: * General Public License for more details.
017: *
018: * You should have received a copy of the GNU General Public
019: * License along with Jacareto; if not, write to the Free
020: * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
021: *
022: */
023:
024: package jacareto.record;
025:
026: import jacareto.system.Environment;
027:
028: /**
029: * This class represents EventObjects with additional information like the time since the last
030: * event. One of the differences between an EventObject and this class is that an
031: * EventObjectRecordable does not store the source of the event itself. It just knows the internal
032: * name of the source specified by the capture&replay tool.
033: *
034: * @author <a href="mailto:cspannagel@web.de">Christian Spannagel</a>
035: * @version 1.01
036: */
037: public abstract class EventObjectRecordable extends Recordable {
038: /** The source name of the event. */
039: private String sourceName;
040:
041: /** The source class of the event. */
042: private String sourceClass;
043:
044: /**
045: * Creates a new event object recordable with the specified values.
046: *
047: * @param env the env object
048: * @param sourceName the name of the events source
049: * @param sourceClass the classname of the source
050: * @param duration the duration.
051: * @param procTime the processing time (replay time)
052: */
053: public EventObjectRecordable(Environment env, String sourceName,
054: String sourceClass, long duration, long procTime) {
055: super (env);
056: setSourceName(sourceName);
057: setSourceClass(sourceClass);
058: setDuration(duration);
059: setProcTime(procTime);
060: }
061:
062: /**
063: * Creates an EventObjectRecordable with default values and no environment. The environment
064: * should be defined with the method {@link
065: * jacareto.system.EnvironmentMember#setEnvironment(Environment)} before environment instances
066: * will be accessed.
067: */
068: public EventObjectRecordable() {
069: this (null, "", "", 0, 0);
070: }
071:
072: /**
073: * Sets the source name of the event. The source name is the internal name of the
074: * capture&replay tool.
075: *
076: * @param sourceName the name of the source.
077: */
078: public void setSourceName(String sourceName) {
079: this .sourceName = sourceName;
080: fireValuesChanged();
081: }
082:
083: /**
084: * Returns the name of the event's source.
085: *
086: * @return the name of the source
087: */
088: public String getSourceClass() {
089: return sourceClass;
090: }
091:
092: /**
093: * Calculates the duration of this structure element. The duration of an event object
094: * recordable is its relative time to the event before (assuming that the event itself has a
095: * duration of zero; you may overwrite this method if that's not the case).
096: */
097: public void calculateDuration() {
098: setDuration(this .getDuration());
099: }
100:
101: /**
102: * Sets the source name of the event. The source name is the internal name of the
103: * capture&replay tool.
104: *
105: * @param sourceClass the name of the source.
106: */
107: public void setSourceClass(String sourceClass) {
108: this .sourceClass = sourceClass;
109: fireValuesChanged();
110: }
111:
112: /**
113: * Returns the name of the event's source.
114: *
115: * @return the name of the source
116: */
117: public String getSourceName() {
118: return sourceName;
119: }
120:
121: /**
122: * Returns a string representation of the recordable.
123: *
124: * @return the string representation
125: */
126: public String toString() {
127: return "EventObjectRecordable[" + getSourceName() + ","
128: + getDuration() + "]";
129: }
130: }
|