Exemplo n.º 1
0
  protected void updateFactoryDefinition(
      FactoryDefinition declaredDefinition, FactoryDefinition newDefinition) {
    // merge phases
    if (newDefinition.getPhaseFactories() != null && newDefinition.getPhaseFactories().size() > 0) {
      if (declaredDefinition.getPhaseFactories() == null) {
        declaredDefinition.setPhaseFactories(new HashMap<String, List<FactoryDefinition>>());
      }
      for (String phase : newDefinition.getPhaseFactories().keySet()) {
        List<FactoryDefinition> originPhaseFactories =
            declaredDefinition.getPhaseFactories().get(phase);
        List<FactoryDefinition> newPhaseFactories = newDefinition.getPhaseFactories().get(phase);

        if (originPhaseFactories == null) {
          declaredDefinition.getPhaseFactories().put(phase, newPhaseFactories);
        } else {
          originPhaseFactories.addAll(newPhaseFactories);
        }
      }
    }
  }