// Copyright 2015 Georg-August-Universität Göttingen, Germany // // 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 de.ugoe.cs.autoquest.plugin.genericevents.eventCore; import java.util.HashMap; import java.util.Map; import de.ugoe.cs.autoquest.eventcore.IEventTargetSpec; /** *

* TODO comment *

* * @author Patrick Harms */ public class GenericEventTargetSpec implements IEventTargetSpec { /** */ private static final long serialVersionUID = 1L; /** */ private Map targetParameters; /** */ private String targetId; /** */ private String name; /** * */ public GenericEventTargetSpec(String id, Map parameters) { this.targetId = id; this.targetParameters = parameters; name = parameters.get("name"); if (name == null) { name = targetId; } } /* (non-Javadoc) * @see IEventTargetSpec#getSimilarity(IEventTargetSpec) */ @Override public boolean getSimilarity(IEventTargetSpec other) { if (this == other) { return true; } else if (other instanceof GenericEventTargetSpec) { Map otherParameters = ((GenericEventTargetSpec) other).targetParameters; if (targetParameters == null) { return otherParameters == null; } else if (otherParameters == null) { return false; } else if (targetParameters.size() != otherParameters.size()) { return false; } else { for (Map.Entry entry : targetParameters.entrySet()) { String otherValue = otherParameters.get(entry.getKey()); if ((otherValue != entry.getValue()) && ((otherValue == null) || (!otherValue.equals(entry.getValue())))) { return false; } } return true; } } else { return false; } } /** * * * @return */ public String getId() { return targetId; } /** * */ public void mergeWith(GenericEventTargetSpec furtherSpec) { if (furtherSpec.targetParameters != null) { if (targetParameters == null) { targetParameters = new HashMap<>(furtherSpec.targetParameters); } else { targetParameters.putAll(furtherSpec.targetParameters); } } } /* (non-Javadoc) * @see java.lang.Object#toString() */ @Override public String toString() { return name; } }