2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.protocol.pcep.impl.object;
10 import com.google.common.primitives.UnsignedBytes;
12 public final class XROSubobjectUtil {
14 private static final int HEADER_SIZE = 2;
16 private XROSubobjectUtil() {
19 public static byte[] formatSubobject(final int type, final boolean mandatory, final byte[] value) {
20 final byte[] bytes = new byte[HEADER_SIZE + value.length];
21 bytes[0] = (byte) (UnsignedBytes.checkedCast(type) | (mandatory ? 1 << 7 : 0));
22 bytes[1] = UnsignedBytes.checkedCast(value.length + HEADER_SIZE);
23 System.arraycopy(value, 0, bytes, HEADER_SIZE, value.length);