/protocols/smpp/src/main/java/org/mobicents/protocols/smpp/gsm/AbstractHeaderElement.java
Java | 75 lines | 34 code | 11 blank | 30 comment | 4 complexity | 252d75435f09376e638f7cf53c91266b MD5 | raw file
1/* 2 * JBoss, Home of Professional Open Source 3 * Copyright 2011, Red Hat, Inc. and individual contributors 4 * by the @authors tag. See the copyright.txt in the distribution for a 5 * full listing of individual contributors. 6 * 7 * This is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU Lesser General Public License as 9 * published by the Free Software Foundation; either version 2.1 of 10 * the License, or (at your option) any later version. 11 * 12 * This software is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this software; if not, write to the Free 19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org. 21 */ 22 23package org.mobicents.protocols.smpp.gsm; 24 25import java.nio.ByteBuffer; 26import java.util.List; 27 28 29/** 30 * Abstract base class for {@link HeaderElement} implementations. 31 * @version $Id: AbstractHeaderElement.java 484 2010-02-08 16:08:50Z orank $ 32 */ 33public abstract class AbstractHeaderElement implements HeaderElement { 34 /** 35 * Complete will be true after the element has been successfully written, 36 * and false if not yet written to a segment. This only makes sense 37 * for non-recurring elements. 38 */ 39 private boolean complete; 40 41 @Override 42 public boolean equals(Object obj) { 43 if (obj == null) { 44 return false; 45 } 46 return getClass().equals(obj.getClass()); 47 } 48 49 public void reset() { 50 } 51 52 public boolean isComplete() { 53 return complete; 54 } 55 56 public boolean isRecurring() { 57 return false; 58 } 59 60 public boolean write(int segmentNum, ByteBuffer buffer) { 61 if (buffer.remaining() < getLength() + 2) { 62 return false; 63 } else { 64 complete = doWrite(segmentNum, buffer); 65 return complete; 66 } 67 } 68 69 public void postProcess(List<ByteBuffer> segments) { 70 } 71 72 protected boolean doWrite(int segmentNum, ByteBuffer buffer) { 73 return true; 74 } 75}