package org.nightlabs.jfire.issuetracking.ui.issue;
import org.nightlabs.jdo.ObjectID;
import org.nightlabs.jfire.issue.IssueLink;
import org.nightlabs.jfire.issue.IssueLinkType;
import org.nightlabs.util.Util;
/**
* @author Chairat Kongarayawetchakun <!-- chairat [AT] nightlabs [DOT] de -->
*
*/
public class IssueLinkTableItem {
private ObjectID linkedObjectID;
private IssueLinkType issueLinkType;
private IssueLink issueLink;
public IssueLinkTableItem(ObjectID linkedObjectID, IssueLinkType issueLinkType) {
if (linkedObjectID == null)
throw new IllegalArgumentException("linkedObjectID == null"); //$NON-NLS-1$
if (issueLinkType == null)
throw new IllegalArgumentException("issueLinkType == null"); //$NON-NLS-1$
this.linkedObjectID = linkedObjectID;
this.issueLinkType = issueLinkType;
}
public ObjectID getLinkedObjectID() {
return linkedObjectID;
}
public IssueLinkType getIssueLinkType() {
return issueLinkType;
}
// public void setLinkedObjectID(ObjectID linkedObjectID) {
// if (linkedObjectID == null)
// throw new IllegalArgumentException("linkedObjectID == null");
// this.linkedObjectID = linkedObjectID;
// }
public void setIssueLinkType(IssueLinkType issueLinkType) {
if (issueLinkType == null)
throw new IllegalArgumentException("issueLinkType == null"); //$NON-NLS-1$
this.issueLinkType = issueLinkType;
}
public void initIssueLink(IssueLink issueLink) {
if (issueLink == null)
throw new IllegalArgumentException("issueLink == null"); //$NON-NLS-1$
if (this.issueLink != null && !this.issueLink.equals(issueLink))
throw new IllegalStateException("IssueLink already assigned!"); //$NON-NLS-1$
this.issueLink = issueLink;
}
public IssueLink getIssueLink() {
return issueLink;
}
@Override
public boolean equals(Object obj)
{
if (obj == this)
return true;
if (!(obj instanceof IssueLinkTableItem))
return false;
IssueLinkTableItem o = (IssueLinkTableItem) obj;
return
Util.equals(this.linkedObjectID, o.linkedObjectID) &&
Util.equals(this.issueLinkType, o.issueLinkType);
}
@Override
public int hashCode()
{
return
Util.hashCode(this.linkedObjectID) ^
Util.hashCode(this.issueLinkType);
}
}