// Path: cdi-properties-main/src/main/java/com/byteslounge/cdi/exception/ExtensionInitializationException.java
// public class ExtensionInitializationException extends RuntimeException {
// 
//     private static final long serialVersionUID = 1L;
// 
//     public ExtensionInitializationException(String message) {
//         super(message);
//     }
// 
//     public ExtensionInitializationException(Throwable cause) {
//         super(cause);
//     }
// 
//     public ExtensionInitializationException(String message, Throwable cause) {
//         super(message, cause);
//     }
// 
// }


import java.lang.annotation.Annotation;
import javax.enterprise.inject.spi.AnnotatedMethod;
import javax.enterprise.inject.spi.AnnotatedParameter;
import com.byteslounge.cdi.annotation.PropertyBundle;
import com.byteslounge.cdi.annotation.PropertyKey;
import com.byteslounge.cdi.annotation.PropertyLocale;
import com.byteslounge.cdi.exception.ExtensionInitializationException;
     */
    private void checkPropertyKeyExists() {
        boolean foundKeyProperty = false;
        for (final AnnotatedParameter<?> parameter : propertyResolverMethod.getParameters()) {
            if (parameter.isAnnotationPresent(PropertyKey.class)) {
                foundKeyProperty = true;
                break;
            }
        }
        if (!foundKeyProperty) {
            throw new ExtensionInitializationException(
                    "At least one parameter of the custom property resolver must represent de property key, annotated with "
                            + PropertyKey.class.getName());
        }
    }

    /**
     * Checks if the given parameter type exists in more than a single property resolver
     * method parameter
     * @param annotation
     *            The parameter type being checked
     */
    private void checkRepeatedParameterType(Class<? extends Annotation> annotation) {
        int count = 0;
        for (final AnnotatedParameter<?> parameter : propertyResolverMethod.getParameters()) {
            if (parameter.isAnnotationPresent(annotation)) {
                count++;
            }
        }
        if (count > 1) {
// Path: cdi-properties-main/src/main/java/com/byteslounge/cdi/exception/ExtensionInitializationException.java
// public class ExtensionInitializationException extends RuntimeException {
// 
//     private static final long serialVersionUID = 1L;
// 
//     public ExtensionInitializationException(String message) {
//         super(message);
//     }
// 
//     public ExtensionInitializationException(Throwable cause) {
//         super(cause);
//     }
// 
//     public ExtensionInitializationException(String message, Throwable cause) {
//         super(message, cause);
//     }
// 
// }


// Path: cdi-properties-main/src/main/java/com/byteslounge/cdi/resolver/verifier/PropertyResolverMethodParametersVerifier.java
import java.lang.annotation.Annotation;
import javax.enterprise.inject.spi.AnnotatedMethod;
import javax.enterprise.inject.spi.AnnotatedParameter;
import com.byteslounge.cdi.annotation.PropertyBundle;
import com.byteslounge.cdi.annotation.PropertyKey;
import com.byteslounge.cdi.annotation.PropertyLocale;
import com.byteslounge.cdi.exception.ExtensionInitializationException;

     */
    private void checkPropertyKeyExists() {
        boolean foundKeyProperty = false;
        for (final AnnotatedParameter<?> parameter : propertyResolverMethod.getParameters()) {
            if (parameter.isAnnotationPresent(PropertyKey.class)) {
                foundKeyProperty = true;
                break;
            }
        }
        if (!foundKeyProperty) {
            throw new ExtensionInitializationException(
                    "At least one parameter of the custom property resolver must represent de property key, annotated with "
                            + PropertyKey.class.getName());
        }
    }

    /**
     * Checks if the given parameter type exists in more than a single property resolver
     * method parameter
     * @param annotation
     *            The parameter type being checked
     */
    private void checkRepeatedParameterType(Class<? extends Annotation> annotation) {
        int count = 0;
        for (final AnnotatedParameter<?> parameter : propertyResolverMethod.getParameters()) {
            if (parameter.isAnnotationPresent(annotation)) {
                count++;
            }
        }
        if (count > 1) {
            throw new ExtensionInitializationException("There must be only a single param annotated with "