blob: cc4c1ad9b98d794f4e9f5a31a779ece71c92dbd2 [file] [log] [blame]
/*******************************************************************************
* CHESS core plugin
*
* Copyright (C) 2011-2015
* Mälardalen University, Sweden
*
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License
* v1.0 which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*******************************************************************************/
package org.polarsys.chess.fla.flamm;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class PortFailureTuple {
Port port;
Failure failure;
PortFailureTuple(Port port, Failure failureType) {
this.port = port;
this.failure = failureType;
}
static List<PortFailureTuple> fromMap(Map<Port, Failure> map) {
List<PortFailureTuple> list = new ArrayList<PortFailureTuple>(map.size());
for (Port port : map.keySet()) {
list.add(new PortFailureTuple(port, map.get(port)));
}
return list;
}
static Set<PortFailureTuple> fromCollection(Port port, Collection<Failure> failures) {
Set<PortFailureTuple> set = new HashSet<PortFailureTuple>(failures.size());
for (Failure failure : failures) {
set.add(new PortFailureTuple(port, failure));
}
return set;
}
public Port getPort() {
return port;
}
public Failure getFailure() {
return failure;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((failure == null) ? 0 : failure.getId().hashCode());
result = prime * result + ((port == null) ? 0 : port.getId().hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
PortFailureTuple other = (PortFailureTuple) obj;
if (failure == null) {
if (other.failure != null) {
return false;
}
} else if (!failure.getId().equals(other.failure.getId())) {
return false;
}
if (port == null) {
if (other.port != null) {
return false;
}
} else if (!port.equals(other.port)) {
return false;
}
return true;
}
}