// Path: cdi-properties-main/src/main/java/com/byteslounge/cdi/resolver/context/ResolverContext.java
// public class ResolverContext {
// 
//     private final String key;
//     private final String bundleName;
//     private Bean<?> resolverBean;
//     private BeanManager beanManager;
// 
//     private ResolverContext(String key, String bundleName) {
//         this.key = key;
//         this.bundleName = bundleName;
//     }
// 
//     /**
//      * Creates a {@link com.byteslounge.cdi.resolver.context.ResolverContext} instance.
//      * 
//      * @param key the property key to be associated with the created context
//      * @param bundleName the resource bundle name to be associated with the created context
//      * 
//      * @return the newly created {@link com.byteslounge.cdi.resolver.context.ResolverContext} instance
//      */
//     public static ResolverContext create(String key, String bundleName) {
//         return new ResolverContext(key, bundleName);
//     }
// 
//     /**
//      * Gets the key associated with this {@link com.byteslounge.cdi.resolver.context.ResolverContext} instance
//      * 
//      * @return the key associated with this {@link com.byteslounge.cdi.resolver.context.ResolverContext} instance
//      */
//     public String getKey() {
//         return key;
//     }
// 
//     /**
//      * Gets the resource bundle name associated with this {@link com.byteslounge.cdi.resolver.context.ResolverContext} instance
//      * 
//      * @return the resource bundle name associated with this {@link com.byteslounge.cdi.resolver.context.ResolverContext} instance
//      */
//     public String getBundleName() {
//         return bundleName;
//     }
// 
//     /**
//      * Sets the resolver bean associated with the current resolving execution
//      * 
//      * @param resolverBean the property key to be associated with the created context
//      */
//     public void setResolverBean(Bean<?> resolverBean) {
//         this.resolverBean = resolverBean;
//     }
// 
//     /**
//      * Gets the resolver bean associated with the current resolving execution
//      * 
//      * @return the resolver bean associated with the current resolving execution
//      */
//     public Bean<?> getResolverBean() {
//         return resolverBean;
//     }
// 
//     /**
//      * Gets the bean manager associated with the current resolving execution
//      * 
//      * @return the bean manager associated with the current resolving execution
//      */
//     public BeanManager getBeanManager() {
//         return beanManager;
//     }
// 
//     /**
//      * Sets the bean manager associated with the current resolving execution
//      * 
//      * @param beanManager the bean manager associated with the current resolving execution
//      */
//     public void setBeanManager(BeanManager beanManager) {
//         this.beanManager = beanManager;
//     }
// 
// }


import java.lang.annotation.Annotation;
import java.lang.reflect.Member;
import java.lang.reflect.Type;
import java.util.HashSet;
import java.util.Set;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.Annotated;
import javax.enterprise.inject.spi.AnnotatedParameter;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.inject.spi.InjectionPoint;
import com.byteslounge.cdi.resolver.context.ResolverContext;
    }

    /**
     * See {@link InjectionPoint#getType()}
     */
    @Override
    public Type getType() {
        return parameter.getBaseType();
    }

    /**
     * See {@link InjectionPoint#isDelegate()}
     */
    @Override
    public boolean isDelegate() {
        return false;
    }

    /**
     * See {@link InjectionPoint#isTransient()}
     */
    @Override
    public boolean isTransient() {
        return false;
    }

    /**
     * see {@link ResolverParameter#resolve(String, String, CreationalContext)}
     */
    @Override
// Path: cdi-properties-main/src/main/java/com/byteslounge/cdi/resolver/context/ResolverContext.java
// public class ResolverContext {
// 
//     private final String key;
//     private final String bundleName;
//     private Bean<?> resolverBean;
//     private BeanManager beanManager;
// 
//     private ResolverContext(String key, String bundleName) {
//         this.key = key;
//         this.bundleName = bundleName;
//     }
// 
//     /**
//      * Creates a {@link com.byteslounge.cdi.resolver.context.ResolverContext} instance.
//      * 
//      * @param key the property key to be associated with the created context
//      * @param bundleName the resource bundle name to be associated with the created context
//      * 
//      * @return the newly created {@link com.byteslounge.cdi.resolver.context.ResolverContext} instance
//      */
//     public static ResolverContext create(String key, String bundleName) {
//         return new ResolverContext(key, bundleName);
//     }
// 
//     /**
//      * Gets the key associated with this {@link com.byteslounge.cdi.resolver.context.ResolverContext} instance
//      * 
//      * @return the key associated with this {@link com.byteslounge.cdi.resolver.context.ResolverContext} instance
//      */
//     public String getKey() {
//         return key;
//     }
// 
//     /**
//      * Gets the resource bundle name associated with this {@link com.byteslounge.cdi.resolver.context.ResolverContext} instance
//      * 
//      * @return the resource bundle name associated with this {@link com.byteslounge.cdi.resolver.context.ResolverContext} instance
//      */
//     public String getBundleName() {
//         return bundleName;
//     }
// 
//     /**
//      * Sets the resolver bean associated with the current resolving execution
//      * 
//      * @param resolverBean the property key to be associated with the created context
//      */
//     public void setResolverBean(Bean<?> resolverBean) {
//         this.resolverBean = resolverBean;
//     }
// 
//     /**
//      * Gets the resolver bean associated with the current resolving execution
//      * 
//      * @return the resolver bean associated with the current resolving execution
//      */
//     public Bean<?> getResolverBean() {
//         return resolverBean;
//     }
// 
//     /**
//      * Gets the bean manager associated with the current resolving execution
//      * 
//      * @return the bean manager associated with the current resolving execution
//      */
//     public BeanManager getBeanManager() {
//         return beanManager;
//     }
// 
//     /**
//      * Sets the bean manager associated with the current resolving execution
//      * 
//      * @param beanManager the bean manager associated with the current resolving execution
//      */
//     public void setBeanManager(BeanManager beanManager) {
//         this.beanManager = beanManager;
//     }
// 
// }


// Path: cdi-properties-main/src/main/java/com/byteslounge/cdi/extension/param/InjectableResolverParameter.java
import java.lang.annotation.Annotation;
import java.lang.reflect.Member;
import java.lang.reflect.Type;
import java.util.HashSet;
import java.util.Set;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.Annotated;
import javax.enterprise.inject.spi.AnnotatedParameter;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.inject.spi.InjectionPoint;
import com.byteslounge.cdi.resolver.context.ResolverContext;

    }

    /**
     * See {@link InjectionPoint#getType()}
     */
    @Override
    public Type getType() {
        return parameter.getBaseType();
    }

    /**
     * See {@link InjectionPoint#isDelegate()}
     */
    @Override
    public boolean isDelegate() {
        return false;
    }

    /**
     * See {@link InjectionPoint#isTransient()}
     */
    @Override
    public boolean isTransient() {
        return false;
    }

    /**
     * see {@link ResolverParameter#resolve(String, String, CreationalContext)}
     */
    @Override
    public <T> Object resolve(ResolverContext resolverContext, CreationalContext<T> ctx) {