/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 org.apache.axis2.transport.sms;
import org.apache.axis2.AxisFault;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.util.Properties;
import java.util.Map;
import java.util.HashMap;
/**
* SMS message is a atomic object wich carries a SMS
* SMS has can be either a IN message or a OUT message
* which will have the details sender , receiver ,Content and properties
* sender , receiver has a implied meaning with the Message direction
* <br>
* eg:
* in a IN_MESSAGE sender : the phone number of the phone that sms has been sent to axis2
* receiver : the phone number given from the SMSC to the Axis2
* in a OUT_MESSAGE sender : the phone number given from the SMSC to the Axis2
* receiver : the phone number of the phone that sms created from Axis2 must deliver to
*/
public class SMSMessage {
private String sender;
private String receiver;
private String content;
private int direction;
private Map<String ,Object> properties = new HashMap<String , Object>();
public static int IN_MESSAGE =1;
public static int OUT_MESSAGE =2;
/**
*
* @param sender
* @param reciever
* @param content
* @param direction
* @throws AxisFault
*/
public SMSMessage(String sender ,String reciever, String content , int direction) throws AxisFault {
this.sender = sender;
this.content = content;
this.receiver = reciever;
if (direction == IN_MESSAGE || direction == OUT_MESSAGE ) {
this.direction = direction;
} else {
throw new AxisFault("Message must be in or out");
}
}
/**
* Retuen the Phone Number of the Sender
* @return String that contain the senders phone Number
*/
public String getSender() {
return sender;
}
/**
* Return the phone Number that SMS must be received to
* @return String that Contain the receivers phone Number
*/
public String getReceiver() {
return receiver;
}
/**
* Return The Contect that will be send with the SMS
* @return String that contain the content
*/
public String getContent() {
return content;
}
/**
* return the Message Direction of the SMSMessage
* That should be either SMS_IN_MESSAGE :1
* Or SMS_OUT_MESSAGE : 2
* @return int that will infer the message direction
*/
public int getDirection() {
return direction;
}
/**
* add the Implementation level properties that properties will be add to the Axis2 Message Context
* @param key
* @param value
*/
public void addProperty(String key, Object value) {
if(key != null && value != null) {
properties.put(key,value);
}
}
/**
* Return the properties of the SMS message
* @return
*/
public Map<String , Object> getProperties() {
return properties;
}
}