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  }