package com.brightgenerous.datasource; import java.util.ArrayList; import java.util.List; import com.google.inject.Injector; public class CompositeInitializer implements Initializer { private final List<Initializer> delegs; public CompositeInitializer(List<Initializer> delegs) { this.delegs = new ArrayList<>(); add(delegs); } public CompositeInitializer(Initializer... delegs) { this.delegs = new ArrayList<>(); add(delegs); } public CompositeInitializer add(List<Initializer> delegs) { if ((delegs != null) && !delegs.isEmpty()) { for (Initializer d : delegs) { if (d != null) { this.delegs.add(d); } } } return this; } public CompositeInitializer add(Initializer[] delegs) { if ((delegs != null) && (0 < delegs.length)) { List<Initializer> ds = new ArrayList<>(delegs.length); for (Initializer d : delegs) { ds.add(d); } add(ds); } return this; } public CompositeInitializer add(Initializer deleg, Initializer... delegs) { List<Initializer> ds = new ArrayList<>(((delegs == null) ? 0 : delegs.length) + 1); ds.add(deleg); if ((delegs != null) && (0 < delegs.length)) { for (Initializer d : delegs) { ds.add(d); } } return add(ds); } @Override public void initialize(Injector injector) { for (Initializer deleg : delegs) { deleg.initialize(injector); } } }