Class TransferQuotaPolicy
- java.lang.Object
-
- io.apiman.gateway.engine.policies.AbstractMappedPolicy<C>
-
- io.apiman.gateway.engine.policies.AbstractMappedDataPolicy<TransferQuotaConfig>
-
- io.apiman.gateway.engine.policies.TransferQuotaPolicy
-
- All Implemented Interfaces:
IDataPolicy,IPolicy,IPolicyProbe<TransferQuotaConfig,RateLimitingProbeConfig>
public class TransferQuotaPolicy extends AbstractMappedDataPolicy<TransferQuotaConfig> implements IPolicyProbe<TransferQuotaConfig,RateLimitingProbeConfig>
Policy that enforces transfer quotas.- Author:
- eric.wittmann@redhat.com
-
-
Field Summary
-
Fields inherited from interface io.apiman.gateway.engine.policy.IPolicyProbe
mapper
-
-
Constructor Summary
Constructors Constructor Description TransferQuotaPolicy()Constructor.
-
Method Summary
-
Methods inherited from class io.apiman.gateway.engine.policies.AbstractMappedDataPolicy
getRequestDataHandler, getResponseDataHandler
-
Methods inherited from class io.apiman.gateway.engine.policies.AbstractMappedPolicy
apply, apply, doProcessFailure, parseConfiguration, processFailure
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.apiman.gateway.engine.policy.IPolicy
apply, apply, parseConfiguration, processFailure
-
Methods inherited from interface io.apiman.gateway.engine.policy.IPolicyProbe
probe
-
-
-
-
Method Detail
-
getConfigurationClass
public Class<TransferQuotaConfig> getConfigurationClass()
Description copied from class:AbstractMappedPolicyThe class to use for JSON configuration deserialization- Specified by:
getConfigurationClassin interfaceIPolicyProbe<TransferQuotaConfig,RateLimitingProbeConfig>- Specified by:
getConfigurationClassin classAbstractMappedPolicy<TransferQuotaConfig>- Returns:
- the class
-
bucketId
protected String bucketId(ApiRequest request, TransferQuotaConfig config)
-
bucketId
protected String bucketId(RateLimitingProbeConfig request, ProbeContext probeContext, TransferQuotaConfig config)
-
doApply
protected void doApply(ApiRequest request, IPolicyContext context, TransferQuotaConfig config, IPolicyChain<ApiRequest> chain)
Description copied from class:AbstractMappedPolicyOverride this method to interact with or observe the request.- Overrides:
doApplyin classAbstractMappedPolicy<TransferQuotaConfig>- Parameters:
request- the requestchain- the ordered policy chain- See Also:
AbstractMappedPolicy.apply(ApiResponse, IPolicyContext, Object, IPolicyChain)
-
requestDataHandler
protected IReadWriteStream<ApiRequest> requestDataHandler(ApiRequest request, IPolicyContext context, TransferQuotaConfig config)
Description copied from class:AbstractMappedDataPolicySubclasses must implement this.- Specified by:
requestDataHandlerin classAbstractMappedDataPolicy<TransferQuotaConfig>
-
doApply
protected void doApply(ApiResponse response, IPolicyContext context, TransferQuotaConfig config, IPolicyChain<ApiResponse> chain)
Description copied from class:AbstractMappedPolicyApply the policy to the response.Override this method to interact with or observe the response.
- Overrides:
doApplyin classAbstractMappedPolicy<TransferQuotaConfig>- Parameters:
response- the responsecontext- the policy contextconfig- the configuration (seeAbstractMappedPolicy.getConfigurationClass())chain- the ordered policy chain
-
responseDataHandler
protected IReadWriteStream<ApiResponse> responseDataHandler(ApiResponse response, IPolicyContext context, TransferQuotaConfig config)
Description copied from class:AbstractMappedDataPolicySubclasses must implement this.- Specified by:
responseDataHandlerin classAbstractMappedDataPolicy<TransferQuotaConfig>
-
doFinalApply
protected void doFinalApply(IPolicyContext context, TransferQuotaConfig config, long downloadedBytes)
Called when everything is done (the last byte is written). This is used to record the # of bytes downloaded.
-
doQuotaExceededFailure
protected void doQuotaExceededFailure(IPolicyContext context, TransferQuotaConfig config, IPolicyChain<?> chain, RateLimitResponse rtr)
Called to send a 'quota exceeded' failure.
-
limitExceededFailure
protected PolicyFailure limitExceededFailure(IPolicyFailureFactoryComponent failureFactory)
-
defaultResetHeader
protected String defaultResetHeader()
- Returns:
- the default reset header
-
defaultRemainingHeader
protected String defaultRemainingHeader()
- Returns:
- the default remaining header
-
defaultLimitHeader
protected String defaultLimitHeader()
- Returns:
- the default limit header
-
getProbeRequestClass
public Class<RateLimitingProbeConfig> getProbeRequestClass()
- Specified by:
getProbeRequestClassin interfaceIPolicyProbe<TransferQuotaConfig,RateLimitingProbeConfig>
-
probe
public void probe(RateLimitingProbeConfig probeRequest, TransferQuotaConfig policyConfig, ProbeContext probeContext, IPolicyContext context, IAsyncResultHandler<IPolicyProbeResponse> resultHandler)
- Specified by:
probein interfaceIPolicyProbe<TransferQuotaConfig,RateLimitingProbeConfig>
-
-