// Copyright 2012 Citrix Systems, Inc. Licensed under the // Apache License, Version 2.0 (the "License"); you may not use this // file except in compliance with the License. Citrix Systems, Inc. // reserves all rights not expressly granted by 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. // // Automatically generated by addcopyright.py at 04/03/2012 package com.cloud.agent.api; import java.util.HashMap; import java.util.Map; import com.cloud.agent.api.LogLevel.Log4jLevel; /** * implemented by classes that extends the Command class. Command specifies * */ public abstract class Command { // allow command to carry over hypervisor or other environment related context info @LogLevel(Log4jLevel.Trace) protected Map<String, String> contextMap = new HashMap<String, String>(); private int wait; //in second protected Command() { this.wait = 0; } public int getWait() { return wait; } public void setWait(int wait) { this.wait = wait; } @Override public final String toString() { return this.getClass().getName(); } /** * @return Does this command need to be executed in sequence on the agent? * When this is set to true, the commands are executed by a single * thread on the agent. */ public abstract boolean executeInSequence(); public void setContextParam(String name, String value) { contextMap.put(name, value); } public String getContextParam(String name) { return contextMap.get(name); } public boolean allowCaching() { return true; } }