1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 *
19 */
20 package org.apache.directory.server.core.avltree;
21
22
23 public class IntegerKeyMarshaller implements Marshaller<Integer>
24 {
25
26 public byte[] serialize( Integer i )
27 {
28 int y = i.intValue();
29 byte[] data = new byte[4];
30 data[0] = (byte)((y & 0xFF) >>> 24);
31 data[1] = (byte)((y & 0xFF) >>> 16);
32 data[2] = (byte)((y & 0xFF) >>> 8);
33 data[3] = (byte)(y & 0xFF);
34
35 return data;
36 }
37
38
39 public Integer deserialize( byte[] data )
40 {
41 if( data == null || data.length == 0)
42 {
43 return null;
44 }
45
46 return ( ( data[0] & 0xFF ) << 24 )
47 | (( data[1] & 0xFF ) << 16 )
48 | ( ( data[2] & 0xFF ) << 8 )
49 | ( data[3] & 0xFF );
50 }
51 }