package controller.comparer.xmi;
import java.util.ArrayList;
public class XmiAssociationElement extends XmiBaseElement {
private final static int MEMBER_END_SIZE = 2;
private String navigableOwnedEnd = "";
private ArrayList<XmiMemberEndElement> memberEnd = new ArrayList<XmiMemberEndElement>(MEMBER_END_SIZE);
public XmiAssociationElement(String id, String name, String type) {
super(id, name, type, "");
}
public void addMemberEnd(XmiMemberEndElement element) {
// if at maximum size, remove first element
if (memberEnd.size() == MEMBER_END_SIZE) {
memberEnd.remove(0);
}
// add element at the end
memberEnd.add(element);
}
public ArrayList<XmiMemberEndElement> getMemberEnds() {
return memberEnd;
}
/**
* @return the navigableOwnedEnd
*/
public String getNavigable() {
return navigableOwnedEnd;
}
/**
* @param navigable the navigableOwnedEnd to set
*/
public void setNavigable(String navigable) {
this.navigableOwnedEnd = navigable;
}
/* (non-Javadoc)
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result
+ ((memberEnd == null) ? 0 : memberEnd.hashCode());
result = prime
* result
+ ((navigableOwnedEnd == null) ? 0 : navigableOwnedEnd
.hashCode());
return result;
}
/* (non-Javadoc)
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!super.equals(obj)) {
return false;
}
if (!(obj instanceof XmiAssociationElement)) {
return false;
}
XmiAssociationElement other = (XmiAssociationElement) obj;
if (memberEnd == null) {
if (other.memberEnd != null) {
return false;
}
} else if (!memberEnd.equals(other.memberEnd)) {
return false;
}
if (navigableOwnedEnd == null) {
if (other.navigableOwnedEnd != null) {
return false;
}
} else if (!navigableOwnedEnd.equals(other.navigableOwnedEnd)) {
return false;
}
return true;
}
}