// Copyright 2015 Pants project contributors (see CONTRIBUTORS.md). // Licensed under the Apache License, Version 2.0 (see LICENSE). package com.twitter.intellij.pants.service.project.modifier; import com.intellij.openapi.diagnostic.Logger; import com.intellij.util.containers.ContainerUtilRt; import com.twitter.intellij.pants.service.PantsCompileOptionsExecutor; import com.twitter.intellij.pants.service.project.PantsProjectInfoModifierExtension; import com.twitter.intellij.pants.service.project.model.ProjectInfo; import com.twitter.intellij.pants.service.project.model.TargetInfo; import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.Map; public class PantsEmptyTargetRemover implements PantsProjectInfoModifierExtension { @Override public void modify(@NotNull ProjectInfo projectInfo, @NotNull PantsCompileOptionsExecutor executor, @NotNull Logger log) { final List<String> emptyTargets = ContainerUtilRt.newArrayList(); do { emptyTargets.clear(); for (Map.Entry<String, TargetInfo> targetInfoEntry : projectInfo.getTargets().entrySet()) { final String targetName = targetInfoEntry.getKey(); final TargetInfo targetInfo = targetInfoEntry.getValue(); if (targetInfo.isEmpty()) { emptyTargets.add(targetName); } } projectInfo.removeTargets(emptyTargets); } while (!emptyTargets.isEmpty()); } }