package com.l7tech.policy.assertion.ext.message;

import com.l7tech.policy.assertion.ext.SecurityContext;
import com.l7tech.policy.assertion.ext.message.format.CustomMessageFormatFactory;
import com.l7tech.policy.assertion.ext.targetable.CustomMessageTargetable;
import com.l7tech.policy.variable.NoSuchVariableException;
import com.l7tech.policy.variable.VariableNotSettableException;
import java.io.IOException;
import java.util.Map;

public interface CustomPolicyContext {
   SecurityContext getSecurityContext();

   Map getContext();

   Object getVariable(String var1);

   String expandVariable(String var1);

   String expandVariable(String var1, Map<String, Object> var2);

   Map<String, Object> getVariableMap(String[] var1);

   void setVariable(String var1, Object var2);

   CustomMessageFormatFactory getFormats();

   CustomMessage getTargetMessage(CustomMessageTargetable var1) throws NoSuchVariableException, VariableNotSettableException;

   CustomMessage getMessage(String var1) throws NoSuchVariableException, VariableNotSettableException;

   boolean isPostRouting();

   CustomContentType createContentType(String var1) throws IOException;
}
