Improved HtmlCache class.
This commit is contained in:
parent
5e807b5200
commit
08e6071876
1 changed files with 132 additions and 2 deletions
|
@ -23,6 +23,9 @@ import java.util.HashMap;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import fr.devinsy.strings.StringList;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class HtmlCache.
|
* The Class HtmlCache.
|
||||||
*/
|
*/
|
||||||
|
@ -39,11 +42,107 @@ public class HtmlCache extends HashMap<String, String>
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the key.
|
||||||
|
*
|
||||||
|
* @param object
|
||||||
|
* the object
|
||||||
|
* @param strings
|
||||||
|
* the strings
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
|
public String buildKey(final Object object, final String... strings)
|
||||||
|
{
|
||||||
|
String result;
|
||||||
|
|
||||||
|
if (object == null)
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result = buildKey(object.getClass().getCanonicalName(), strings);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Builds the key.
|
||||||
|
*
|
||||||
|
* @param main
|
||||||
|
* the main
|
||||||
|
* @param strings
|
||||||
|
* the strings
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
|
public String buildKey(final String main, final String... strings)
|
||||||
|
{
|
||||||
|
String result;
|
||||||
|
|
||||||
|
if (main == null)
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int capacity = strings.length * 2 + 1;
|
||||||
|
StringList buffer = new StringList(capacity);
|
||||||
|
|
||||||
|
buffer.add(main);
|
||||||
|
for (int index = 0; index < strings.length; index++)
|
||||||
|
{
|
||||||
|
buffer.append('#');
|
||||||
|
buffer.append(index);
|
||||||
|
buffer.append(strings[index]);
|
||||||
|
}
|
||||||
|
result = buffer.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the HTML code using a GET request.
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* the request
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
|
public String get(final HttpServletRequest request)
|
||||||
|
{
|
||||||
|
String result;
|
||||||
|
|
||||||
|
if (request == null)
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
String key = request.getPathInfo();
|
||||||
|
if (request.getQueryString() != null)
|
||||||
|
{
|
||||||
|
key = key + "?" + request.getQueryString();
|
||||||
|
}
|
||||||
|
result = super.get(key);
|
||||||
|
|
||||||
|
if (result != null)
|
||||||
|
{
|
||||||
|
logger.info("HTML CACHE MATCHED: [{}]", key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the.
|
* Gets the.
|
||||||
*
|
*
|
||||||
* @param get
|
* @param key
|
||||||
* the get
|
* the key
|
||||||
* @return the string
|
* @return the string
|
||||||
*/
|
*/
|
||||||
public String get(final String key)
|
public String get(final String key)
|
||||||
|
@ -67,4 +166,35 @@ public class HtmlCache extends HashMap<String, String>
|
||||||
//
|
//
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Put HTML code using a GET request.
|
||||||
|
*
|
||||||
|
* @param html
|
||||||
|
* the html
|
||||||
|
* @param request
|
||||||
|
* the request
|
||||||
|
* @return the string
|
||||||
|
*/
|
||||||
|
public String put(final HttpServletRequest request, final String html)
|
||||||
|
{
|
||||||
|
String result;
|
||||||
|
|
||||||
|
if ((request == null) || (html == null))
|
||||||
|
{
|
||||||
|
result = null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
String key = request.getPathInfo();
|
||||||
|
if (request.getQueryString() != null)
|
||||||
|
{
|
||||||
|
key = key + "?" + request.getQueryString();
|
||||||
|
}
|
||||||
|
result = super.put(key, html);
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue