package zielu.gittoolbox.util; import com.google.common.collect.Lists; import com.intellij.openapi.Disposable; import java.util.Arrays; import java.util.Collection; import zielu.gittoolbox.ProjectAware; public class ProjectAwares implements ProjectAware, Disposable { private final Collection<ProjectAware> myAwares; private ProjectAwares(Iterable<? extends ProjectAware> awares) { myAwares = Lists.newArrayList(awares); } public static ProjectAwares create(ProjectAware... awares) { return new ProjectAwares(Arrays.asList(awares)); } @Override public void opened() { for (ProjectAware aware : myAwares) { aware.opened(); } } @Override public void closed() { for (ProjectAware aware : myAwares) { aware.closed(); } } @Override public void dispose() { myAwares.clear(); } }