PageRenderTime 7ms CodeModel.GetById 1ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/protocols/smpp/src/main/java/org/mobicents/protocols/smpp/message/QuerySM.java

http://mobicents.googlecode.com/
Java | 113 lines | 67 code | 17 blank | 29 comment | 3 complexity | c905df47ecde20eb016f7744bd7678f7 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.message;
 24
 25import java.io.IOException;
 26
 27import org.mobicents.protocols.smpp.Address;
 28import org.mobicents.protocols.smpp.util.PacketDecoder;
 29import org.mobicents.protocols.smpp.util.PacketEncoder;
 30import org.mobicents.protocols.smpp.version.SMPPVersion;
 31
 32/**
 33 * Query the state of a message.
 34 * 
 35 * @version $Id: QuerySM.java 457 2009-01-15 17:37:42Z orank $
 36 */
 37public class QuerySM extends SMPPPacket {
 38    private static final long serialVersionUID = 2L;
 39    
 40    private String messageId;
 41    private Address source;
 42    
 43    /**
 44     * Construct a new QuerySM.
 45     */
 46    public QuerySM() {
 47        super(CommandId.QUERY_SM);
 48    }
 49    
 50    public String getMessageId() {
 51        return messageId;
 52    }
 53
 54    public void setMessageId(String messageId) {
 55        this.messageId = messageId;
 56    }
 57
 58    public Address getSource() {
 59        return source;
 60    }
 61
 62    public void setSource(Address source) {
 63        this.source = source;
 64    }
 65
 66    @Override
 67    public boolean equals(Object obj) {
 68        boolean equals = super.equals(obj);
 69        if (equals) {
 70            QuerySM other = (QuerySM) obj;
 71            equals |= safeCompare(messageId, other.messageId);
 72            equals |= safeCompare(source, other.source);
 73        }
 74        return equals;
 75    }
 76    
 77    @Override
 78    public int hashCode() {
 79        int hc = super.hashCode();
 80        hc += (messageId != null) ? messageId.hashCode() : 0;
 81        hc += (source != null) ? source.hashCode() : 0;
 82        return hc;
 83    }
 84
 85    @Override
 86    protected void toString(StringBuilder buffer) {
 87        buffer.append("messageId=").append(messageId)
 88        .append(",source=").append(source);
 89    }
 90
 91    @Override
 92    protected void validateMandatory(SMPPVersion smppVersion) {
 93        smppVersion.validateMessageId(messageId);
 94        smppVersion.validateAddress(source);
 95    }
 96    
 97    @Override
 98    protected void readMandatory(PacketDecoder decoder) {
 99        messageId = decoder.readCString();
100        source = decoder.readAddress();
101    }
102
103    @Override
104    protected void writeMandatory(PacketEncoder encoder) throws IOException {
105        encoder.writeCString(messageId);
106        encoder.writeAddress(source);
107    }
108    
109    @Override
110    protected int getMandatorySize() {
111        return 1 + sizeOf(messageId) + sizeOf(source);
112    }
113}