1 package net.sf.snmpadaptor4j.api;
2
3 import net.sf.snmpadaptor4j.object.SnmpDataType;
4 import net.sf.snmpadaptor4j.object.SnmpOid;
5
6 /**
7 * Object representing an accessor to an attribute.
8 * @author <a href="http://fr.linkedin.com/in/jpminetti/">Jean-Philippe MINETTI</a>
9 */
10 public interface AttributeAccessor {
11
12 /**
13 * Returns the <b>O</b>bject <b>ID</b>entifier (OID) to locate the attribute in the MIB.
14 * @return Object Identifier to locate the attribute in the MIB.
15 */
16 SnmpOid getOid ();
17
18 /**
19 * Returns the SNMP data type of attribute.
20 * @return SNMP data type of attribute.
21 */
22 SnmpDataType getSnmpDataType ();
23
24 /**
25 * Returns the data type of JMX attribute.
26 * @return Data type of JMX attribute.
27 */
28 Class<?> getJmxDataType ();
29
30 /**
31 * Returns the value of attribute.
32 * @return Value of attribute.
33 * @throws Exception Exception if an error occurred.
34 */
35 Object getValue () throws Exception;
36
37 /**
38 * Sets the value of attribute.
39 * @param value New value of attribute.
40 * @throws Exception Exception if an error occurred.
41 */
42 void setValue (Object value) throws Exception;
43
44 /**
45 * Returns <code>TRUE</code> if the attribute can be read (for SNMP write and read community), <code>FALSE</code> otherwise.
46 * @return <code>TRUE</code> if the attribute can be read.
47 */
48 boolean isReadable ();
49
50 /**
51 * Returns <code>TRUE</code> if the attribute can be write (for SNMP write community), <code>FALSE</code> otherwise.
52 * @return <code>TRUE</code> if the attribute can be write.
53 */
54 boolean isWritable ();
55
56 }