/** * 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; /** * This is a data class that stores the contents of the transfer job that * transfers the data. Later on stdin etc, would be stored in it. * * @author Karan Vahi vahi@isi.edu * @author Gaurang Mehta gmehta@isi.edu * @version $Revision$ */ public class TransferJob extends Job { /** * The site at which the transfer jobs would have run, had it been running * in a peer 2 peer transfer mode (non third party mode). */ private String mNonTPTSite; /** * The default constructor. */ public TransferJob() { super(); mNonTPTSite = null; } /** * The overloaded construct that constructs a GRMS job by wrapping around * the <code>Job</code> job. * * @param job the original job description. */ public TransferJob(Job job){ super(job); mNonTPTSite = null; } /** * Returns the site at which the job would have run if the transfer job was * being run in non third party mode. If the job is run in a non third party * mode, the result should be the same as the site where the transfer job * has been scheduled. * * @return the site at which the job would have run in a non third party mode, * null if not set. */ public String getNonThirdPartySite(){ return mNonTPTSite; } /** * Sets the non third party site for the transfer job. This is the site * at which the job would have run if the transfer job was being run in * non third party mode. * * @param site the name of the site */ public void setNonThirdPartySite(String site){ mNonTPTSite = site; } /** * Returns a textual description of the Transfer Job. * * @return the textual description. */ public String toString(){ StringBuffer sb = new StringBuffer(super.toString()); sb.append("\n").append(" Non TPT Site :"). append(getNonThirdPartySite()); return sb.toString(); } /** * Returns a new copy of the Object. The implementation is faulty. * There is a shallow copy for the profiles. That is the clone retains * references to the original object. * * @return Object */ public Object clone(){ TransferJob newJob = new TransferJob((Job)super.clone()); newJob.setNonThirdPartySite(this.getNonThirdPartySite()); return newJob; } }