/*
* Copyright 2011 Blazebit
*/
package com.blazebit.quartz.job;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.quartz.JobDataMap;
/**
*
* @author Christian Beikov
* @since 0.1.2
*/
public abstract class AbstractJob implements GenericJob {
private static final long serialVersionUID = 1L;
protected String getRequiredParam(JobDataMap data, String property) {
String value = getOptionalParam(data, property);
if (value == null) {
throw new IllegalArgumentException(property + " not specified.");
}
return value;
}
protected String getOptionalParam(JobDataMap data, String property) {
String value = data.getString(property);
if ((value != null) && (value.trim().length() == 0)) {
return null;
}
return value;
}
@Override
public List<JobParameter> getParameters() {
return Collections.emptyList();
}
protected Map<String, Object> getUndefinedParameters(JobDataMap data) {
Map<String, Object> map = new HashMap<String, Object>();
List<JobParameter> params = getParameters();
boolean found = false;
for (Map.Entry<String, Object> entry : data.getWrappedMap().entrySet()) {
for (JobParameter param : params) {
if (param.getName().equals(entry.getKey())) {
found = true;
break;
}
}
if (found) {
found = false;
} else {
map.put(entry.getKey(), entry.getValue());
}
}
return map;
}
}