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

net.spals.appbuilder.annotations.AppBuilderAnnotations Maven / Gradle / Ivy

package net.spals.appbuilder.annotations;

import com.google.common.collect.ImmutableSet;
import net.spals.appbuilder.annotations.config.ApplicationName;
import net.spals.appbuilder.annotations.config.ServiceConfig;
import net.spals.appbuilder.annotations.migration.AutoBindMigration;
import net.spals.appbuilder.annotations.service.*;

import java.lang.annotation.Annotation;
import java.util.Set;

/**
 * @author tkral
 */
public class AppBuilderAnnotations {

    private static final Set> ALL_CONFIG =
            ImmutableSet.>builder()
                    .add(ApplicationName.class, ServiceConfig.class)
                    .build();

    private static final Set> ALL_MIGRATION =
            ImmutableSet.>builder()
                    .add(AutoBindMigration.class)
                    .build();

    private static final Set> ALL_SERVICE =
            ImmutableSet.>builder()
                    .add(AutoBindFactory.class, AutoBindInMap.class, AutoBindInSet.class,
                            AutoBindModule.class, AutoBindProvider.class, AutoBindSingleton.class)
                    .build();

    private AppBuilderAnnotations() { }

    public static Set> all() {
        return ImmutableSet.>builder()
                .addAll(ALL_CONFIG)
                .addAll(ALL_MIGRATION)
                .addAll(ALL_SERVICE)
                .build();
    }

    public static Set> allConfig() {
        return ALL_CONFIG;
    }

    public static Set> allMigration() {
        return ALL_MIGRATION;
    }

    public static Set> allService() {
        return ALL_SERVICE;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy