1 /* 2 * Copyright 2012 Sebastian Annies, Hamburg 3 * 4 * Licensed under the Apache License, Version 2.0 (the License); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an AS IS BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.googlecode.mp4parser.util; 17 18 import java.nio.ByteBuffer; 19 import java.nio.ByteOrder; 20 import java.util.UUID; 21 22 /** 23 * UUID from/to byte array. 24 */ 25 public class UUIDConverter { convert(UUID uuid)26 public static byte[] convert(UUID uuid) { 27 28 long msb = uuid.getMostSignificantBits(); 29 long lsb = uuid.getLeastSignificantBits(); 30 byte[] buffer = new byte[16]; 31 32 for (int i = 0; i < 8; i++) { 33 buffer[i] = (byte) (msb >>> 8 * (7 - i)); 34 } 35 for (int i = 8; i < 16; i++) { 36 buffer[i] = (byte) (lsb >>> 8 * (7 - i)); 37 } 38 39 return buffer; 40 41 } 42 convert(byte[] uuidBytes)43 public static UUID convert(byte[] uuidBytes) { 44 ByteBuffer b = ByteBuffer.wrap(uuidBytes); 45 b.order(ByteOrder.BIG_ENDIAN); 46 return new UUID(b.getLong(), b.getLong()); 47 } 48 } 49