package org.briarproject.api.introduction; import static org.briarproject.api.introduction.IntroductionConstants.TYPE_ABORT; import static org.briarproject.api.introduction.IntroductionConstants.TYPE_ACK; import static org.briarproject.api.introduction.IntroductionConstants.TYPE_REQUEST; import static org.briarproject.api.introduction.IntroductionConstants.TYPE_RESPONSE; public enum IntroduceeAction { LOCAL_ACCEPT, LOCAL_DECLINE, LOCAL_ABORT, REMOTE_REQUEST, REMOTE_ACCEPT, REMOTE_DECLINE, REMOTE_ABORT, ACK; public static IntroduceeAction getRemote(int type, boolean accept) { if (type == TYPE_REQUEST) return REMOTE_REQUEST; if (type == TYPE_RESPONSE && accept) return REMOTE_ACCEPT; if (type == TYPE_RESPONSE) return REMOTE_DECLINE; if (type == TYPE_ACK) return ACK; if (type == TYPE_ABORT) return REMOTE_ABORT; return null; } public static IntroduceeAction getRemote(int type) { return getRemote(type, true); } public static IntroduceeAction getLocal(int type, boolean accept) { if (type == TYPE_RESPONSE && accept) return LOCAL_ACCEPT; if (type == TYPE_RESPONSE) return LOCAL_DECLINE; if (type == TYPE_ACK) return ACK; if (type == TYPE_ABORT) return LOCAL_ABORT; return null; } public static IntroduceeAction getLocal(int type) { return getLocal(type, true); } }