All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.oscim.tiling.source.mapfile.Deserializer Maven / Gradle / Ivy

/*
 * Copyright 2010, 2011, 2012 mapsforge.org
 *
 * This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
 *
 * This program is free software: you can redistribute it and/or modify it under the
 * terms of the GNU Lesser General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License along with
 * this program. If not, see .
 */
package org.oscim.tiling.source.mapfile;

/**
 * This utility class contains methods to convert byte arrays to numbers.
 */
final class Deserializer {
    /**
     * Converts five bytes of a byte array to an unsigned long.
     * 

* The byte order is big-endian. * * @param buffer the byte array. * @param offset the offset in the array. * @return the long value. */ static long getFiveBytesLong(byte[] buffer, int offset) { return (buffer[offset] & 0xffL) << 32 | (buffer[offset + 1] & 0xffL) << 24 | (buffer[offset + 2] & 0xffL) << 16 | (buffer[offset + 3] & 0xffL) << 8 | (buffer[offset + 4] & 0xffL); } /** * Converts four bytes of a byte array to a signed int. *

* The byte order is big-endian. * * @param buffer the byte array. * @param offset the offset in the array. * @return the int value. */ static int getInt(byte[] buffer, int offset) { return buffer[offset] << 24 | (buffer[offset + 1] & 0xff) << 16 | (buffer[offset + 2] & 0xff) << 8 | (buffer[offset + 3] & 0xff); } /** * Converts eight bytes of a byte array to a signed long. *

* The byte order is big-endian. * * @param buffer the byte array. * @param offset the offset in the array. * @return the long value. */ static long getLong(byte[] buffer, int offset) { return (buffer[offset] & 0xffL) << 56 | (buffer[offset + 1] & 0xffL) << 48 | (buffer[offset + 2] & 0xffL) << 40 | (buffer[offset + 3] & 0xffL) << 32 | (buffer[offset + 4] & 0xffL) << 24 | (buffer[offset + 5] & 0xffL) << 16 | (buffer[offset + 6] & 0xffL) << 8 | (buffer[offset + 7] & 0xffL); } /** * Converts two bytes of a byte array to a signed int. *

* The byte order is big-endian. * * @param buffer the byte array. * @param offset the offset in the array. * @return the int value. */ static int getShort(byte[] buffer, int offset) { return buffer[offset] << 8 | (buffer[offset + 1] & 0xff); } /** * Private constructor to prevent instantiation from other classes. */ private Deserializer() { throw new IllegalStateException(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy