You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2014/06/02 00:51:16 UTC

svn commit: r1599073 - in /logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors: AbstractPluginVisitor.java PluginVisitor.java

Author: mattsicker
Date: Sun Jun  1 22:51:15 2014
New Revision: 1599073

URL: http://svn.apache.org/r1599073
Log:
Add setMember method to PluginVisitor.

  - This can be used for obtaining extra details about a member to be
   reflected on (e.g., the name of a field).

Modified:
    logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/AbstractPluginVisitor.java
    logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginVisitor.java

Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/AbstractPluginVisitor.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/AbstractPluginVisitor.java?rev=1599073&r1=1599072&r2=1599073&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/AbstractPluginVisitor.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/AbstractPluginVisitor.java Sun Jun  1 22:51:15 2014
@@ -18,6 +18,7 @@
 package org.apache.logging.log4j.core.config.plugins.visitors;
 
 import java.lang.annotation.Annotation;
+import java.lang.reflect.Member;
 import java.util.Map;
 
 import org.apache.logging.log4j.Logger;
@@ -42,6 +43,7 @@ public abstract class AbstractPluginVisi
     protected String[] aliases;
     protected Class<?> conversionType;
     protected StrSubstitutor substitutor;
+    protected Member member;
 
     /**
      * This constructor must be overridden by implementation classes as a no-arg constructor.
@@ -80,6 +82,12 @@ public abstract class AbstractPluginVisi
         return this;
     }
 
+    @Override
+    public PluginVisitor<A> setMember(final Member member) {
+        this.member = member;
+        return this;
+    }
+
     /**
      * Removes an Entry from a given Map using a key name and aliases for that key. Keys are case-insensitive.
      *

Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginVisitor.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginVisitor.java?rev=1599073&r1=1599072&r2=1599073&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginVisitor.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/visitors/PluginVisitor.java Sun Jun  1 22:51:15 2014
@@ -18,6 +18,7 @@
 package org.apache.logging.log4j.core.config.plugins.visitors;
 
 import java.lang.annotation.Annotation;
+import java.lang.reflect.Member;
 
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.Configuration;
@@ -71,6 +72,16 @@ public interface PluginVisitor<A extends
     PluginVisitor<A> setStrSubstitutor(StrSubstitutor substitutor);
 
     /**
+     * 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.
+     *
+     * @param member the member this visitor is parsing a value for.
+     * @return {@code this}.
+     */
+    PluginVisitor<A> setMember(Member member);
+
+    /**
      * Visits a Node to obtain a value for constructing a Plugin object.
      *
      * @param configuration the current Configuration.