From 48dce3545efc7d0065bb74d9f9827a983c4c73b5 Mon Sep 17 00:00:00 2001 From: lionsoul2014 Date: Sat, 6 Dec 2025 12:23:52 +0800 Subject: [PATCH] parse cache policy from name --- .../org/lionsoul/ip2region/service/Config.java | 14 ++++++++++++++ .../service/InvalidCachePolicyException.java | 11 +++++++++++ 2 files changed, 25 insertions(+) create mode 100644 binding/java/src/main/java/org/lionsoul/ip2region/service/InvalidCachePolicyException.java diff --git a/binding/java/src/main/java/org/lionsoul/ip2region/service/Config.java b/binding/java/src/main/java/org/lionsoul/ip2region/service/Config.java index 96babb6..8e8388b 100644 --- a/binding/java/src/main/java/org/lionsoul/ip2region/service/Config.java +++ b/binding/java/src/main/java/org/lionsoul/ip2region/service/Config.java @@ -1,6 +1,7 @@ // Copyright 2022 The Ip2Region Authors. All rights reserved. // Use of this source code is governed by a Apache2.0-style // license that can be found in the LICENSE file. + package org.lionsoul.ip2region.service; import java.io.IOException; @@ -80,4 +81,17 @@ public class Config { sb.append('}'); return sb.toString(); } + + public static final int cachePolicyFromName(String name) throws InvalidCachePolicyException { + final String lName = name.toLowerCase(); + if (lName.equals("file") || lName.equals("nocache")) { + return NoCache; + } else if (lName.equals("vectorindex") || lName.equals("vindex") || lName.equals("vindexcache")) { + return VIndexCache; + } else if (lName.equals("content") || lName.equals("buffercache")) { + return BufferCache; + } else { + throw new InvalidCachePolicyException("invalid cache policy `" + name + "`"); + } + } } \ No newline at end of file diff --git a/binding/java/src/main/java/org/lionsoul/ip2region/service/InvalidCachePolicyException.java b/binding/java/src/main/java/org/lionsoul/ip2region/service/InvalidCachePolicyException.java new file mode 100644 index 0000000..348e58f --- /dev/null +++ b/binding/java/src/main/java/org/lionsoul/ip2region/service/InvalidCachePolicyException.java @@ -0,0 +1,11 @@ +// Copyright 2022 The Ip2Region Authors. All rights reserved. +// Use of this source code is governed by a Apache2.0-style +// license that can be found in the LICENSE file. + +package org.lionsoul.ip2region.service; + +public class InvalidCachePolicyException extends Exception { + public InvalidCachePolicyException(String str) { + super(str); + } +}