package com.aol.micro.server.module; import java.lang.annotation.Annotation; import cyclops.collections.immutable.PSetX; import lombok.Getter; @Getter public class EmbeddedModule implements Module { private final PSetX<Class<? extends Annotation>> restAnnotationClasses; private final PSetX<Class<?>> restResourceClasses; private final String context; private EmbeddedModule(Iterable<Class<? extends Annotation>> restAnnotationClasses, String context){ this.restAnnotationClasses = PSetX.fromIterable(restAnnotationClasses); this.context = context; this.restResourceClasses = PSetX.empty(); } private EmbeddedModule(String context, Iterable<Class<?>> restTagClasses){ this.context = context; this.restResourceClasses = PSetX.fromIterable(restTagClasses); this.restAnnotationClasses = PSetX.empty(); } public static EmbeddedModule annotationModule(Iterable<Class<? extends Annotation>> restAnnotationClasses, String context){ return new EmbeddedModule(restAnnotationClasses, context); } public static EmbeddedModule tagInterfaceModule(Iterable<Class<?>> restTagInterfaces, String context){ return new EmbeddedModule( context,restTagInterfaces); } }