Merge changes If0630105,I9d2d5e61,I1cea2a32,Icc05b6a7,Ic57eb4f8, ...
[packetcable.git] / packetcable-driver / src / main / java / org / pcmm / gates / impl / Classifier.java
1 /**
2  @header@
3  */
4 package org.pcmm.gates.impl;
5
6 import org.pcmm.base.impl.PCMMBaseObject;
7 import org.pcmm.gates.IClassifier;
8
9 import java.net.Inet4Address;
10 import java.net.InetAddress;
11 import java.net.UnknownHostException;
12
13 /**
14  * TODO - Cleanup this interface
15  */
16 public class Classifier extends PCMMBaseObject implements IClassifier {
17
18     /**
19      *
20      */
21     public Classifier() {
22         this(LENGTH, STYPE, SNUM);
23     }
24
25     /**
26      * @param data - the data to add
27      */
28     public Classifier(byte[] data) {
29         super(data);
30     }
31
32     /**
33      * @param len - the classifier's length
34      * @param sType - the sType value
35      * @param sNum - the sNum value
36      */
37     public Classifier(short len, byte sType, byte sNum) {
38         super(len, sType, sNum);
39     }
40
41     /*
42      * (non-Javadoc)
43      *
44      * @see org.pcmm.gates.IClassifier#getDestinationIPAddress()
45      */
46     @Override
47     public InetAddress getDestinationIPAddress() {
48         try {
49             return Inet4Address.getByAddress(getBytes((short) 8, (short) 4));
50         } catch (UnknownHostException e) {
51             return null;
52         }
53     }
54
55     /*
56      * (non-Javadoc)
57      *
58      * @see
59      * org.pcmm.gates.IClassifier#setDestinationIPAddress(java.net.InetAddress)
60      */
61     @Override
62     public void setDestinationIPAddress(InetAddress address) {
63         setBytes(address.getAddress(), (short) 8);
64     }
65
66     /*
67      * (non-Javadoc)
68      *
69      * @see org.pcmm.gates.IClassifier#getDestinationPort()
70      */
71     @Override
72     public short getDestinationPort() {
73         return getShort((short) 14);
74     }
75
76     /*
77      * (non-Javadoc)
78      *
79      * @see org.pcmm.gates.IClassifier#setDestinationPort(short)
80      */
81     @Override
82     public void setDestinationPort(short p) {
83         setShort(p, (short) 14);
84     }
85
86     /*
87      * (non-Javadoc)
88      *
89      * @see org.pcmm.gates.IClassifier#getSourceIPAddress()
90      */
91     @Override
92     public InetAddress getSourceIPAddress() {
93         try {
94             return Inet4Address.getByAddress(getBytes((short) 4, (short) 4));
95         } catch (UnknownHostException e) {
96             return null;
97         }
98     }
99
100     /*
101      * (non-Javadoc)
102      *
103      * @see org.pcmm.gates.IClassifier#setSourceIPAddress(java.net.InetAddress)
104      */
105     @Override
106     public void setSourceIPAddress(InetAddress a) {
107         setBytes(a.getAddress(), (short) 4);
108     }
109
110     /*
111      * (non-Javadoc)
112      *
113      * @see org.pcmm.gates.IClassifier#getSourcePort()
114      */
115     @Override
116     public short getSourcePort() {
117         return getShort((short) 12);
118     }
119
120     /*
121      * (non-Javadoc)
122      *
123      * @see org.pcmm.gates.IClassifier#setSourcePort(short)
124      */
125     @Override
126     public void setSourcePort(short p) {
127         setShort(p, (short) 12);
128
129     }
130
131     /*
132      * (non-Javadoc)
133      *
134      * @see org.pcmm.gates.IClassifier#getProtocol()
135      */
136     @Override
137     public short getProtocol() {
138         return getShort((short) 0);
139     }
140
141     /*
142      * (non-Javadoc)
143      *
144      * @see org.pcmm.gates.IClassifier#setProtocol(short)
145      */
146     @Override
147     public void setProtocol(short p) {
148         setShort(p, (short) 0);
149     }
150
151     /*
152      * (non-Javadoc)
153      *
154      * @see org.pcmm.gates.IClassifier#getPriority()
155      */
156     @Override
157     public byte getPriority() {
158         return getBytes((short) 16, (short) 1)[0];
159     }
160
161     /*
162      * (non-Javadoc)
163      *
164      * @see org.pcmm.gates.IClassifier#setPriority(byte)
165      */
166     @Override
167     public void setPriority(byte p) {
168         setBytes(new byte[] { p }, (short) 16);
169     }
170
171     @Override
172     public byte getDSCPTOS() {
173         return getBytes((short) 2, (short) 1)[0];
174     }
175
176     @Override
177     public void setDSCPTOS(byte v) {
178         setBytes(new byte[] { v }, (short) 2);
179
180     }
181
182     @Override
183     public byte getDSCPTOSMask() {
184         return getBytes((short) 3, (short) 1)[0];
185     }
186
187     @Override
188     public void setDSCPTOSMask(byte v) {
189         setBytes(new byte[] { v }, (short) 3);
190
191     }
192
193 }