org.apache.logging.log4j.core.config.plugins.visitors
Class AbstractPluginVisitor<A extends Annotation>

java.lang.Object
  extended by org.apache.logging.log4j.core.config.plugins.visitors.AbstractPluginVisitor<A>
Type Parameters:
A - the Plugin annotation type.
All Implemented Interfaces:
PluginVisitor<A>
Direct Known Subclasses:
PluginAttributeVisitor, PluginBuilderAttributeVisitor, PluginConfigurationVisitor, PluginElementVisitor, PluginNodeVisitor, PluginValueVisitor

public abstract class AbstractPluginVisitor<A extends Annotation>
extends Object
implements PluginVisitor<A>

Base class for PluginVisitor implementations. Provides convenience methods as well as all method implementations other than the visit method.


Field Summary
protected  String[] aliases
           
protected  A annotation
           
protected  Class<A> clazz
           
protected  Class<?> conversionType
           
protected static org.apache.logging.log4j.Logger LOGGER
           
protected  Member member
           
protected  StrSubstitutor substitutor
           
 
Constructor Summary
protected AbstractPluginVisitor(Class<A> clazz)
          This constructor must be overridden by implementation classes as a no-arg constructor.
 
Method Summary
protected  Object convert(String value, Object defaultValue)
          Converts the given value into the configured type falling back to the provided default value.
protected static String removeAttributeValue(Map<String,String> attributes, String name, String... aliases)
          Removes an Entry from a given Map using a key name and aliases for that key.
 PluginVisitor<A> setAliases(String... aliases)
          Sets the list of aliases to use for this visit.
 PluginVisitor<A> setAnnotation(Annotation annotation)
          Sets the Annotation to be used for this.
 PluginVisitor<A> setConversionType(Class<?> conversionType)
          Sets the class to convert the plugin value to on this visit.
 PluginVisitor<A> setMember(Member member)
          Sets the Member that this visitor is being used for injection upon.
 PluginVisitor<A> setStrSubstitutor(StrSubstitutor substitutor)
          Sets the StrSubstitutor to use for converting raw strings before type conversion.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.logging.log4j.core.config.plugins.visitors.PluginVisitor
visit
 

Field Detail

LOGGER

protected static final org.apache.logging.log4j.Logger LOGGER

clazz

protected final Class<A extends Annotation> clazz

annotation

protected A extends Annotation annotation

aliases

protected String[] aliases

conversionType

protected Class<?> conversionType

substitutor

protected StrSubstitutor substitutor

member

protected Member member
Constructor Detail

AbstractPluginVisitor

protected AbstractPluginVisitor(Class<A> clazz)
This constructor must be overridden by implementation classes as a no-arg constructor.

Parameters:
clazz - the annotation class this PluginVisitor is for.
Method Detail

setAnnotation

public PluginVisitor<A> setAnnotation(Annotation annotation)
Description copied from interface: PluginVisitor
Sets the Annotation to be used for this. If the given Annotation is not compatible with this class's type, then it is ignored.

Specified by:
setAnnotation in interface PluginVisitor<A extends Annotation>
Parameters:
annotation - the Annotation instance.
Returns:
this.

setAliases

public PluginVisitor<A> setAliases(String... aliases)
Description copied from interface: PluginVisitor
Sets the list of aliases to use for this visit. No aliases are required, however.

Specified by:
setAliases in interface PluginVisitor<A extends Annotation>
Parameters:
aliases - the list of aliases to use.
Returns:
this.

setConversionType

public PluginVisitor<A> setConversionType(Class<?> conversionType)
Description copied from interface: PluginVisitor
Sets the class to convert the plugin value to on this visit. This should correspond with a class obtained from a factory method or builder class field. Not all PluginVisitor implementations may need this value.

Specified by:
setConversionType in interface PluginVisitor<A extends Annotation>
Parameters:
conversionType - the type to convert the plugin string to (if applicable).
Returns:
this.

setStrSubstitutor

public PluginVisitor<A> setStrSubstitutor(StrSubstitutor substitutor)
Description copied from interface: PluginVisitor
Sets the StrSubstitutor to use for converting raw strings before type conversion. Generally obtained from a Configuration.

Specified by:
setStrSubstitutor in interface PluginVisitor<A extends Annotation>
Parameters:
substitutor - the StrSubstitutor to use on plugin values.
Returns:
this.

setMember

public PluginVisitor<A> setMember(Member member)
Description copied from interface: PluginVisitor
Sets the Member that this visitor is being used for injection upon. For instance, this could be the Field that is being used for injecting a value, or it could be the factory method being used to inject parameters into.

Specified by:
setMember in interface PluginVisitor<A extends Annotation>
Parameters:
member - the member this visitor is parsing a value for.
Returns:
this.

removeAttributeValue

protected static String removeAttributeValue(Map<String,String> attributes,
                                             String name,
                                             String... aliases)
Removes an Entry from a given Map using a key name and aliases for that key. Keys are case-insensitive.

Parameters:
attributes - the Map to remove an Entry from.
name - the key name to look up.
aliases - optional aliases of the key name to look up.
Returns:
the value corresponding to the given key or null if nonexistent.

convert

protected Object convert(String value,
                         Object defaultValue)
Converts the given value into the configured type falling back to the provided default value.

Parameters:
value - the value to convert.
defaultValue - the fallback value to use in case of no value or an error.
Returns:
the converted value whether that be based on the given value or the default value.


Copyright © 1999-2015 Apache Software Foundation. All Rights Reserved.
Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, the Apache Logging project logo, and the Apache Log4j logo are trademarks of The Apache Software Foundation.