package net.java.otr4j.session; import java.math.BigInteger; import java.security.KeyPair; import java.security.PublicKey; import java.util.List; import net.java.otr4j.OtrEngineListener; import net.java.otr4j.OtrException; import net.java.otr4j.OtrPolicy; import net.java.otr4j.crypto.OtrTlvHandler; import net.java.otr4j.io.messages.AbstractMessage; public interface Session { public abstract SessionStatus getSessionStatus(); public abstract SessionID getSessionID(); public abstract void injectMessage(AbstractMessage m) throws OtrException; public abstract KeyPair getLocalKeyPair(); public abstract OtrPolicy getSessionPolicy(); public abstract String transformReceiving(String content, List<TLV> tlvs) throws OtrException; public abstract String transformReceiving(String content) throws OtrException; public abstract String transformSending(String content, List<TLV> tlvs) throws OtrException; public abstract void startSession() throws OtrException; public abstract void endSession() throws OtrException; public abstract void refreshSession() throws OtrException; public abstract PublicKey getRemotePublicKey(); public abstract void addOtrEngineListener(OtrEngineListener l); public abstract void removeOtrEngineListener(OtrEngineListener l); public abstract void addTlvHandler(OtrTlvHandler handler); public abstract void removeTlvHandler(OtrTlvHandler handler); public abstract BigInteger getS(); public abstract void showWarning(String warning); public byte[] getExtraKey(); }