LibreOffice Module xmerge (master) 1
EndianConverter.java
Go to the documentation of this file.
1/*
2 * This file is part of the LibreOffice project.
3 *
4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 *
8 * This file incorporates work covered by the following license notice:
9 *
10 * Licensed to the Apache Software Foundation (ASF) under one or more
11 * contributor license agreements. See the NOTICE file distributed
12 * with this work for additional information regarding copyright
13 * ownership. The ASF licenses this file to you under the Apache
14 * License, Version 2.0 (the "License"); you may not use this file
15 * except in compliance with the License. You may obtain a copy of
16 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
17 */
18
19package org.openoffice.xmerge.util;
20
21import java.nio.ByteBuffer;
22import java.nio.ByteOrder;
23
34public class EndianConverter {
35
43 public static byte[] writeShort (short value) {
44 return ByteBuffer.allocate(2).order(ByteOrder.LITTLE_ENDIAN)
45 .putShort(value).array();
46 }
47
55 public static byte[] writeInt (int value) {
56 return ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN)
57 .putInt(value).array();
58 }
59
72 public static byte[] writeDouble(double value) {
73 return ByteBuffer.allocate(8).order(ByteOrder.LITTLE_ENDIAN).putLong(
74 Double.doubleToLongBits(value)).array();
75 }
76
89 public static short readShort (byte[] value) {
90 return ByteBuffer.allocate(2).order(ByteOrder.LITTLE_ENDIAN)
91 .put(value).getShort(0);
92 }
93
106 public static int readInt(byte[] value) {
107 return ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN)
108 .put(value).getInt(0);
109 }
110
123 public static double readDouble(byte[] value) {
124 return Double.longBitsToDouble(
125 ByteBuffer.allocate(8).order(ByteOrder.LITTLE_ENDIAN).put(value)
126 .getLong(0));
127 }
128}
Helper class providing static methods to convert data to/from Network Byte Order (Big Endian).
static short readShort(byte[] value)
Convert a Little Endian representation of a short to a Java short (Network Byte Order).
static byte[] writeInt(int value)
Convert an integer to a Little Endian representation.
static byte[] writeShort(short value)
Convert a short to a Little Endian representation.
static int readInt(byte[] value)
Convert a Little Endian representation of an integer to a Java int (Network Byte Order).
static double readDouble(byte[] value)
Convert a Little Endian representation of a float in IEEE-754 Little Endian to a Java double (Network...
static byte[] writeDouble(double value)
Converts a double to a Little Endian representation of a float in IEEE-754 format.
Any value