/* * TeleStax, Open Source Cloud Communications Copyright 2012. * and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.mobicents.protocols.ss7.sccp.impl.router; import javolution.xml.XMLFormat; import javolution.xml.XMLSerializable; import javolution.xml.stream.XMLStreamException; import org.mobicents.protocols.ss7.sccp.LongMessageRule; import org.mobicents.protocols.ss7.sccp.LongMessageRuleType; /** * * @author sergey vetyutnev * @author Amit Bhayani * */ public class LongMessageRuleImpl implements LongMessageRule, XMLSerializable { private static final String FIRST_SPC = "firstSpc"; private static final String LAST_SPC = "lastSpc"; private static final String RULE_TYPE = "ruleType"; private int firstSpc; private int lastSpc; private LongMessageRuleType ruleType; public LongMessageRuleImpl() { } public LongMessageRuleImpl(int firstSpc, int lastSpc, LongMessageRuleType ruleType) { this.firstSpc = firstSpc; this.lastSpc = lastSpc; this.ruleType = ruleType; } public LongMessageRuleType getLongMessageRuleType() { return ruleType; } public int getFirstSpc() { return firstSpc; } public int getLastSpc() { return lastSpc; } public boolean matches(int dpc) { if (dpc >= this.firstSpc && dpc <= this.lastSpc) return true; else return false; } @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append("firstSpc=").append(this.firstSpc).append(", lastSpc=").append(this.lastSpc).append(", ruleType=") .append(this.ruleType); return sb.toString(); } protected static final XMLFormat<LongMessageRuleImpl> XML = new XMLFormat<LongMessageRuleImpl>(LongMessageRuleImpl.class) { public void write(LongMessageRuleImpl ai, OutputElement xml) throws XMLStreamException { xml.setAttribute(FIRST_SPC, ai.firstSpc); xml.setAttribute(LAST_SPC, ai.lastSpc); xml.setAttribute(RULE_TYPE, ai.ruleType.toString()); } public void read(InputElement xml, LongMessageRuleImpl ai) throws XMLStreamException { ai.firstSpc = xml.getAttribute(FIRST_SPC).toInt(); ai.lastSpc = xml.getAttribute(LAST_SPC).toInt(); String ruleT = xml.getAttribute(RULE_TYPE).toString(); ai.ruleType = LongMessageRuleType.valueOf(ruleT); } }; }