package com.voxeo.moho.xmpp; import org.w3c.dom.Element; import com.voxeo.servlet.xmpp.StanzaError.Condition; import com.voxeo.servlet.xmpp.StanzaError.Type; public interface XMPPAcceptableEvent { public enum Reason { BAD_REQUEST { @Override public Condition getCondition() { return Condition.BAD_REQUEST; } @Override public Type getErrorType() { return Type.MODIFY; } }, CONFLICT { @Override public Condition getCondition() { return Condition.CONFLICT; } @Override public Type getErrorType() { return Type.CANCEL; } }, ITEM_NOT_FOUND { @Override public Condition getCondition() { return Condition.ITEM_NOT_FOUND; } @Override public Type getErrorType() { return Type.CANCEL; } }, FEATURE_NOT_IMPLEMENTED { @Override public Condition getCondition() { return Condition.FEATURE_NOT_IMPLEMENTED; } @Override public Type getErrorType() { return Type.CANCEL; } }, INTERNAL_SERVER_ERROR { @Override public Condition getCondition() { return Condition.INTERNAL_SERVER_ERROR; } @Override public Type getErrorType() { return Type.CANCEL; } }, SERVICE_UNAVAILABLE { @Override public Condition getCondition() { return Condition.SERVICE_UNAVAILABLE; } @Override public Type getErrorType() { return Type.CANCEL; } }; public abstract Condition getCondition(); public abstract Type getErrorType(); } boolean isAccepted(); boolean isRejected(); void reject(Reason reason, String text); void reject(Reason reason); void accept(Element... elem); void accept(); }