/**
  * Import from another configuration (e.g. imported file). Returns the number of imported items.
  *
  * @param cfg configuration to import from
  * @return added injections count
  */
 public int importFrom(final Configuration cfg) {
   final ArrayList<BaseInjection> originalInjections = new ArrayList<BaseInjection>();
   final ArrayList<BaseInjection> newInjections = new ArrayList<BaseInjection>();
   for (String supportId : InjectorUtils.getActiveInjectionSupportIds()) {
     importInjections(
         getInjections(supportId),
         cfg.getInjections(supportId),
         originalInjections,
         newInjections);
   }
   if (!newInjections.isEmpty()) configurationModified();
   replaceInjections(newInjections, originalInjections);
   return newInjections.size();
 }
 public void replaceInjections(
     final List<? extends BaseInjection> newInjections,
     final List<? extends BaseInjection> originalInjections) {
   for (BaseInjection injection : originalInjections) {
     myInjections.get(injection.getSupportId()).remove(injection);
   }
   for (BaseInjection injection : newInjections) {
     injection.initializePlaces(true);
     myInjections.get(injection.getSupportId()).add(injection);
   }
   configurationModified();
   for (Project project : ProjectManager.getInstance().getOpenProjects()) {
     FileContentUtil.reparseFiles(project, Collections.<VirtualFile>emptyList(), true);
   }
 }
 public boolean replaceInjections(
     List<? extends BaseInjection> newInjections,
     List<? extends BaseInjection> originalInjections,
     boolean forceLevel) {
   boolean changed = false;
   for (BaseInjection injection : originalInjections) {
     changed |= myInjections.get(injection.getSupportId()).remove(injection);
   }
   for (BaseInjection injection : newInjections) {
     changed |= myInjections.get(injection.getSupportId()).add(injection);
   }
   if (changed) {
     configurationModified();
   }
   return changed;
 }
 private int importPlaces(final List<BaseInjection> injections) {
   final Map<String, Set<BaseInjection>> map =
       ContainerUtil.classify(
           injections.iterator(),
           new Convertor<BaseInjection, String>() {
             @Override
             public String convert(final BaseInjection o) {
               return o.getSupportId();
             }
           });
   final ArrayList<BaseInjection> originalInjections = new ArrayList<BaseInjection>();
   final ArrayList<BaseInjection> newInjections = new ArrayList<BaseInjection>();
   for (String supportId : InjectorUtils.getActiveInjectionSupportIds()) {
     final Set<BaseInjection> importingInjections = map.get(supportId);
     if (importingInjections == null) continue;
     importInjections(
         getInjections(supportId), importingInjections, originalInjections, newInjections);
   }
   if (!newInjections.isEmpty()) configurationModified();
   replaceInjections(newInjections, originalInjections, true);
   return newInjections.size();
 }