// Path: holder-compiler/src/main/java/com/steve/creact/processor/core/Logger.java
// public class Logger {
//     public static boolean logOn = false;
//     public static Logger getInstance(Messager messager) {
//         if (instance == null) {
//             synchronized (Logger.class) {
//                 if (instance != null)
//                     return instance;
//                 instance = new Logger(messager);
//             }
//         }
//         return instance;
//     }
// 
//     private static Messager actual;
//     private static volatile Logger instance;
//     private Logger(Messager actual) {
//         this.actual = actual;
//     }
// 
//     public void log(Diagnostic.Kind kind, String message) {
//         if (logOn && actual != null) {
//             actual.printMessage(kind, message);
//         }
//     }
// }


import com.steve.creact.processor.core.Logger;
import javax.annotation.processing.ProcessingEnvironment;
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementVisitor;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.PackageElement;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.TypeParameterElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.util.Elements;
import javax.lang.model.util.Types;
package com.steve.creact.processor.core.model;



/**
 * @see ElementVisitor
 * Created by Administrator on 2016/4/10.
 */
public abstract class ElementVisitorAdapter<R, P> implements ElementVisitor<R, P> {
    protected ProcessingEnvironment processingEnv;
    protected Types typeUtils;
// Path: holder-compiler/src/main/java/com/steve/creact/processor/core/Logger.java
// public class Logger {
//     public static boolean logOn = false;
//     public static Logger getInstance(Messager messager) {
//         if (instance == null) {
//             synchronized (Logger.class) {
//                 if (instance != null)
//                     return instance;
//                 instance = new Logger(messager);
//             }
//         }
//         return instance;
//     }
// 
//     private static Messager actual;
//     private static volatile Logger instance;
//     private Logger(Messager actual) {
//         this.actual = actual;
//     }
// 
//     public void log(Diagnostic.Kind kind, String message) {
//         if (logOn && actual != null) {
//             actual.printMessage(kind, message);
//         }
//     }
// }


// Path: holder-compiler/src/main/java/com/steve/creact/processor/core/model/ElementVisitorAdapter.java
import com.steve.creact.processor.core.Logger;
import javax.annotation.processing.ProcessingEnvironment;
import javax.lang.model.element.Element;
import javax.lang.model.element.ElementVisitor;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.PackageElement;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.TypeParameterElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.util.Elements;
import javax.lang.model.util.Types;

package com.steve.creact.processor.core.model;



/**
 * @see ElementVisitor
 * Created by Administrator on 2016/4/10.
 */
public abstract class ElementVisitorAdapter<R, P> implements ElementVisitor<R, P> {
    protected ProcessingEnvironment processingEnv;
    protected Types typeUtils;
    protected Logger logger;