All Downloads are FREE. Search and download functionalities are using the official Maven repository.

science.raketen.voodoo.context.singleton.SingletonContext Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2016 Stephan Knitelius .
 *
 * 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 science.raketen.voodoo.context.singleton;

import javax.inject.Singleton;
import science.raketen.voodoo.context.Context;
import science.raketen.voodoo.context.ContextualType;

/**
 *
 * @author Stephan Knitelius {@literal }
 */
public class SingletonContext extends Context {

    private static final Class SCOPE_ANNOTATION = Singleton.class;

    @Override
    public Class getContextAnnotation() {
        return SCOPE_ANNOTATION;
    }

    @Override
    protected ContextualType buildContextualType(Class type) {
        //@Singleton is a standard JSR-330 annotation, some classes in Google Guice 
        //that do not have a default constructor are annotated with @Singelton. 
        if (type.getPackage().getName().startsWith("com.google.")) {
            return null;
        }
        return new SingletonContextualType(type);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy