package org.opennaas.extensions.protocols.tl1.message; /* * #%L * OpenNaaS :: Protocol :: TL-1 * %% * Copyright (C) 2007 - 2014 FundaciĆ³ Privada i2CAT, Internet i InnovaciĆ³ a Catalunya * %% * 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. * #L% */ /** * This class is the java representation of an Acknoledgement message. The ACK Codes are located in the ACKCode Interface. * * @author Mathieu Lemay * @author Research Technologist Communications Research Centre * @version 1.0.0a */ public class TL1AckMsg extends TL1OutputMsg { /** The In Progress status that means that it is being treated and an answer will be sent back */ public static final String IN_PROGRESS = "IP"; /** The Printout Follows status means the same thing as In Progress */ public static final String PRINTOUT_FOLLOWS = "PF"; /** The All Right status means that everything is ok */ public static final String ALL_RIGHT = "OK"; /** The No Acknowlegement status means that the command was not acknowledged by the switch */ public static final String NO_ACKNOWLEDGEMENT = "NA"; /** The No Good status means that the command is bad */ public static final String NO_GOOD = "NG"; /** This means that the switch is busy and that the command must be sent later */ public static final String RETRY_LATER = "RL"; /** * ACK Codes */ private String ackCode; /** * Command Tag */ private String ctag; /** Creates a new instance of TL1AckMsg */ public TL1AckMsg() { } /** * Returns the ACK code * * @return ACK code */ public String getAckCode() { return ackCode; } /** * Returns the CTAG code * * @return CTAG code */ public String getCTAG() { return ctag; } /** * Returns the string representation of the message * * @return Raw TL1 String */ public String toString() { return ackCode; } /** * Sets the Ackknowlegement Code * * @param ack * The acknowledgement code **/ public void setAckCode(String ack) { ackCode = ack; } /** * Sets the CTAG * * @param tag * The CTAG value **/ public void setCTAG(String tag) { ctag = tag; } /** * Verify that the Ack code for this ACK message is valid. If the transport received a non standard message such as a welcome message where the is * no message code, it will get caught in this method and thrown out by the calling method. * * @return true if the ack code is valid, false otherwise. */ public boolean isValidAckCode() { if (ackCode.equals(IN_PROGRESS)) return true; else if (ackCode.equals(PRINTOUT_FOLLOWS)) return true; else if (ackCode.equals(ALL_RIGHT)) return true; else if (ackCode.equals(NO_ACKNOWLEDGEMENT)) return true; else if (ackCode.equals(NO_GOOD)) return true; else if (ackCode.equals(RETRY_LATER)) return true; else return false; } }