1 8 package org.mmbase.core.event; 9 10 import java.io.Serializable ; 11 import java.util.*; 12 import org.mmbase.util.HashCodeUtil; 13 import org.mmbase.module.core.MMBase; 14 15 25 public class RelationEvent extends Event implements Serializable , Cloneable { 26 27 30 private static final long serialVersionUID = 1L; 31 32 private final int relationSourceNumber, relationDestinationNumber; 33 private String relationSourceType; 35 private String relationDestinationType; 36 37 private final int role; 39 private NodeEvent nodeEvent; 40 41 51 public RelationEvent(NodeEvent nodeEvent, int relationSourceNumber, int relationDestinationNumber, 52 String relationSourceType, String relationDestinationType, int role) { 53 super(nodeEvent.getMachine(), nodeEvent.getType()); 54 this.nodeEvent = nodeEvent; 55 this.relationSourceNumber = relationSourceNumber; 56 this.relationDestinationNumber = relationDestinationNumber; 57 this.relationSourceType = relationSourceType; 58 this.relationDestinationType = relationDestinationType; 59 this.role = role; 60 } 61 62 63 66 public String getRelationSourceType() { 67 return relationSourceType; 68 } 69 70 71 74 public String getRelationDestinationType() { 75 return relationDestinationType; 76 } 77 78 81 public int getRelationSourceNumber() { 82 return relationSourceNumber; 83 } 84 85 88 public int getRelationDestinationNumber() { 89 return relationDestinationNumber; 90 } 91 92 public int getType() { 93 return eventType; 94 } 95 96 99 public int getRole() { 100 return role; 101 } 102 103 107 116 117 public int hashCode() { 118 int result = nodeEvent.hashCode(); 119 result = HashCodeUtil.hashCode(result, relationSourceNumber); 120 result = HashCodeUtil.hashCode(result, relationDestinationNumber); 121 result = HashCodeUtil.hashCode(result, relationSourceType); 122 result = HashCodeUtil.hashCode(result, relationDestinationType); 123 result = HashCodeUtil.hashCode(result, role); 124 result = HashCodeUtil.hashCode(result, eventType); 125 return result; 126 } 127 128 public boolean equals(Object o) { 129 if (o instanceof RelationEvent) { 130 RelationEvent re = (RelationEvent) o; 131 return 132 nodeEvent.equals(re.nodeEvent) && 133 eventType == re.eventType && 134 role == re.role && 135 relationSourceType.equals(re.relationSourceType) && 136 relationDestinationType.equals(re.relationDestinationType) && 137 relationSourceNumber == re.relationSourceNumber && 138 relationDestinationNumber == re.relationDestinationNumber; 139 } else { 140 return false; 141 } 142 } 143 144 145 public NodeEvent getNodeEvent() { 146 return nodeEvent; 147 } 148 149 public String toString() { 150 return "Relation event. type: " + NodeEvent.getEventTypeGuiName(getType()) 151 + ", sourcetype: " + relationSourceType + ", destinationtype: " + relationDestinationType 152 + ", source-node number: " + relationSourceNumber + ", destination-node number: " 153 + relationDestinationNumber + ", role: " + role + " node event: " + nodeEvent; 154 } 155 156 157 158 } 159 | Popular Tags |