/**
*
*/
package vnet.sms.common.wme.acknowledge;
import static org.apache.commons.lang.Validate.notEmpty;
import java.io.Serializable;
import vnet.sms.common.messages.Acknowledgement;
import vnet.sms.common.messages.GsmPdu;
import vnet.sms.common.wme.MessageEventType;
/**
* @author obergner
*
*/
abstract class AbstractMessageNackContainer<ID extends Serializable, M extends GsmPdu>
extends AbstractMessageAcknowledgementContainer<ID, M> implements
MessageNackContainer<ID, M> {
/**
*
*/
private static final long serialVersionUID = -4417985555383260744L;
private final int errorKey;
private final String errorDescription;
protected AbstractMessageNackContainer(final int errorKey,
final String errorDescription,
final MessageEventType acknowledgedMessageType,
final ID acknowledgedMessageReference,
final int receivingChannelId, final M acknowledgedMessage) {
super(acknowledgedMessageType, Acknowledgement.nack(),
acknowledgedMessageReference, receivingChannelId,
acknowledgedMessage);
notEmpty(errorDescription,
"Argument 'errorDescription' may be neither null nor empty. Got: "
+ errorDescription);
this.errorKey = errorKey;
this.errorDescription = errorDescription;
}
/**
* @see vnet.sms.common.wme.acknowledge.MessageNackContainer#getErrorKey()
*/
@Override
public int getErrorKey() {
return this.errorKey;
}
/**
* @see vnet.sms.common.wme.acknowledge.MessageNackContainer#getErrorDescription
* ()
*/
@Override
public String getErrorDescription() {
return this.errorDescription;
}
@Override
public String toString() {
return getClass().getSimpleName() + "@" + this.hashCode()
+ "[errorKey: " + this.errorKey + "|errorDescription: "
+ this.errorDescription + "|acknowledgedMessageType: "
+ this.getAcknowledgedMessageType() + "|acknowledgement: "
+ this.getAcknowledgement() + "|acknowledgedMessageReference: "
+ this.getAcknowledgedMessageReference()
+ "|receivingChannelId: " + this.getReceivingChannelId()
+ "|acknowledgedMessage: " + this.getAcknowledgedMessage()
+ "]";
}
}