1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  package org.apache.maven.lifecycle.mapping;
20  
21  import java.util.ArrayList;
22  import java.util.Arrays;
23  import java.util.Collections;
24  import java.util.LinkedHashMap;
25  import java.util.List;
26  import java.util.Map;
27  import java.util.Optional;
28  import java.util.function.Function;
29  import java.util.stream.Collectors;
30  
31  import org.codehaus.plexus.util.StringUtils;
32  
33  
34  
35  
36  
37  
38  public class LifecyclePhase {
39  
40      private List<LifecycleMojo> mojos;
41  
42      public LifecyclePhase() {}
43  
44      public LifecyclePhase(String goals) {
45          set(goals);
46      }
47  
48      public List<LifecycleMojo> getMojos() {
49          return mojos;
50      }
51  
52      public void setMojos(List<LifecycleMojo> mojos) {
53          this.mojos = mojos;
54      }
55  
56      public void set(String goals) {
57          mojos = new ArrayList<>();
58  
59          if (goals != null && !goals.isEmpty()) {
60              String[] mojoGoals = StringUtils.split(goals, ",");
61              mojos = Arrays.stream(mojoGoals).map(fromGoalIntoLifecycleMojo).collect(Collectors.toList());
62          }
63      }
64  
65      private final Function<String, LifecycleMojo> fromGoalIntoLifecycleMojo = s -> {
66          LifecycleMojo lifecycleMojo = new LifecycleMojo();
67          lifecycleMojo.setGoal(s.trim());
68          return lifecycleMojo;
69      };
70  
71      @Override
72      public String toString() {
73          return Optional.ofNullable(getMojos()).orElse(Collections.emptyList()).stream()
74                  .map(LifecycleMojo::getGoal)
75                  .collect(Collectors.joining(","));
76      }
77  
78      @Deprecated
79      public static Map<String, String> toLegacyMap(Map<String, LifecyclePhase> lifecyclePhases) {
80          if (lifecyclePhases == null) {
81              return null;
82          }
83  
84          if (lifecyclePhases.isEmpty()) {
85              return Collections.emptyMap();
86          }
87  
88          Map<String, String> phases = new LinkedHashMap<>();
89          for (Map.Entry<String, LifecyclePhase> e : lifecyclePhases.entrySet()) {
90              phases.put(e.getKey(), e.getValue().toString());
91          }
92          return phases;
93      }
94  }