/**
* Copyright 2007-2008 University Of Southern California
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package edu.isi.pegasus.planner.classes;
import edu.isi.pegasus.common.logging.LogManagerFactory;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Set;
import java.util.Vector;
import edu.isi.pegasus.common.logging.LogManager;
/**
* This is the container for all the Data classes.
*
* @author Karan Vahi
* @author Gaurang Mehta
* @version $Revision$
*/
public abstract class Data implements Cloneable {
/**
* The LogManager object which is used to log all the messages.
*
*/
public transient LogManager mLogger = LogManagerFactory.loadSingletonInstance( );
/**
* The String which stores the message to be stored.
*/
public transient String mLogMsg;
/**
* The default constructor.
*/
public Data(){
mLogMsg = "";
}
/**
* Returns the String version of the data object, which is in human readable
* form.
*/
public abstract String toString();
/**
* It converts the contents of the Vector to a String and returns it.
* For this to work , all the objects making up the vector should be having
* a valid toString() method.
*
* @param heading The heading you want to give
* to the text which is printed
*
* @param vector The <code>Vector</code> whose
* elements you want to print
*/
public String vectorToString(String heading,Vector vector){
Enumeration e = vector.elements();
String st = "\n" + heading;
while(e.hasMoreElements()){
st += " " + e.nextElement().toString();
}
return st;
}
/**
* A small helper method that displays the contents of a Set in a String.
*
* @param delim The delimited between the members of the set.
* @return String
*/
public String setToString(Set s, String delim){
Iterator it = s.iterator();
String st = new String();
while(it.hasNext()){
st += (String)it.next() + delim;
}
st = (st.length() > 0)?
st.substring(0,st.lastIndexOf(delim)):
st;
return st;
}
}