1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.internal.impl;
20
21 import static org.apache.maven.internal.impl.Utils.nonNull;
22
23 import javax.inject.Inject;
24 import javax.inject.Named;
25 import javax.inject.Singleton;
26 import org.apache.maven.api.Type;
27 import org.apache.maven.api.annotations.Nonnull;
28 import org.apache.maven.api.services.TypeRegistry;
29 import org.apache.maven.artifact.handler.ArtifactHandler;
30 import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
31
32 @Named
33 @Singleton
34 public class DefaultTypeRegistry implements TypeRegistry {
35
36 private final ArtifactHandlerManager manager;
37
38 @Inject
39 public DefaultTypeRegistry(ArtifactHandlerManager manager) {
40 this.manager = nonNull(manager, "artifactHandlerManager");
41 }
42
43 @Override
44 @Nonnull
45 public Type getType(String id) {
46
47 ArtifactHandler handler = manager.getArtifactHandler(nonNull(id, "id"));
48 String extension = handler.getExtension();
49 String classifier = handler.getClassifier();
50 boolean includeDependencies = handler.isIncludesDependencies();
51 boolean addedToClasspath = handler.isAddedToClasspath();
52 return new Type() {
53 @Override
54 public String getName() {
55 return id;
56 }
57
58 @Override
59 public String getExtension() {
60 return extension;
61 }
62
63 @Override
64 public String getClassifier() {
65 return classifier;
66 }
67
68 @Override
69 public boolean isIncludesDependencies() {
70 return includeDependencies;
71 }
72
73 @Override
74 public boolean isAddedToClasspath() {
75 return addedToClasspath;
76 }
77 };
78 }
79 }