1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.lifecycle.providers.lifecycle;
20
21 import javax.inject.Provider;
22
23 import java.util.Arrays;
24 import java.util.Collections;
25 import java.util.HashMap;
26 import java.util.LinkedHashMap;
27
28 import org.apache.maven.lifecycle.Lifecycle;
29 import org.apache.maven.lifecycle.mapping.LifecyclePhase;
30
31
32
33
34
35
36 public abstract class AbstractLifecycleProvider implements Provider<Lifecycle> {
37 private final Lifecycle lifecycle;
38
39 protected AbstractLifecycleProvider(String id, String[] phases, String[] pluginBindings) {
40 HashMap<String, LifecyclePhase> defaultBindings = null;
41 if (pluginBindings != null) {
42 final int len = pluginBindings.length;
43 if (len % 2 != 0) {
44 throw new IllegalArgumentException("Plugin bindings must have even count of elements");
45 }
46 defaultBindings = new LinkedHashMap<>(len / 2);
47 for (int i = 0; i < len; i += 2) {
48 defaultBindings.put(pluginBindings[i], new LifecyclePhase(pluginBindings[i + 1]));
49 }
50 }
51
52 this.lifecycle = new Lifecycle(
53 id,
54 Collections.unmodifiableList(Arrays.asList(phases)),
55 defaultBindings == null ? null : Collections.unmodifiableMap(defaultBindings));
56 }
57
58 @Override
59 public Lifecycle get() {
60 return lifecycle;
61 }
62 }