Removed equals methods and added compareTo
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/vre-management/smart-executor-api@119374 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
d6d8ddf6eb
commit
e952fdb616
|
@ -12,13 +12,14 @@ import javax.xml.bind.annotation.XmlRootElement;
|
|||
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
|
||||
|
||||
import org.gcube.vremanagement.executor.api.types.adapter.MapAdapter;
|
||||
import org.gcube.vremanagement.executor.utils.MapCompare;
|
||||
|
||||
/**
|
||||
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
||||
*/
|
||||
@XmlRootElement()
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public class LaunchParameter {
|
||||
public class LaunchParameter implements Comparable<LaunchParameter>{
|
||||
|
||||
@XmlElement
|
||||
protected String pluginName;
|
||||
|
@ -143,21 +144,29 @@ public class LaunchParameter {
|
|||
this.persist = persist;
|
||||
}
|
||||
|
||||
public boolean equals(LaunchParameter launchParameter){
|
||||
if(this.persist!=launchParameter.persist){
|
||||
return false;
|
||||
/** {@inheritDoc} */
|
||||
@Override
|
||||
public int compareTo(LaunchParameter launchParameter) {
|
||||
int compareResult = 0;
|
||||
|
||||
|
||||
compareResult = (new Boolean(persist)).compareTo(new Boolean(launchParameter.persist));
|
||||
if(compareResult!=0){
|
||||
return compareResult;
|
||||
}
|
||||
|
||||
if(!pluginName.equals(launchParameter.pluginName)){
|
||||
return false;
|
||||
}
|
||||
|
||||
if(!scheduling.equals(launchParameter.scheduling)){
|
||||
return false;
|
||||
compareResult = pluginName.compareTo(launchParameter.pluginName);
|
||||
if(compareResult!=0){
|
||||
return compareResult;
|
||||
}
|
||||
|
||||
return this.inputs.equals(launchParameter.inputs);
|
||||
compareResult = scheduling.compareTo(launchParameter.scheduling);
|
||||
if(compareResult!=0){
|
||||
return compareResult;
|
||||
}
|
||||
|
||||
MapCompare<Map<String, Object>, String, Object> mapCompare = new MapCompare<>();
|
||||
return mapCompare.compareMaps(inputs, launchParameter.inputs);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ import org.quartz.CronExpression;
|
|||
/**
|
||||
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
||||
*/
|
||||
public class Scheduling {
|
||||
public class Scheduling implements Comparable<Scheduling> {
|
||||
|
||||
@XmlElement
|
||||
/**
|
||||
|
@ -72,7 +72,6 @@ public class Scheduling {
|
|||
this.previuosExecutionsMustBeCompleted = previuosExecutionsMustBeCompleted;
|
||||
}
|
||||
|
||||
|
||||
protected Scheduling(){}
|
||||
|
||||
public Scheduling(CronExpression cronExpression) {
|
||||
|
@ -185,28 +184,40 @@ public class Scheduling {
|
|||
cronExpression, delay, schedulingTimes, firstStartTime, endTime, previuosExecutionsMustBeCompleted);
|
||||
}
|
||||
|
||||
public boolean equals(Scheduling scheduling) {
|
||||
if(cronExpression.equals(scheduling.cronExpression)){
|
||||
return false;
|
||||
/** {@inheritDoc}} */
|
||||
@Override
|
||||
public int compareTo(Scheduling scheduling) {
|
||||
int compareResult = 0;
|
||||
|
||||
compareResult = cronExpression.compareTo(scheduling.cronExpression);
|
||||
if(compareResult!=0){
|
||||
return compareResult;
|
||||
}
|
||||
|
||||
if(delay.equals(scheduling.delay)){
|
||||
return false;
|
||||
compareResult = delay.compareTo(scheduling.delay);
|
||||
if(compareResult!=0){
|
||||
return compareResult;
|
||||
}
|
||||
|
||||
if(schedulingTimes != scheduling.schedulingTimes){
|
||||
return false;
|
||||
}
|
||||
|
||||
if(firstStartTime.equals(scheduling.firstStartTime)){
|
||||
return false;
|
||||
compareResult = (new Integer(schedulingTimes)).
|
||||
compareTo((new Integer(scheduling.schedulingTimes)));
|
||||
if(compareResult!=0){
|
||||
return compareResult;
|
||||
}
|
||||
|
||||
if(endTime.equals(scheduling.endTime)){
|
||||
return false;
|
||||
compareResult = firstStartTime.compareTo(scheduling.firstStartTime);
|
||||
if(compareResult!=0){
|
||||
return compareResult;
|
||||
}
|
||||
|
||||
return previuosExecutionsMustBeCompleted==scheduling.previuosExecutionsMustBeCompleted;
|
||||
compareResult = endTime.compareTo(scheduling.endTime);
|
||||
if(compareResult!=0){
|
||||
return compareResult;
|
||||
}
|
||||
|
||||
return (new Boolean(previuosExecutionsMustBeCompleted))
|
||||
.compareTo(
|
||||
new Boolean(scheduling.previuosExecutionsMustBeCompleted));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.gcube.vremanagement.executor.utils;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
|
||||
/**
|
||||
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
||||
*
|
||||
*/
|
||||
public class MapCompare<M extends Map<K, V>, K, V> {
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public int compareMaps(Map<K, V> map1, Map<K, V> map2){
|
||||
int compareResult = 0;
|
||||
|
||||
Set<K> map1Set = map1.keySet();
|
||||
Set<K> map2Set = map2.keySet();
|
||||
|
||||
compareResult = new Integer(map1Set.size()).compareTo(new Integer(map2Set.size()));
|
||||
if(compareResult != 0){
|
||||
return compareResult;
|
||||
}
|
||||
|
||||
if(!map1Set.containsAll(map2Set) || !map2Set.containsAll(map1Set)){
|
||||
return -1;
|
||||
}
|
||||
|
||||
for(K key : map1Set){
|
||||
V v1 = map1.get(key);
|
||||
V v2 = map2.get(key);
|
||||
if(!(v1 instanceof Comparable<?>)){
|
||||
return -1;
|
||||
}
|
||||
|
||||
if(!(v2 instanceof Comparable<?>)){
|
||||
return -1;
|
||||
}
|
||||
|
||||
compareResult = ((Comparable) v1).compareTo((Comparable<?>) v2);
|
||||
if(compareResult != 0){
|
||||
return compareResult;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue