1 package org.apache.maven.api.services;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.api.ArtifactCoordinate;
23 import org.apache.maven.api.DependencyCoordinate;
24 import org.apache.maven.api.Service;
25 import org.apache.maven.api.Session;
26 import org.apache.maven.api.annotations.Experimental;
27 import org.apache.maven.api.annotations.Nonnull;
28 import org.apache.maven.api.model.Dependency;
29 import org.apache.maven.api.model.Plugin;
30 import org.apache.maven.api.model.ReportPlugin;
31
32
33
34
35
36 @Experimental
37 public interface DependencyCoordinateFactory extends Service
38 {
39
40
41
42
43
44
45
46
47
48
49 @Nonnull
50 DependencyCoordinate create( @Nonnull DependencyCoordinateFactoryRequest request );
51
52 @Nonnull
53 default DependencyCoordinate create( @Nonnull Session session, @Nonnull ArtifactCoordinate coordinate )
54 {
55 return create( DependencyCoordinateFactoryRequest.build( session, coordinate ) );
56 }
57
58 @Nonnull
59 default DependencyCoordinate create( @Nonnull Session session, @Nonnull org.apache.maven.api.Dependency dependency )
60 {
61 return create( DependencyCoordinateFactoryRequest.build( session, dependency ) );
62 }
63
64 @Nonnull
65 default DependencyCoordinate create( @Nonnull Session session, Dependency dependency )
66 {
67 return create( DependencyCoordinateFactoryRequest.build( session,
68 dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(),
69 dependency.getClassifier(), null, dependency.getType() ) );
70 }
71
72 @Nonnull
73 default DependencyCoordinate create( @Nonnull Session session, Plugin plugin )
74 {
75
76 return create( DependencyCoordinateFactoryRequest.build( session,
77 plugin.getGroupId(), plugin.getArtifactId(), plugin.getVersion(),
78 null, null, "maven-plugin" ) );
79 }
80
81 @Nonnull
82 default DependencyCoordinate create( @Nonnull Session session, ReportPlugin reportPlugin )
83 {
84
85 return create( DependencyCoordinateFactoryRequest.build( session,
86 reportPlugin.getGroupId(), reportPlugin.getArtifactId(), reportPlugin.getVersion(),
87 null, null, "maven-plugin" ) );
88 }
89 }