/* * * 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:47 KST 2014; * */ /* * 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.parameters; import org.apache.log4j.Logger; import org.jdom.Content; import org.jdom.Document; import org.jdom.Element; import org.jdom.Namespace; import org.llrp.ltk.exceptions.InvalidLLRPMessageException; import org.llrp.ltk.exceptions.MissingParameterException; import kr.ac.kaist.resl.ltk.generated.LLRPConstants; import kr.ac.kaist.resl.ltk.generated.enumerations.TagObservationTriggerType; import org.llrp.ltk.types.BitList; import org.llrp.ltk.types.LLRPBitList; import org.llrp.ltk.types.LLRPMessage; import org.llrp.ltk.types.SignedShort; import org.llrp.ltk.types.TLVParameter; import org.llrp.ltk.types.TVParameter; import org.llrp.ltk.types.UnsignedInteger; import org.llrp.ltk.types.UnsignedShort; import java.util.LinkedList; import java.util.List; /** * Describes the boundary (stop) condition that is based on tag observations. See also {@link <a href="http://www.epcglobalinc.org/standards/llrp/llrp_1_0_1-standard-20070813.pdf#page=58&view=fit">LLRP Specification Section 10.2.2.1.1</a>} and {@link <a href="http://www.epcglobalinc.org/standards/llrp/llrp_1_0_1-standard-20070813.pdf#page=137&view=fit">LLRP Specification Section 16.2.4.2.1.1</a>} */ /** * Describes the boundary (stop) condition that is based on tag observations. See also {@link <a href="http://www.epcglobalinc.org/standards/llrp/llrp_1_0_1-standard-20070813.pdf#page=58&view=fit">LLRP Specification Section 10.2.2.1.1</a>} and {@link <a href="http://www.epcglobalinc.org/standards/llrp/llrp_1_0_1-standard-20070813.pdf#page=137&view=fit">LLRP Specification Section 16.2.4.2.1.1</a>} . */ public class TagObservationTrigger extends TLVParameter { public static final SignedShort TYPENUM = new SignedShort(185); private static final Logger LOGGER = Logger.getLogger(TagObservationTrigger.class); protected TagObservationTriggerType triggerType; protected BitList reserved0 = new BitList(8); protected UnsignedShort numberOfTags; protected UnsignedShort numberOfAttempts; protected UnsignedShort t; protected UnsignedInteger timeout; /** * empty constructor to create new parameter. */ public TagObservationTrigger() { } /** * Constructor to create parameter from binary encoded parameter * calls decodeBinary to decode parameter. * @param list to be decoded */ public TagObservationTrigger(LLRPBitList list) { decodeBinary(list); } /** * Constructor to create parameter from xml encoded parameter * calls decodeXML to decode parameter. * @param element to be decoded */ public TagObservationTrigger(Element element) throws InvalidLLRPMessageException { decodeXML(element); } /** * {@inheritDoc} */ public LLRPBitList encodeBinarySpecific() { LLRPBitList resultBits = new LLRPBitList(); if (triggerType == null) { LOGGER.warn(" triggerType not set"); throw new MissingParameterException( " triggerType not set for Parameter of Type TagObservationTrigger"); } resultBits.append(triggerType.encodeBinary()); resultBits.append(reserved0.encodeBinary()); if (numberOfTags == null) { LOGGER.warn(" numberOfTags not set"); throw new MissingParameterException( " numberOfTags not set for Parameter of Type TagObservationTrigger"); } resultBits.append(numberOfTags.encodeBinary()); if (numberOfAttempts == null) { LOGGER.warn(" numberOfAttempts not set"); throw new MissingParameterException( " numberOfAttempts not set for Parameter of Type TagObservationTrigger"); } resultBits.append(numberOfAttempts.encodeBinary()); if (t == null) { LOGGER.warn(" t not set"); throw new MissingParameterException( " t not set for Parameter of Type TagObservationTrigger"); } resultBits.append(t.encodeBinary()); if (timeout == null) { LOGGER.warn(" timeout not set"); throw new MissingParameterException( " timeout not set for Parameter of Type TagObservationTrigger"); } resultBits.append(timeout.encodeBinary()); return resultBits; } /** * {@inheritDoc} */ public Content encodeXML(String name, Namespace ns) { // element in namespace defined by parent element Element element = new Element(name, ns); // child element are always in default LLRP namespace ns = Namespace.getNamespace("llrp", LLRPConstants.LLRPNAMESPACE); if (triggerType == null) { LOGGER.warn(" triggerType not set"); throw new MissingParameterException(" triggerType not set"); } else { element.addContent(triggerType.encodeXML("TriggerType", ns)); } //element.addContent(reserved0.encodeXML("reserved",ns)); if (numberOfTags == null) { LOGGER.warn(" numberOfTags not set"); throw new MissingParameterException(" numberOfTags not set"); } else { element.addContent(numberOfTags.encodeXML("NumberOfTags", ns)); } if (numberOfAttempts == null) { LOGGER.warn(" numberOfAttempts not set"); throw new MissingParameterException(" numberOfAttempts not set"); } else { element.addContent(numberOfAttempts.encodeXML("NumberOfAttempts", ns)); } if (t == null) { LOGGER.warn(" t not set"); throw new MissingParameterException(" t not set"); } else { element.addContent(t.encodeXML("T", ns)); } if (timeout == null) { LOGGER.warn(" timeout not set"); throw new MissingParameterException(" timeout not set"); } else { element.addContent(timeout.encodeXML("Timeout", ns)); } //parameters return element; } /** * {@inheritDoc} */ protected void decodeBinarySpecific(LLRPBitList binary) { int position = 0; int tempByteLength; int tempLength = 0; int count; SignedShort type; int fieldCount; Custom custom; triggerType = new TagObservationTriggerType(binary.subList(position, TagObservationTriggerType.length())); position += TagObservationTriggerType.length(); position += reserved0.length(); numberOfTags = new UnsignedShort(binary.subList(position, UnsignedShort.length())); position += UnsignedShort.length(); numberOfAttempts = new UnsignedShort(binary.subList(position, UnsignedShort.length())); position += UnsignedShort.length(); t = new UnsignedShort(binary.subList(position, UnsignedShort.length())); position += UnsignedShort.length(); timeout = new UnsignedInteger(binary.subList(position, UnsignedInteger.length())); position += UnsignedInteger.length(); } /** * {@inheritDoc} */ public void decodeXML(Element element) throws InvalidLLRPMessageException { List<Element> tempList = null; boolean atLeastOnce = false; Custom custom; Element temp = null; // child element are always in default LLRP namespace Namespace ns = Namespace.getNamespace(LLRPConstants.LLRPNAMESPACE); temp = element.getChild("TriggerType", ns); if (temp != null) { triggerType = new TagObservationTriggerType(temp); } element.removeChild("TriggerType", ns); temp = element.getChild("NumberOfTags", ns); if (temp != null) { numberOfTags = new UnsignedShort(temp); } element.removeChild("NumberOfTags", ns); temp = element.getChild("NumberOfAttempts", ns); if (temp != null) { numberOfAttempts = new UnsignedShort(temp); } element.removeChild("NumberOfAttempts", ns); temp = element.getChild("T", ns); if (temp != null) { t = new UnsignedShort(temp); } element.removeChild("T", ns); temp = element.getChild("Timeout", ns); if (temp != null) { timeout = new UnsignedInteger(temp); } element.removeChild("Timeout", ns); if (element.getChildren().size() > 0) { String message = "TagObservationTrigger has unknown element " + ((Element) element.getChildren().get(0)).getName(); throw new InvalidLLRPMessageException(message); } } //setters /** * set triggerType of type TagObservationTriggerType . * @param triggerType to be set */ public void setTriggerType(final TagObservationTriggerType triggerType) { this.triggerType = triggerType; } /** * set numberOfTags of type UnsignedShort . * @param numberOfTags to be set */ public void setNumberOfTags(final UnsignedShort numberOfTags) { this.numberOfTags = numberOfTags; } /** * set numberOfAttempts of type UnsignedShort . * @param numberOfAttempts to be set */ public void setNumberOfAttempts(final UnsignedShort numberOfAttempts) { this.numberOfAttempts = numberOfAttempts; } /** * set t of type UnsignedShort . * @param t to be set */ public void setT(final UnsignedShort t) { this.t = t; } /** * set timeout of type UnsignedInteger . * @param timeout to be set */ public void setTimeout(final UnsignedInteger timeout) { this.timeout = timeout; } // end setter //getters /** * get triggerType of type TagObservationTriggerType. * @return TagObservationTriggerType */ public TagObservationTriggerType getTriggerType() { return triggerType; } /** * get numberOfTags of type UnsignedShort. * @return type UnsignedShort to be set */ public UnsignedShort getNumberOfTags() { return this.numberOfTags; } /** * get numberOfAttempts of type UnsignedShort. * @return type UnsignedShort to be set */ public UnsignedShort getNumberOfAttempts() { return this.numberOfAttempts; } /** * get t of type UnsignedShort. * @return type UnsignedShort to be set */ public UnsignedShort getT() { return this.t; } /** * get timeout of type UnsignedInteger. * @return type UnsignedInteger to be set */ public UnsignedInteger getTimeout() { return this.timeout; } // end getters //add methods // end add /** * For TLV Parameter length can not be determined at compile time. This method therefore always returns 0. * @return Integer always zero */ public static Integer length() { return 0; } /** * {@inheritDoc} */ public SignedShort getTypeNum() { return TYPENUM; } /** * {@inheritDoc} */ public String getName() { return "TagObservationTrigger"; } /** * return string representation. All field values but no parameters are included * @return String */ public String toString() { String result = "TagObservationTrigger: "; result += ", triggerType: "; result += triggerType; result += ", numberOfTags: "; result += numberOfTags; result += ", numberOfAttempts: "; result += numberOfAttempts; result += ", t: "; result += t; result += ", timeout: "; result += timeout; result = result.replaceFirst(", ", ""); return result; } }