/*
* 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.impl.ipbase;
import org.apache.synapse.commons.throttle.core.CallerConfiguration;
import org.apache.synapse.commons.throttle.core.ThrottleConstants;
/**
* Metadata for controls a caller(IP based) - static data -The data have built form processing
* policy
*/
public class IPBaseCallerConfiguration extends CallerConfiguration {
/* The ID of CallerConfiguration */
private String ID;
/* The First part of the iprange - group ip */
private String firstPartOfIPRange;
/* The second part of the iprange - group ip */
private String secondPartOfIPRange;
public IPBaseCallerConfiguration() {
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 ipRange - String value which represents IP Range
*/
public IPBaseCallerConfiguration(long unitTime, int maximumRequest, long prohibitTimePeriod,
String ipRange) {
super(unitTime, maximumRequest, prohibitTimePeriod, ipRange);
}
/**
* To get IP Range - Group IP
*
* @return String value of IP Range
*/
public String getID() {
return ID;
}
/**
* To get First Part of IP Range
*
* @return String value of First Part Of Ip Range
*/
public String getFirstPartOfIPRange() {
return firstPartOfIPRange;
}
/**
* To get Second Part of IP Range
*
* @return String value of Second Part Of IP Range
*/
public String getSecondPartOfIPRange() {
return secondPartOfIPRange;
}
/**
* To set IP Range
*
* @param iprange The string representation of ip (single or group)
*/
public void setID(String iprange) {
String ipParts[] = iprange.trim().split("-");
if (ipParts != null) {
// if IP Range is unique one IP
if (ipParts.length == 1) {
this.firstPartOfIPRange = ipParts[0];
}
// else if IP Range is group IP
else if (ipParts.length == 2) {
this.firstPartOfIPRange = ipParts[0];
this.secondPartOfIPRange = ipParts[1];
}
}
this.ID = iprange;
}
public int getType() {
return ThrottleConstants.IP_BASE;
}
/**
* To set First Part of IP Range
*
* @param firstPartOfIPRange - String value
*/
public void setFirstPartOfIPRange(String firstPartOfIPRange) {
this.firstPartOfIPRange = firstPartOfIPRange;
}
/**
* To set Second Part Of IP Range
*
* @param secondPartOfIPRange - String value
*/
public void setSecondPartOfIPRange(String secondPartOfIPRange) {
this.secondPartOfIPRange = secondPartOfIPRange;
}
}