View Javadoc

1   package net.sf.snmpadaptor4j.core.mapping;
2   
3   import java.io.Serializable;
4   import net.sf.snmpadaptor4j.object.SnmpOid;
5   
6   /**
7    * Object containing the mapping to build the <code>dataMap</code> field of {@link net.sf.snmpadaptor4j.object.SnmpTrap SnmpTrap} from a JMX notification.
8    * @author <a href="http://fr.linkedin.com/in/jpminetti/">Jean-Philippe MINETTI</a>
9    */
10  public abstract class DataMapTrapMapping
11  		implements Serializable {
12  
13  	/**
14  	 * Serial number.
15  	 */
16  	private static final long serialVersionUID = 2276163678262962818L;
17  
18  	/**
19  	 * OID of <code>sequenceNumber</code> field of JMX notification.
20  	 */
21  	private final SnmpOid sequenceNumberOid;
22  
23  	/**
24  	 * OID of <code>message</code> field of JMX notification.
25  	 */
26  	private final SnmpOid messageOid;
27  
28  	/**
29  	 * <code>TRUE</code> for put all system information attributes in the <code>dataMap</code> field of {@link net.sf.snmpadaptor4j.object.SnmpTrap SnmpTrap}.
30  	 */
31  	private final boolean hasSystemInfo;
32  
33  	/**
34  	 * Hidden constructor (abstract class).
35  	 * @param sequenceNumberOid OID of <code>sequenceNumber</code> field of JMX notification. Is NULL if the <code>sequenceNumber</code> should not be present in
36  	 *            <code>dataMap</code> field of {@link net.sf.snmpadaptor4j.object.SnmpTrap SnmpTrap}.
37  	 * @param messageOid OID of <code>message</code> field of JMX notification. Is NULL if the <code>message</code> should not be present in <code>dataMap</code>
38  	 *            field of {@link net.sf.snmpadaptor4j.object.SnmpTrap SnmpTrap}.
39  	 * @param hasSystemInfo <code>TRUE</code> for put all system information attributes in the <code>dataMap</code> field of
40  	 *            {@link net.sf.snmpadaptor4j.object.SnmpTrap SnmpTrap}.
41  	 */
42  	protected DataMapTrapMapping (final SnmpOid sequenceNumberOid, final SnmpOid messageOid, final boolean hasSystemInfo) {
43  		super();
44  		this.sequenceNumberOid = sequenceNumberOid;
45  		this.messageOid = messageOid;
46  		this.hasSystemInfo = hasSystemInfo;
47  	}
48  
49  	/**
50  	 * Returns the OID of <code>sequenceNumber</code> field of JMX notification.
51  	 * @return OID of <code>sequenceNumber</code> field of JMX notification. Is NULL if the <code>sequenceNumber</code> should not be present in <code>dataMap</code>
52  	 *         field of {@link net.sf.snmpadaptor4j.object.SnmpTrap SnmpTrap}.
53  	 */
54  	public final SnmpOid getSequenceNumberOid () {
55  		return this.sequenceNumberOid;
56  	}
57  
58  	/**
59  	 * Returns the OID of <code>message</code> field of JMX notification.
60  	 * @return OID of <code>message</code> field of JMX notification. Is NULL if the <code>message</code> should not be present in <code>dataMap</code> field of
61  	 *         {@link net.sf.snmpadaptor4j.object.SnmpTrap SnmpTrap}.
62  	 */
63  	public final SnmpOid getMessageOid () {
64  		return this.messageOid;
65  	}
66  
67  	/**
68  	 * Returns <code>TRUE</code> for put all system information attributes in the <code>dataMap</code> field of {@link net.sf.snmpadaptor4j.object.SnmpTrap SnmpTrap}
69  	 * .
70  	 * @return <code>TRUE</code> for put all system information attributes in the <code>dataMap</code> field of {@link net.sf.snmpadaptor4j.object.SnmpTrap SnmpTrap}
71  	 *         .
72  	 */
73  	public final boolean isHasSystemInfo () {
74  		return this.hasSystemInfo;
75  	}
76  
77  	/*
78  	 * {@inheritDoc}
79  	 * @see java.lang.Object#hashCode()
80  	 */
81  	@Override
82  	public int hashCode () {
83  		final int prime = 31;
84  		int result = 1;
85  		result = prime * result + (this.hasSystemInfo ? 1231 : 1237);
86  		result = prime * result + ((this.messageOid == null) ? 0 : this.messageOid.hashCode());
87  		result = prime * result + ((this.sequenceNumberOid == null) ? 0 : this.sequenceNumberOid.hashCode());
88  		return result;
89  	}
90  
91  	/*
92  	 * {@inheritDoc}
93  	 * @see java.lang.Object#equals(java.lang.Object)
94  	 */
95  	@Override
96  	public boolean equals (final Object obj) {
97  		boolean result = false;
98  		if ((obj != null) && getClass().equals(obj.getClass())) {
99  			final DataMapTrapMapping other = (DataMapTrapMapping) obj;
100 			result = (this.sequenceNumberOid != null ? this.sequenceNumberOid.equals(other.sequenceNumberOid) : (other.sequenceNumberOid == null));
101 			if (result) {
102 				result = (this.messageOid != null ? this.messageOid.equals(other.messageOid) : (other.messageOid == null));
103 			}
104 			if (result) {
105 				result = (this.hasSystemInfo == other.hasSystemInfo);
106 			}
107 		}
108 		return result;
109 	}
110 
111 }