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