Package org.casbin.jcasbin.util
Class BuiltInFunctions
java.lang.Object
org.casbin.jcasbin.util.BuiltInFunctions
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static class
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
allMatch determines whether key1 matches the pattern of key2 , key2 can contain a *.static boolean
eval
(String eval, Map<String, Object> env, com.googlecode.aviator.AviatorEvaluatorInstance aviatorEval) eval calculates the stringified boolean expression and return its result.static boolean
globMatch determines whether key1 matches the pattern of key2 in glob expression.static boolean
ipMatch determines whether IP address ip1 matches the pattern of IP address ip2, ip2 can be an IP address or a CIDR pattern.static String
keyGet2Func
(String key1, String key2, String pathVar) KeyGet2 returns value matched pattern.For example, "/resource1" matches "/:resource", if the pathVar == "resource", then "resource1" will be returned.static String
keyGetFunc
(String key1, String key2) KeyGet returns the matched part.static boolean
keyMatch determines whether key1 matches the pattern of key2 (similar to RESTful path), key2 can contain a *.static boolean
keyMatch2 determines whether key1 matches the pattern of key2 (similar to RESTful path), key2 can contain a *.static boolean
keyMatch3 determines whether key1 matches the pattern of key2 (similar to RESTful path), key2 can contain a *.static boolean
KeyMatch4 determines whether key1 matches the pattern of key2 (similar to RESTful path), key2 can contain a *.static boolean
KeyMatch5 determines whether key1 matches the pattern of key2 and ignores the parameters in key2.static boolean
regexMatch
(String key1, String key2) regexMatch determines whether key1 matches the pattern of key2 in regular expression.static boolean
TimeMatch determines whether the current time is between startTime and endTime.static boolean
timeMatchFunc
(String... args) timeMatchFunc is the wrapper for TimeMatch.static void
validateVariadicStringArgs
(int expectedLen, String... args) validate the variadic string parameter size
-
Field Details
-
KEY_MATCH2_PATTERN
-
KEY_MATCH3_PATTERN
-
KEY_MATCH5_PATTERN
-
-
Constructor Details
-
BuiltInFunctions
public BuiltInFunctions()
-
-
Method Details
-
validateVariadicStringArgs
public static void validateVariadicStringArgs(int expectedLen, String... args) throws IllegalArgumentException validate the variadic string parameter size- Parameters:
expectedLen
- the variadic string arguments to validate.args
- the expected number of arguments.- Throws:
IllegalArgumentException
-
keyMatch
keyMatch determines whether key1 matches the pattern of key2 (similar to RESTful path), key2 can contain a *.For example, "/foo/bar" matches "/foo/*"
- Parameters:
key1
- the first argument.key2
- the second argument.- Returns:
- whether key1 matches key2.
-
keyMatch2
keyMatch2 determines whether key1 matches the pattern of key2 (similar to RESTful path), key2 can contain a *.For example, "/foo/bar" matches "/foo/*", "/resource1" matches "/:resource"
- Parameters:
key1
- the first argument.key2
- the second argument.- Returns:
- whether key1 matches key2.
-
keyMatch3
keyMatch3 determines whether key1 matches the pattern of key2 (similar to RESTful path), key2 can contain a *.For example, "/foo/bar" matches "/foo/*", "/resource1" matches "/{resource}"
- Parameters:
key1
- the first argument.key2
- the second argument.- Returns:
- whether key1 matches key2.
-
keyMatch4
KeyMatch4 determines whether key1 matches the pattern of key2 (similar to RESTful path), key2 can contain a *. Besides what KeyMatch3 does, KeyMatch4 can also match repeated patterns:"/parent/123/child/123" matches "/parent/{id}/child/{id}" "/parent/123/child/456" does not match "/parent/{id}/child/{id}" But KeyMatch3 will match both.
Attention: key1 cannot contain English commas.- Parameters:
key1
- the first argument.key2
- the second argument.- Returns:
- whether key1 matches key2.
-
keyMatch5
KeyMatch5 determines whether key1 matches the pattern of key2 and ignores the parameters in key2.For example, "/foo/bar?status=1&type=2" matches "/foo/bar"
- Parameters:
key1
- the first argument.key2
- the second argument.- Returns:
- whether key1 matches key2.
-
keyGetFunc
KeyGet returns the matched part. For example, "/foo/bar/foo" matches "/foo/*", "bar/foo" will been returned- Parameters:
key1
- the first argument.key2
- the second argument.- Returns:
- the matched part.
-
keyGet2Func
KeyGet2 returns value matched pattern.For example, "/resource1" matches "/:resource", if the pathVar == "resource", then "resource1" will be returned.- Parameters:
key1
- the first argument.key2
- the second argument.pathVar
- the name of the variable to retrieve from the matched pattern.- Returns:
- the matched part.
-
regexMatch
regexMatch determines whether key1 matches the pattern of key2 in regular expression.- Parameters:
key1
- the first argument.key2
- the second argument.- Returns:
- whether key1 matches key2.
-
ipMatch
ipMatch determines whether IP address ip1 matches the pattern of IP address ip2, ip2 can be an IP address or a CIDR pattern. For example, "192.168.2.123" matches "192.168.2.0/24"- Parameters:
ip1
- the first argument.ip2
- the second argument.- Returns:
- whether ip1 matches ip2.
-
globMatch
globMatch determines whether key1 matches the pattern of key2 in glob expression.- Parameters:
key1
- the first argument.key2
- the second argument.- Returns:
- whether key1 matches key2.
-
allMatch
allMatch determines whether key1 matches the pattern of key2 , key2 can contain a *.For example, "*" matches everything
- Parameters:
key1
- the first argument.key2
- the second argument.- Returns:
- whether key1 matches key2.
-
eval
public static boolean eval(String eval, Map<String, Object> env, com.googlecode.aviator.AviatorEvaluatorInstance aviatorEval) eval calculates the stringified boolean expression and return its result.- Parameters:
eval
- the stringified boolean expression.env
- the key-value pair of the parameters in the expression.aviatorEval
- the AviatorEvaluatorInstance object which contains built-in functions and custom functions.- Returns:
- the result of the eval.
-
timeMatchFunc
timeMatchFunc is the wrapper for TimeMatch.- Parameters:
args
- the arguments for the time match function.- Returns:
- whether the time matches the pattern.
-
timeMatch
TimeMatch determines whether the current time is between startTime and endTime. You can use "_" to indicate that the parameter is ignored- Parameters:
startTime
- the start time as a string in the format "yyyy-MM-dd HH:mm:ss". Use "_" to ignore the start time.endTime
- the end time as a string in the format "yyyy-MM-dd HH:mm:ss". Use "_" to ignore the end time.- Returns:
- whether the current time is between startTime and endTime
-