Home
Content of source file org.apache.log4j.config.PropertyGetter.java.res Press <TAB> to move from one error to the next
package org.apache.log4j.config;
import java.beans.*;
import java.lang.reflect.*;
import org.apache.log4j.Priority;
import org.apache.log4j.helpers.LogLog;
public 
class PropertyGetter
{
   
   protected static final 
   Object[]  NULL_ARG
   //QC   Intervals :(Object[]) org.apache.log4j.config.PropertyGetter.NULL_ARG        : Interval   0 :          new new         
   =new Object[] {}
   ;
   
   protected 
   Object obj
   //QC   Intervals :  (Object) org.apache.log4j.config.PropertyGetter.obj             : Interval   0 :         null null        
   //QC             :                                                                    Interval   1 :          new new         
   
   ;
   
   protected 
   PropertyDescriptor[]  props
   //QC   Intervals :(PropertyDescriptor[]) org.apache.log4j.config.PropertyGetter.props           : Interval   0 :         null null        
   //QC             :                                                                                Interval   1 :          new new         
   
   ;
   
   public 
   interface PropertyCallback
   {
      
      void 
      foundProperty
      (
         Object obj
         ,
         String prefix
         ,
         String name
         ,
         Object value
      )
      //QC   Intervals :  (Object) org.apache.log4j.config.PropertyGetter.PropertyCallback.foundProperty.obj: Interval   0 :         null null        
      //QC             :                                                                                      Interval   1 :          new new         
      //QC   Intervals :  (String) org.apache.log4j.config.PropertyGetter.PropertyCallback.foundProperty.prefix: Interval   0 :         null null        
      //QC             :                                                                                         Interval   1 :          new new         
      //QC   Intervals :  (String) org.apache.log4j.config.PropertyGetter.PropertyCallback.foundProperty.name: Interval   0 :         null null        
      //QC             :                                                                                       Interval   1 :          new new         
      //QC   Intervals :  (Object) org.apache.log4j.config.PropertyGetter.PropertyCallback.foundProperty.value: Interval   0 :         null null        
      //QC             :                                                                                        Interval   1 :          new new         
      ;
   }
   
   public 
   PropertyGetter
   (
      Object obj
   )
   //QC   Intervals :  (Object) org.apache.log4j.config.PropertyGetter.PropertyGetter.obj: Interval   0 :         null null        
   //QC             :                                                                      Interval   1 :          new new         
   throws IntrospectionException
   {
      BeanInfo bi=Introspector.getBeanInfo(obj.getClass());
      //QC-CWE476 or QCerrorNPE null pointer reference on obj (see http://cwe.mitre.org/data/definitions/476.html)
      //QC   Intervals :   (Class) java.beans.Introspector
1                              : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //QC   Intervals :(BeanInfo) org.apache.log4j.config.PropertyGetter.PropertyGetter.bi: Interval   0 :         null null        
      //QC             :                                                                     Interval   1 :          new new         
      
      props=bi.getPropertyDescriptors();
      //QC-CWE476 or QCerrorNPE null pointer reference on bi (see http://cwe.mitre.org/data/definitions/476.html)
      //QC   Intervals :(PropertyDescriptor) org.apache.log4j.config.PropertyGetter.PropertyGetter
 : Interval   0 :         null null        
      //QC             :                                                                              Interval   1 :          new new         
      //assignation
      
      this.obj=obj;
      //QC   Intervals :  (Object) org.apache.log4j.config.PropertyGetter
                : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //assignation
   }
   
   public static 
   void  getProperties
   (
      Object obj
      ,
      PropertyCallback callback
      ,
      String prefix
   )
   //QC   Intervals :  (Object) org.apache.log4j.config.PropertyGetter.getProperties.obj: Interval   0 :         null null        
   //QC             :                                                                     Interval   1 :          new new         
   //QC   Intervals :(PropertyCallback) org.apache.log4j.config.PropertyGetter.getProperties.callback: Interval   0 :         null null        
   //QC             :                                                                                  Interval   1 :          new new         
   //QC   Intervals :  (String) org.apache.log4j.config.PropertyGetter.getProperties.prefix: Interval   0 :         null null        
   //QC             :                                                                        Interval   1 :          new new         
   
   {
      
      try 
      {
         
         new PropertyGetter(obj).getProperties(callback,prefix);
         //type of the function/method : void;PropertyCallback;String
         //QC-CWE252 or QCerrorRTF return type of function is not tested (see http://cwe.mitre.org/data/definitions/252.html)
      }
      catch (
         IntrospectionException ex
      )
      //QC   Intervals :(IntrospectionException) org.apache.log4j.config.PropertyGetter.getProperties.ex: Interval   0 :         null null        
      //QC             :                                                                                  Interval   1 :          new new         
      {
         
         LogLog.error("Failed to introspect object "+obj,ex);
         //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.error
1                : Interval   0 :            0 : 0           
         //QC   Intervals :(Throwable) org.apache.log4j.helpers.LogLog.error
2                : Interval   0 :         null null        
         //QC             :                                                                     Interval   1 :          new new         
         //type of the function/method : void
      }
   }
   
   public 
   void  getProperties
   (
      PropertyCallback callback
      ,
      String prefix
   )
   //QC   Intervals :(PropertyCallback) org.apache.log4j.config.PropertyGetter.getProperties.callback: Interval   0 :         null null        
   //QC             :                                                                                  Interval   1 :          new new         
   //QC   Intervals :  (String) org.apache.log4j.config.PropertyGetter.getProperties.prefix: Interval   0 :         null null        
   //QC             :                                                                        Interval   1 :          new new         
   
   {
      
      for (
         int i
         //QC   Intervals :     (int) org.apache.log4j.config.PropertyGetter.getProperties.i : Interval   0 :            0 : 0           
         =0;
         i<props.length;
         i++
         
      )
         {
            Method getter=props[i] .getReadMethod();
            //QC   Intervals :  (Method) org.apache.log4j.config.PropertyGetter.getProperties.getter: Interval   0 :         null null        
            //QC             :                                                                        Interval   1 :          new new         
            
            if (getter==null )
               //QC   Intervals :  (Method) org.apache.log4j.config.PropertyGetter.getProperties.getter: Interval   0 :         null null        
               continue ;
            
            if (!isHandledType(getter.getReturnType()))
               //QC-CWE476 or QCerrorNPE null pointer reference on getter (see http://cwe.mitre.org/data/definitions/476.html)
               //QC   Intervals :   (Class) org.apache.log4j.config.PropertyGetter.isHandledType
1 : Interval   0 :         null null        
               //QC             :                                                                    Interval   1 :          new new         
               //QC   Intervals : (boolean) org.apache.log4j.config.PropertyGetter.isHandledType
  : Interval   0 :        false false       
               {
                  
                  continue ;
               }
            String name=props[i] .getName();
            //QC   Intervals :  (String) org.apache.log4j.config.PropertyGetter.getProperties.name: Interval   0 :         null null        
            //QC             :                                                                      Interval   1 :          new new         
            
            try 
            {
               Object result=getter.invoke(obj,NULL_ARG);
               //QC   Intervals :  (Object) java.lang.reflect.Method
1                             : Interval   0 :         null null        
               //QC             :                                                                    Interval   1 :          new new         
               //QC   Intervals :  (Object) java.lang.reflect.Method
2                             : Interval   0 :         null null        
               //QC             :                                                                    Interval   1 :          new new         
               //QC-CWE476 or QCerrorNPE null pointer reference on getter (see http://cwe.mitre.org/data/definitions/476.html)
               //QC   Intervals :  (Object) org.apache.log4j.config.PropertyGetter.getProperties.result: Interval   0 :         null null        
               //QC             :                                                                        Interval   1 :          new new         
               
               if (result!=null )
                  //QC   Intervals :  (Object) org.apache.log4j.config.PropertyGetter.getProperties.result: Interval   0 :          new new         
                  {
                     
                     callback.foundProperty(obj,prefix,name,result);
                     //QC   Intervals :  (Object) org.apache.log4j.config.PropertyGetter.PropertyCallback.foundProperty
1: Interval   0 :         null null        
                     //QC             :                                                                                    Interval   1 :          new new         
                     //QC   Intervals :  (String) org.apache.log4j.config.PropertyGetter.PropertyCallback.foundProperty
2: Interval   0 :         null null        
                     //QC             :                                                                                    Interval   1 :          new new         
                     //QC   Intervals :  (String) org.apache.log4j.config.PropertyGetter.PropertyCallback.foundProperty
3: Interval   0 :         null null        
                     //QC             :                                                                                    Interval   1 :          new new         
                     //QC   Intervals :  (Object) org.apache.log4j.config.PropertyGetter.PropertyCallback.foundProperty
4: Interval   0 :          new new         
                     //QC-CWE476 or QCerrorNPE null pointer reference on callback (see http://cwe.mitre.org/data/definitions/476.html)
                     //type of the function/method : void
                  }
            }
            catch (
               Exception ex
            )
            //QC   Intervals :(Exception) org.apache.log4j.config.PropertyGetter.getProperties.ex: Interval   0 :         null null        
            //QC             :                                                                     Interval   1 :          new new         
            {
               
               LogLog.warn("Failed to get value of property "+name);
               //QC   Intervals :  (String) org.apache.log4j.helpers.LogLog.warn
1                 : Interval   0 : Failed to get value of property null : Failed to get value of property null
               //QC             :                                                                    Interval   1 : Failed to get value of property new : Failed to get value of property new
               //type of the function/method : void
            }
         }
   }
   
   protected 
   boolean isHandledType
   //QC   Intervals : (boolean) org.apache.log4j.config.PropertyGetter.isHandledType   : Interval   0 :        false true        
   (
      Class type
   )
   //QC   Intervals :   (Class) org.apache.log4j.config.PropertyGetter.isHandledType.type: Interval   0 :         null null        
   //QC             :                                                                      Interval   1 :          new new         
   
   {
      
      return String.class .isAssignableFrom(type)||Integer.TYPE.isAssignableFrom(type)||Long.TYPE.isAssignableFrom(type)||Boolean.TYPE.isAssignableFrom(type)||Priority.class .isAssignableFrom(type);
      //QC   Intervals :   (Class) java.lang.Class.isAssignableFrom
1                     : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //QC   Intervals :   (Class) java.lang.Class.isAssignableFrom
1                     : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //QC   Intervals :   (Class) java.lang.Class.isAssignableFrom
1                     : Interval   0 :         null null        
      //QC             :                                                                    Interval   1 :          new new         
      //QC   Intervals : (boolean) org.apache.log4j.config.PropertyGetter.isHandledType.return: Interval   0 :         true true        
      //QC             :                                                                        Interval   1 :        false false       
   }
   
}