// Path: aircycle-compiler/src/main/java/com/github/simonpercic/aircycle/utils/ElementValidator.java
// public final class ElementValidator {
// 
//     private ElementValidator() {
//         // no instance
//     }
// 
//     public static boolean isPublic(Element element) {
//         return hasModifier(element, Modifier.PUBLIC);
//     }
// 
//     public static boolean isPrivate(Element element) {
//         return hasModifier(element, Modifier.PRIVATE);
//     }
// 
//     private static boolean hasModifier(Element element, Modifier modifier) {
//         return element.getModifiers().contains(modifier);
//     }
// }


import android.app.Activity;
import com.github.simonpercic.aircycle.AirCycle;
import com.github.simonpercic.aircycle.utils.ElementValidator;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.DeclaredType;
import javax.lang.model.type.TypeKind;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.Elements;
import javax.lang.model.util.Types;
package com.github.simonpercic.aircycle.manager;




/**
 * Listener field validator.
 *
 * @author Simon Percic <a href="https://github.com/simonpercic">https://github.com/simonpercic</a>
 */
@Singleton
public class FieldValidator {

    private final ProcessorLogger logger;
    private final Elements elementUtils;
    private final Types typeUtils;

    @Inject
    public FieldValidator(ProcessorLogger logger, Elements elementUtils, Types typeUtils) {
        this.logger = logger;
        this.elementUtils = elementUtils;
        this.typeUtils = typeUtils;
    }

    public boolean isFieldValid(VariableElement field) {
// Path: aircycle-compiler/src/main/java/com/github/simonpercic/aircycle/utils/ElementValidator.java
// public final class ElementValidator {
// 
//     private ElementValidator() {
//         // no instance
//     }
// 
//     public static boolean isPublic(Element element) {
//         return hasModifier(element, Modifier.PUBLIC);
//     }
// 
//     public static boolean isPrivate(Element element) {
//         return hasModifier(element, Modifier.PRIVATE);
//     }
// 
//     private static boolean hasModifier(Element element, Modifier modifier) {
//         return element.getModifiers().contains(modifier);
//     }
// }


// Path: aircycle-compiler/src/main/java/com/github/simonpercic/aircycle/manager/FieldValidator.java
import android.app.Activity;
import com.github.simonpercic.aircycle.AirCycle;
import com.github.simonpercic.aircycle.utils.ElementValidator;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.DeclaredType;
import javax.lang.model.type.TypeKind;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.Elements;
import javax.lang.model.util.Types;

package com.github.simonpercic.aircycle.manager;




/**
 * Listener field validator.
 *
 * @author Simon Percic <a href="https://github.com/simonpercic">https://github.com/simonpercic</a>
 */
@Singleton
public class FieldValidator {

    private final ProcessorLogger logger;
    private final Elements elementUtils;
    private final Types typeUtils;

    @Inject
    public FieldValidator(ProcessorLogger logger, Elements elementUtils, Types typeUtils) {
        this.logger = logger;
        this.elementUtils = elementUtils;
        this.typeUtils = typeUtils;
    }

    public boolean isFieldValid(VariableElement field) {
        if (ElementValidator.isPrivate(field)) {