KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > snmp4j > agent > mo > jmx > types > BooleanBitsType


1 /*_############################################################################
2   _##
3   _## SNMP4J-AgentJMX - BooleanBitsType.java
4   _##
5   _## Copyright (C) 2006-2007 Frank Fock (SNMP4J.org)
6   _##
7   _## This program is free software; you can redistribute it and/or modify
8   _## it under the terms of the GNU General Public License version 2 as
9   _## published by the Free Software Foundation.
10   _##
11   _## This program is distributed in the hope that it will be useful,
12   _## but WITHOUT ANY WARRANTY; without even the implied warranty of
13   _## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14   _## GNU General Public License for more details.
15   _##
16   _## You should have received a copy of the GNU General Public License
17   _## along with this program; if not, write to the Free Software
18   _## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19   _## MA 02110-1301 USA
20   _##
21   _##########################################################################*/

22 package org.snmp4j.agent.mo.jmx.types;
23
24 import org.snmp4j.smi.OctetString;
25 import javax.management.*;
26
27 public class BooleanBitsType extends TypedAttribute {
28
29   private int offset = 0;
30
31   public BooleanBitsType(String JavaDoc name, int offset) {
32     super(name, byte[].class);
33     this.offset = offset;
34   }
35
36   public int getOffset() {
37     return offset;
38   }
39
40   public Object JavaDoc transformFromNative(Object JavaDoc nativeValue, ObjectName objectName) {
41     StringBuffer JavaDoc buf =
42         new StringBuffer JavaDoc(((Boolean JavaDoc)nativeValue).booleanValue() ? "1" : "0");
43     for (int i=0; i<offset; i++) {
44       buf.insert(0, "0");
45     }
46     while (buf.length() % 8 > 0) {
47       buf.append("0");
48     }
49     return OctetString.fromString(buf.toString(), 2).toByteArray();
50   }
51
52   public Object JavaDoc transformToNative(Object JavaDoc transformedValue,
53                                   Object JavaDoc oldNativeValue, ObjectName objectName) {
54     OctetString os = new OctetString((byte[])transformedValue);
55     String JavaDoc s = os.toString(2);
56     if (s.length() <= offset) {
57       return false;
58     }
59     return (s.charAt(offset) == '1');
60   }
61
62 }
63
Popular Tags