// Path: src/main/java/net/rauros/jzwave/utils/ByteEnum.java
// public interface ByteEnum
// {
// 	byte getByteValue();
// }
// 
// Path: src/main/java/net/rauros/jzwave/utils/Enums.java
// public class Enums
// {
// 	public static <E extends Enum<E> & ByteEnum> E byByteValue(Class<E> enumClass, byte value)
// 	{
// 		for(E e : enumClass.getEnumConstants())
// 			if(((ByteEnum) e).getByteValue() == value)
// 				return e;
// 
// 		return null;
// 	}
// }
// 
// Path: src/main/java/net/rauros/jzwave/utils/StringUtils.java
// public class StringUtils
// {
// 	/**
// 	 * Parse at most length bytes from a byte array into a ASCII String,
// 	 * starting at offset. If a null character is found before length then
// 	 * parsing will halt.
// 	 * 
// 	 * @param rawDatap
// 	 * @param offset
// 	 * @param length
// 	 * @return
// 	 */
// 	public static String parseASCIINullTerm(byte rawDatap[], int offset, int length)
// 	{
// 		int searchLength = 0;
// 		while(searchLength < length && rawDatap[offset + searchLength] != 0)
// 			searchLength++;
// 		return new String(rawDatap, offset, searchLength, Charset.forName("US-ASCII"));
// 	}
// 
// 	public static String toHexString(byte data[])
// 	{
// 		return toHexString(data, 0, data.length);
// 	}
// 
// 	public static String toHexString(byte data[], int offset, int length)
// 	{
// 		StringBuilder sb = new StringBuilder();
// 		for(int i = 0; i < length; i++)
// 		{
// 			sb.append(Integer.toHexString((data[offset + i] & 0xF0) >> 4));
// 			sb.append(Integer.toHexString(data[offset + i] & 0x0F));
// 			if(i < length)
// 			{
// 				sb.append(" ");
// 			}
// 		}
// 		return sb.toString();
// 	}
// 
// }


import net.rauros.jzwave.utils.ByteEnum;
import net.rauros.jzwave.utils.Enums;
import net.rauros.jzwave.utils.StringUtils;
import java.util.Arrays;

	public Message(byte... parameters)
	{
		requiresChecksum = false;
		System.arraycopy(parameters, 0, buffer, 0, parameters.length);
		dataSize = parameters.length;
		size = dataSize;
	}

	public void append(Object parameter)
	{
		if(parameter == null)
			return;

		if(parameter instanceof byte[])
		{
			byte byteArrarParameter[] = (byte[])parameter;
			for(int i = 0; i < byteArrarParameter.length; i++)
			{
				buffer[++dataSize] = byteArrarParameter[i];
				size++;
			}
		}
		else if(parameter instanceof Number)
		{
			buffer[++dataSize] = ((Number)parameter).byteValue();
			size++;
		}
		else if(parameter instanceof ByteEnum)
		{
// Path: src/main/java/net/rauros/jzwave/utils/ByteEnum.java
// public interface ByteEnum
// {
// 	byte getByteValue();
// }
// 
// Path: src/main/java/net/rauros/jzwave/utils/Enums.java
// public class Enums
// {
// 	public static <E extends Enum<E> & ByteEnum> E byByteValue(Class<E> enumClass, byte value)
// 	{
// 		for(E e : enumClass.getEnumConstants())
// 			if(((ByteEnum) e).getByteValue() == value)
// 				return e;
// 
// 		return null;
// 	}
// }
// 
// Path: src/main/java/net/rauros/jzwave/utils/StringUtils.java
// public class StringUtils
// {
// 	/**
// 	 * Parse at most length bytes from a byte array into a ASCII String,
// 	 * starting at offset. If a null character is found before length then
// 	 * parsing will halt.
// 	 * 
// 	 * @param rawDatap
// 	 * @param offset
// 	 * @param length
// 	 * @return
// 	 */
// 	public static String parseASCIINullTerm(byte rawDatap[], int offset, int length)
// 	{
// 		int searchLength = 0;
// 		while(searchLength < length && rawDatap[offset + searchLength] != 0)
// 			searchLength++;
// 		return new String(rawDatap, offset, searchLength, Charset.forName("US-ASCII"));
// 	}
// 
// 	public static String toHexString(byte data[])
// 	{
// 		return toHexString(data, 0, data.length);
// 	}
// 
// 	public static String toHexString(byte data[], int offset, int length)
// 	{
// 		StringBuilder sb = new StringBuilder();
// 		for(int i = 0; i < length; i++)
// 		{
// 			sb.append(Integer.toHexString((data[offset + i] & 0xF0) >> 4));
// 			sb.append(Integer.toHexString(data[offset + i] & 0x0F));
// 			if(i < length)
// 			{
// 				sb.append(" ");
// 			}
// 		}
// 		return sb.toString();
// 	}
// 
// }


// Path: src/main/java/net/rauros/jzwave/core/Message.java
import net.rauros.jzwave.utils.ByteEnum;
import net.rauros.jzwave.utils.Enums;
import net.rauros.jzwave.utils.StringUtils;
import java.util.Arrays;


	public Message(byte... parameters)
	{
		requiresChecksum = false;
		System.arraycopy(parameters, 0, buffer, 0, parameters.length);
		dataSize = parameters.length;
		size = dataSize;
	}

	public void append(Object parameter)
	{
		if(parameter == null)
			return;

		if(parameter instanceof byte[])
		{
			byte byteArrarParameter[] = (byte[])parameter;
			for(int i = 0; i < byteArrarParameter.length; i++)
			{
				buffer[++dataSize] = byteArrarParameter[i];
				size++;
			}
		}
		else if(parameter instanceof Number)
		{
			buffer[++dataSize] = ((Number)parameter).byteValue();
			size++;
		}
		else if(parameter instanceof ByteEnum)
		{
			buffer[++dataSize] = ((ByteEnum)parameter).getByteValue();