io.logspace.agent.shaded.quartz.JobDataMap Maven / Gradle / Ivy
/*
* Copyright 2001-2009 Terracotta, Inc.
*
* 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 io.logspace.agent.shaded.quartz;
import java.io.Serializable;
import java.util.Map;
import io.logspace.agent.shaded.quartz.utils.StringKeyDirtyFlagMap;
/**
* Holds state information for Job
instances.
*
*
* JobDataMap
instances are stored once when the Job
* is added to a scheduler. They are also re-persisted after every execution of
* jobs annotated with @PersistJobDataAfterExecution
.
*
*
*
* JobDataMap
instances can also be stored with a
* Trigger
. This can be useful in the case where you have a Job
* that is stored in the scheduler for regular/repeated use by multiple
* Triggers, yet with each independent triggering, you want to supply the
* Job with different data inputs.
*
*
*
* The JobExecutionContext
passed to a Job at execution time
* also contains a convenience JobDataMap
that is the result
* of merging the contents of the trigger's JobDataMap (if any) over the
* Job's JobDataMap (if any).
*
*
* @see Job
* @see PersistJobDataAfterExecution
* @see Trigger
* @see JobExecutionContext
*
* @author James House
*/
public class JobDataMap extends StringKeyDirtyFlagMap implements Serializable {
private static final long serialVersionUID = -6939901990106713909L;
/*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* Data members.
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
/**
*
* Create an empty JobDataMap
.
*
*/
public JobDataMap() {
super(15);
}
/**
*
* Create a JobDataMap
with the given data.
*
*/
public JobDataMap(Map, ?> map) {
this();
@SuppressWarnings("unchecked") // casting to keep API compatible and avoid compiler errors/warnings.
Map mapTyped = (Map)map;
putAll(mapTyped);
}
/*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
* Interface.
*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
/**
*
* Adds the given boolean
value as a string version to the
* Job
's data map.
*
*/
public void putAsString(String key, boolean value) {
String strValue = Boolean.valueOf(value).toString();
super.put(key, strValue);
}
/**
*
* Adds the given Boolean
value as a string version to the
* Job
's data map.
*
*/
public void putAsString(String key, Boolean value) {
String strValue = value.toString();
super.put(key, strValue);
}
/**
*
* Adds the given char
value as a string version to the
* Job
's data map.
*
*/
public void putAsString(String key, char value) {
String strValue = Character.valueOf(value).toString();
super.put(key, strValue);
}
/**
*
* Adds the given Character
value as a string version to the
* Job
's data map.
*
*/
public void putAsString(String key, Character value) {
String strValue = value.toString();
super.put(key, strValue);
}
/**
*
* Adds the given double
value as a string version to the
* Job
's data map.
*
*/
public void putAsString(String key, double value) {
String strValue = Double.toString(value);
super.put(key, strValue);
}
/**
*
* Adds the given Double
value as a string version to the
* Job
's data map.
*
*/
public void putAsString(String key, Double value) {
String strValue = value.toString();
super.put(key, strValue);
}
/**
*
* Adds the given float
value as a string version to the
* Job
's data map.
*
*/
public void putAsString(String key, float value) {
String strValue = Float.toString(value);
super.put(key, strValue);
}
/**
*
* Adds the given Float
value as a string version to the
* Job
's data map.
*
*/
public void putAsString(String key, Float value) {
String strValue = value.toString();
super.put(key, strValue);
}
/**
*
* Adds the given int
value as a string version to the
* Job
's data map.
*
*/
public void putAsString(String key, int value) {
String strValue = Integer.valueOf(value).toString();
super.put(key, strValue);
}
/**
*
* Adds the given Integer
value as a string version to the
* Job
's data map.
*
*/
public void putAsString(String key, Integer value) {
String strValue = value.toString();
super.put(key, strValue);
}
/**
*
* Adds the given long
value as a string version to the
* Job
's data map.
*
*/
public void putAsString(String key, long value) {
String strValue = Long.valueOf(value).toString();
super.put(key, strValue);
}
/**
*
* Adds the given Long
value as a string version to the
* Job
's data map.
*
*/
public void putAsString(String key, Long value) {
String strValue = value.toString();
super.put(key, strValue);
}
/**
*
* Retrieve the identified int
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String.
*/
public int getIntFromString(String key) {
Object obj = get(key);
return new Integer((String) obj);
}
/**
*
* Retrieve the identified int
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String or Integer.
*/
public int getIntValue(String key) {
Object obj = get(key);
if(obj instanceof String) {
return getIntFromString(key);
} else {
return getInt(key);
}
}
/**
*
* Retrieve the identified int
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String.
*/
public Integer getIntegerFromString(String key) {
Object obj = get(key);
return new Integer((String) obj);
}
/**
*
* Retrieve the identified boolean
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String.
*/
public boolean getBooleanValueFromString(String key) {
Object obj = get(key);
return Boolean.valueOf((String) obj);
}
/**
*
* Retrieve the identified boolean
value from the
* JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String or Boolean.
*/
public boolean getBooleanValue(String key) {
Object obj = get(key);
if(obj instanceof String) {
return getBooleanValueFromString(key);
} else {
return getBoolean(key);
}
}
/**
*
* Retrieve the identified Boolean
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String.
*/
public Boolean getBooleanFromString(String key) {
Object obj = get(key);
return Boolean.valueOf((String) obj);
}
/**
*
* Retrieve the identified char
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String.
*/
public char getCharFromString(String key) {
Object obj = get(key);
return ((String) obj).charAt(0);
}
/**
*
* Retrieve the identified Character
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String.
*/
public Character getCharacterFromString(String key) {
Object obj = get(key);
return ((String) obj).charAt(0);
}
/**
*
* Retrieve the identified double
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String.
*/
public double getDoubleValueFromString(String key) {
Object obj = get(key);
return Double.valueOf((String) obj);
}
/**
*
* Retrieve the identified double
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String or Double.
*/
public double getDoubleValue(String key) {
Object obj = get(key);
if(obj instanceof String) {
return getDoubleValueFromString(key);
} else {
return getDouble(key);
}
}
/**
*
* Retrieve the identified Double
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String.
*/
public Double getDoubleFromString(String key) {
Object obj = get(key);
return new Double((String) obj);
}
/**
*
* Retrieve the identified float
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String.
*/
public float getFloatValueFromString(String key) {
Object obj = get(key);
return new Float((String) obj);
}
/**
*
* Retrieve the identified float
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String or Float.
*/
public float getFloatValue(String key) {
Object obj = get(key);
if(obj instanceof String) {
return getFloatValueFromString(key);
} else {
return getFloat(key);
}
}
/**
*
* Retrieve the identified Float
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String.
*/
public Float getFloatFromString(String key) {
Object obj = get(key);
return new Float((String) obj);
}
/**
*
* Retrieve the identified long
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String.
*/
public long getLongValueFromString(String key) {
Object obj = get(key);
return new Long((String) obj);
}
/**
*
* Retrieve the identified long
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String or Long.
*/
public long getLongValue(String key) {
Object obj = get(key);
if(obj instanceof String) {
return getLongValueFromString(key);
} else {
return getLong(key);
}
}
/**
*
* Retrieve the identified Long
value from the JobDataMap
.
*
*
* @throws ClassCastException
* if the identified object is not a String.
*/
public Long getLongFromString(String key) {
Object obj = get(key);
return new Long((String) obj);
}
}