/* * Copyright 2005,2006 WSO2, Inc. http://wso2.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * */ package org.apache.synapse.commons.throttle.core; /** * All the configuration data for a caller – this data have been defined according to the policy */ public abstract class CallerConfiguration { /* The time window */ private long unitTime; /* The maximum number of Request that should have allowed for caller */ private int maximumRequest; /* The Time Period which access of caller should have denied if Maximum Number of Request had reached */ private long prohibitTimePeriod; /* The int value that indicate that access is fully denied/allowed or controlled for this IP */ private int accessState = ThrottleConstants.ACCESS_CONTROLLED; protected CallerConfiguration() { super(); } /** * The Constructor with all configuration data * * @param unitTime - long value which represents Unit Time Window * @param maximumRequest - int value which represents Maximum Request * @param prohibitTimePeriod - long value which represents Prohibit Time after Max request came * @param ID - String value which represents ID */ protected CallerConfiguration(long unitTime, int maximumRequest, long prohibitTimePeriod, String ID) { this(); this.unitTime = unitTime; this.maximumRequest = maximumRequest; this.prohibitTimePeriod = prohibitTimePeriod; setID(ID); } /** * To get access state * * @return int value indicate access state */ public int getAccessState() { return accessState; } /** * To get Maximum Request * * @return int value of Maximum Request Count */ public int getMaximumRequestPerUnitTime() { return maximumRequest; } /** * To get UnitTime * * @return long value of Unit Time */ public long getUnitTime() { return unitTime; } /** * To get prohibit time period * * @return long value of prohibit time period */ public long getProhibitTimePeriod() { return prohibitTimePeriod; } /** * To set Maximum Request * * @param maximumRequest -int value */ public void setMaximumRequestPerUnitTime(int maximumRequest) { this.maximumRequest = maximumRequest; } /** * To set Unit Time * * @param unitTime - long value */ public void setUnitTime(long unitTime) { this.unitTime = unitTime; } /** * To set Prohibit Time Period * * @param prohibitTimePeriod -long value */ public void setProhibitTimePeriod(long prohibitTimePeriod) { this.prohibitTimePeriod = prohibitTimePeriod; } /** * To set access state * * @param accessState caller access state , allow,deny and control */ public void setAccessState(int accessState) { this.accessState = accessState; } /** * To get ID * * @return String value of ID */ public abstract String getID(); /** * To set ID * * @param ID The id of caller */ public abstract void setID(String ID); /** * To get the type of the throttle * * @return the type of the throttle */ public abstract int getType(); }