|
Platform SDK Java 8.5 API Reference | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface KeyValueOutputFilter
Interface for custom filtering of values inside of KeyValueCollection's on log printing or any other external representation of KVLists.
Filter implementation is expected to be stateless, so it can be reused by different "filter collections". The state (if there is one) should be maintained by collection itself.
KeyValueCollection kvOptions = new KeyValueCollection();
KeyValueCollection kvData = new KeyValueCollection();
kvData.addString("Password", KeyValuePrinter.HIDE_FILTER_NAME);
KeyValuePrinter hidePrinter = new KeyValuePrinter(kvOptions, kvData);
KeyValuePrinter.setDefaultPrinter(hidePrinter);
KeyValueCollection col = new KeyValueCollection();
col.addString("Password", "asdfg");
col.addString("qqwee", "dfdg");
System.out.println(col.toString());
Output is:
KVList:
'Password' [output supressed]
'qqwee' [str] = "dfdg"
KeyValueCollection kvData = new KeyValueCollection();
KeyValueCollection kvPPfilter = new KeyValueCollection();
KeyValueCollection kvPPOptions = new KeyValueCollection();
kvPPfilter.addString(KeyValuePrinter.CUSTOM_FILTER_TYPE, "PrefixPostfixFilter");
kvPPOptions.addString(PrefixPostfixFilter.KEY_PREFIX_STRING, "<###");
kvPPOptions.addString(PrefixPostfixFilter.VALUE_POSTFIX_STRING, "###>");
kvPPOptions.addString(PrefixPostfixFilter.KEY_POSTFIX_STRING, ">");
kvPPOptions.addString(PrefixPostfixFilter.VALUE_PREFIX_STRING, "<");
kvPPfilter.addList(KeyValuePrinter.CUSTOM_FILTER_OPTIONS, kvPPOptions);
kvData.addList("test", kvPPfilter);
KeyValuePrinter.setDefaultPrinter(
new KeyValuePrinter(new KeyValueCollection(), kvData));
KeyValueCollection col = new KeyValueCollection();
col.addString("qqwee", "d2f3d4g5");
col.addString("test", "tratata");
System.out.println(col.toString());
KVList:
'qqwee' [str] = "d2f3d4g5"
<###'test'> [str] = <"tratata"###>
public class SomeCustomOutputFilter
extends KeyValueAbstractOutputFilter {
protected String doAppendPairValue(
final StringBuffer buff,
final String key,
final Object value,
final KeyValuePrinterContext context) {
if ("password".equals(key)) {
buf.append("***password-hidden***");
return null;
} else {
return super.doAppendPairValue(
buff, key, value, context);
}
}
}
KeyValueCollection kvData = new KeyValueCollection();
KeyValueCollection kvPPfilter = new KeyValueCollection();
KeyValueCollection kvPPOptions = new KeyValueCollection();
kvPPfilter.addString(KeyValuePrinter.CUSTOM_FILTER_TYPE,
SomeCustomOutputFilter.class.getName());
kvPPfilter.addList(KeyValuePrinter.CUSTOM_FILTER_OPTIONS, kvPPOptions);
kvData.addList("password", kvPPfilter);
KeyValuePrinter.setDefaultPrinter(
new KeyValuePrinter(new KeyValueCollection(), kvData));
KeyValueCollection col = new KeyValueCollection();
col.addString("password", "asdfg");
col.addString("qqwee", "d2f3d4g5");
col.addString("test", "tratata");
System.out.println(col.toString());
KVList:
'password' [str] = ***password-hidden***
'qqwee' [str] = "d2f3d4g5"
'test' [str] = "tratata"
KeyValueAbstractOutputFilter
Method Summary | |
---|---|
java.lang.String |
appendKeyValuePair(java.lang.StringBuffer buf,
java.lang.String key,
java.lang.Object value,
KeyValuePrinterContext context)
"Entry point" method for key-value pair printing. |
void |
configure(KeyValueCollection options)
Configuration for filter. |
boolean |
isFilteredOut(java.lang.String key,
java.lang.Object value,
KeyValuePrinterContext context)
Evaluates that some key-value pair should be skipped on log print or not. |
Method Detail |
---|
void configure(KeyValueCollection options)
options
- Collection with configuration databoolean isFilteredOut(java.lang.String key, java.lang.Object value, KeyValuePrinterContext context)
if (! isFilteredOut(key, value, context)) {
String rest = appendKeyValuePair(
buffer, key, value, context
);
if (rest != null) {
buffer.append(rest);
}
}
key
- Pair string keyvalue
- Pair valuecontext
- Printer context
java.lang.String appendKeyValuePair(java.lang.StringBuffer buf, java.lang.String key, java.lang.Object value, KeyValuePrinterContext context)
isFilteredOut(...)
.
buf
- Output bufferkey
- Pair string keyvalue
- Pair valuecontext
- Printer context
|
Platform SDK Java 8.5 API Reference | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |