/* * * This file was generated by LLRP Code Generator * see http://llrp-toolkit.cvs.sourceforge.net/llrp-toolkit/ * for more information * Generated on: Mon Mar 10 14:26:48 KST 2014; * */ /* * Copyright (C) 2014 KAIST * @author Janggwan Im <limg00n@kaist.ac.kr> * * Copyright 2007 ETH Zurich * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package kr.ac.kaist.resl.ltk.generated.enumerations; import org.apache.log4j.Logger; import org.jdom.Content; import org.jdom.Element; import org.jdom.Namespace; import org.jdom.Text; import kr.ac.kaist.resl.ltk.generated.LLRPConstants; import org.llrp.ltk.types.LLRPBitList; import org.llrp.ltk.types.LLRPEnumeration; import org.llrp.ltk.types.UnsignedByte; import org.llrp.ltk.types.UnsignedByteArray; import java.lang.IllegalArgumentException; import java.math.BigInteger; import java.util.LinkedList; import java.util.List; /** * AirProtocolsArray is Enumeration of Type UnsignedByteArray */ public class AirProtocolsArray extends UnsignedByteArray implements LLRPEnumeration { public static final int Unspecified = 0; public static final int EPCGlobalClass1Gen2 = 1; Logger logger = Logger.getLogger(AirProtocolsArray.class); public AirProtocolsArray() { super(0); } /** * Create new AirProtocolsArray by passing integer value. * * @throws IllegalArgumentException * if the value is not allowed for this enumeration * @param value an Integer value allowed - might check first * with isValidValue it it is an allowed value */ public AirProtocolsArray(int value) { // Enumerations must use String constructor super(new Integer(value).toString()); if (!isValidValue(value)) { throw new IllegalArgumentException("Value not allowed"); } } /** * Create new AirProtocolsArray by passing jdom element. * * @throws IllegalArgumentException * String must be a concatenation of several enumeration strings seperated by whitespace * @param element - jdom element where the child is a string * that contains several names for values of the enumeration. */ public AirProtocolsArray(final Element element) { String[] items = element.getText().split(" "); this.bytes = new UnsignedByte[items.length]; for (int i = 0; i < items.length; i++) { this.bytes[i] = new UnsignedByte(getValue(items[i])); } } /** * Create new AirProtocolsArray by passing a string * * @throws IllegalArgumentException * String must be a concatenation of several enumeration strings seperated by whitespace * @param element - string that contains several names for values of the enumeration. */ public AirProtocolsArray(final String element) { String[] items = element.split(" "); this.bytes = new UnsignedByte[items.length]; for (int i = 0; i < items.length; i++) { this.bytes[i] = new UnsignedByte(getValue(items[i])); } } /** * Create new AirProtocolsArray by passing LLRPBitList. * * @throws IllegalArgumentException * if the value found in the BitList is not allowed * for this enumeration. * @param list - LLRPBitList */ public AirProtocolsArray(final LLRPBitList list) { decodeBinary(list); if (!isValidValue(new Integer(toInteger()))) { throw new IllegalArgumentException("Value not allowed"); } } /** * set a value of this enumeration to the * value identified by given string. * * @throws IllegalArgumentException * if the value found for given String is not allowed * for this enumeration. * @param name set this enumeration to hold one of the allowed values */ public final void set(final String name, int position) { if (!isValidName(name)) { throw new IllegalArgumentException("name not allowed"); } if (position > this.bytes.length) { throw new IllegalArgumentException( "position is bigger than array size"); } bytes[position] = new UnsignedByte(getValue(name)); } /** * if no position is provided, the first element is set **/ public final void set(final String name) { set(name, 0); } /** * set a value of this enumeration to the * value identified by given string. * * @throws IllegalArgumentException * if the value found for given String is not allowed * for this enumeration. * @param value to be set at position */ public final void set(final int value, int position) { if (!isValidValue(value)) { throw new IllegalArgumentException("name not allowed"); } if (position > this.bytes.length) { throw new IllegalArgumentException( "position is bigger than array size"); } bytes[position] = new UnsignedByte(value); } /** * if no position is provided, the first element is set **/ public final void set(final int value) { set(value, 0); } /** * {@inheritDoc} */ public Content encodeXML(final String name, Namespace ns) { Element element = new Element(name, ns); //Element element = new Element(name, Namespace.getNamespace("llrp",LLRPConstants.LLRPNAMESPACE)); element.setContent(new Text(toString())); return element; } /** * {@inheritDoc} */ public String toString() { String s = ""; for (UnsignedByte b : this.bytes) { s += " "; s += getName(b.toInteger()); } return s.replaceFirst(" ", ""); } /** * There is no reasonable representation as int * return 0 */ public int intValue() { return 0; } /** * {@inheritDoc} */ public boolean isValidValue(final int value) { switch (value) { case 0: return true; case 1: return true; default: return false; } } /** * {@inheritDoc} */ public final int getValue(final String name) { if (name.equalsIgnoreCase("Unspecified")) { return 0; } if (name.equalsIgnoreCase("EPCGlobalClass1Gen2")) { return 1; } return -1; } /** * {@inheritDoc} */ public final String getName(final int value) { if (0 == value) { return "Unspecified"; } if (1 == value) { return "EPCGlobalClass1Gen2"; } return ""; } /** * {@inheritDoc} */ public boolean isValidName(final String name) { if (name.equals("Unspecified")) { return true; } if (name.equals("EPCGlobalClass1Gen2")) { return true; } return false; } /** * number of bits used to represent this type. * * @return Integer */ public static int length() { return UnsignedByteArray.length(); } /** * wrapper method for UnsignedIntegers that use BigIntegers to store value * */ private final String getName(final BigInteger value) { logger.warn("AirProtocolsArray must convert BigInteger " + value + " to Integer value " + value.intValue()); return getName(value.intValue()); } /** * wrapper method for UnsignedIntegers that use BigIntegers to store value * */ private final boolean isValidValue(final BigInteger value) { logger.warn("AirProtocolsArray must convert BigInteger " + value + " to Integer value " + value.intValue()); return isValidValue(value.intValue()); } }