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 }