-class ModuleOrModuleBuilder {
- private final Optional<Module> maybeModule;
- private final Optional<ModuleBuilder> maybeModuleBuilder;
-
- ModuleOrModuleBuilder(final Module module) {
- maybeModule = Optional.of(module);
- maybeModuleBuilder = Optional.absent();
- }
-
- ModuleOrModuleBuilder(final ModuleBuilder moduleBuilder) {
- maybeModule = Optional.absent();
- maybeModuleBuilder = Optional.of(moduleBuilder);
- }
- boolean isModule(){
- return maybeModule.isPresent();
- }
- boolean isModuleBuilder(){
- return maybeModuleBuilder.isPresent();
- }
- Module getModule(){
- return maybeModule.get();
- }
- ModuleBuilder getModuleBuilder(){
- return maybeModuleBuilder.get();
- }
-
- static List<ModuleOrModuleBuilder> fromAll(final Collection<Module> modules, final Collection<ModuleBuilder> moduleBuilders) {
- List<ModuleOrModuleBuilder> result = new ArrayList<>(modules.size() + moduleBuilders.size());
- for(Module m: modules){
- result.add(new ModuleOrModuleBuilder(m));
- }
- for (ModuleBuilder mb : moduleBuilders) {
- result.add(new ModuleOrModuleBuilder(mb));
- }
- return result;
- }
-}