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

org.eclipse.dirigible.api.v3.utils.HexFacade Maven / Gradle / Ivy

There is a newer version: 7.2.0
Show newest version
/*
 * Copyright (c) ${license.git.copyrightYears} SAP SE or an SAP affiliate company and Eclipse Dirigible contributors
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v20.html
 *
 * SPDX-FileCopyrightText: ${license.git.copyrightYears} SAP SE or an SAP affiliate company and Eclipse Dirigible contributors
 * SPDX-License-Identifier: EPL-2.0
 */
package org.eclipse.dirigible.api.v3.utils;

import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;
import org.eclipse.dirigible.commons.api.helpers.BytesHelper;

/**
 * The Class HexFacade.
 */
public class HexFacade {

	/**
	 * Converts an array of bytes into a String representing the hexadecimal values of each byte in order. The returned
	 * String will be double the length of the passed array, as it takes two characters to represent any given byte.
	 *
	 * @param input
	 *            the input byte array
	 * @return the hexadecimal value
	 */
	public static final String encode(byte[] input) {
		return Hex.encodeHexString(input);
	}

	/**
	 * Converts an array of bytes into a String representing the hexadecimal values of each byte in order. The returned
	 * String will be double the length of the passed array, as it takes two characters to represent any given byte.
	 *
	 * @param input
	 *            the input string
	 * @return the hexadecimal value
	 */
	public static final String encode(String input) {
		byte[] bytes = BytesHelper.jsonToBytes(input);
		return encode(bytes);
	}
	
	/**
	 * Hex encode.
	 *
	 * @param input
	 *            the input
	 * @return the hex encoded input
	 */
	public static final byte[] encodeNative(byte[] input) {
		Hex hex = new Hex();
		return hex.encode(input);
	}

	/**
	 * Converts an array of characters representing hexadecimal values into an array of bytes of those same values. The
	 * returned array will be half the length of the passed array, as it takes two characters to represent any given
	 * byte. An exception is thrown if the passed char array has an odd number of elements.
	 *
	 * @param input
	 *            the input string
	 * @return the input decoded
	 * @throws DecoderException
	 *             in case of decoding failure
	 */
	public static final byte[] decode(String input) throws DecoderException {
		return Hex.decodeHex(input.toCharArray());
	}
	
	/**
	 * Hex decode.
	 *
	 * @param input
	 *            the input
	 * @return the hex decoded output
	 */
	public static final byte[] decodeNative(byte[] input) throws DecoderException {
		Hex hex = new Hex();
		return hex.decode(input);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy