// Path: cdi-properties-main/src/main/java/com/byteslounge/cdi/extension/param/LocalePropertyResolverParameter.java
// public class LocalePropertyResolverParameter implements ResolverParameter<Locale> {
// 
//     private final ResolverBean<Locale> localeResolverBean;
// 
//     public LocalePropertyResolverParameter(ResolverBean<Locale> localResolverBean) {
//         this.localeResolverBean = localResolverBean;
//     }
// 
//     /**
//      * see {@link ResolverParameter#resolve(String, String, CreationalContext)}
//      */
//     @Override
//     public <T> Locale resolve(ResolverContext resolverContext, CreationalContext<T> ctx) {
//         return localeResolverBean.invoke(resolverContext, ctx);
//     }
// 
// }
// 
// Path: cdi-properties-main/src/main/java/com/byteslounge/cdi/resolver/bean/ResolverBean.java
// public interface ResolverBean<T> {
// 
//     /**
//      * Processes a CDI managed bean and checks if it defines an extension's resolver method
//      * 
//      * @param at the CDI managed bean to check for an extension's resolver method
//      */
//     void process(AnnotatedType<?> at);
// 
//     /**
//      * Initializes the extension's resolver method
//      * 
//      * @param beanManager the CDI container Bean Manager
//      */
//     void initialize(BeanManager beanManager);
//     
//     /**
//      * Invokes the extension's resolver method represented by this bean
//      * 
//      * @param resolverContext the Resolver Context
//      * @param ctx The CDI creational context
//      * 
//      * @return the value returned by this extension's resolver method
//      */
//     T invoke(ResolverContext resolverContext, CreationalContext<?> ctx);
// 
// }


import com.byteslounge.cdi.annotation.PropertyLocale;
import com.byteslounge.cdi.extension.param.LocalePropertyResolverParameter;
import com.byteslounge.cdi.resolver.bean.ResolverBean;
import java.util.Locale;
/*
 * Copyright 2014 byteslounge.com (Gonçalo Marques).
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 */
package com.byteslounge.cdi.resolver.extractor;



/**
 * Represents the extractor for the Locale property resolver method parameter
 * 
 * @author Gonçalo Marques
 * @since 1.1.0
 */
public class LocaleResolverParameterExtractor extends
        ProvidedResolverParameterExtractor<LocalePropertyResolverParameter> {

// Path: cdi-properties-main/src/main/java/com/byteslounge/cdi/extension/param/LocalePropertyResolverParameter.java
// public class LocalePropertyResolverParameter implements ResolverParameter<Locale> {
// 
//     private final ResolverBean<Locale> localeResolverBean;
// 
//     public LocalePropertyResolverParameter(ResolverBean<Locale> localResolverBean) {
//         this.localeResolverBean = localResolverBean;
//     }
// 
//     /**
//      * see {@link ResolverParameter#resolve(String, String, CreationalContext)}
//      */
//     @Override
//     public <T> Locale resolve(ResolverContext resolverContext, CreationalContext<T> ctx) {
//         return localeResolverBean.invoke(resolverContext, ctx);
//     }
// 
// }
// 
// Path: cdi-properties-main/src/main/java/com/byteslounge/cdi/resolver/bean/ResolverBean.java
// public interface ResolverBean<T> {
// 
//     /**
//      * Processes a CDI managed bean and checks if it defines an extension's resolver method
//      * 
//      * @param at the CDI managed bean to check for an extension's resolver method
//      */
//     void process(AnnotatedType<?> at);
// 
//     /**
//      * Initializes the extension's resolver method
//      * 
//      * @param beanManager the CDI container Bean Manager
//      */
//     void initialize(BeanManager beanManager);
//     
//     /**
//      * Invokes the extension's resolver method represented by this bean
//      * 
//      * @param resolverContext the Resolver Context
//      * @param ctx The CDI creational context
//      * 
//      * @return the value returned by this extension's resolver method
//      */
//     T invoke(ResolverContext resolverContext, CreationalContext<?> ctx);
// 
// }


// Path: cdi-properties-main/src/main/java/com/byteslounge/cdi/resolver/extractor/LocaleResolverParameterExtractor.java
import com.byteslounge.cdi.annotation.PropertyLocale;
import com.byteslounge.cdi.extension.param.LocalePropertyResolverParameter;
import com.byteslounge.cdi.resolver.bean.ResolverBean;
import java.util.Locale;

/*
 * Copyright 2014 byteslounge.com (Gonçalo Marques).
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 */
package com.byteslounge.cdi.resolver.extractor;



/**
 * Represents the extractor for the Locale property resolver method parameter
 * 
 * @author Gonçalo Marques
 * @since 1.1.0
 */
public class LocaleResolverParameterExtractor extends
        ProvidedResolverParameterExtractor<LocalePropertyResolverParameter> {

    public LocaleResolverParameterExtractor(ResolverBean<Locale> localeResolverBean) {