View Javadoc
1   package org.kuali.common.jute.project.maven;
2   
3   import static org.kuali.common.jute.base.Precondition.checkNotBlank;
4   
5   import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
6   
7   @JsonDeserialize(builder = ProjectCoordinates.Builder.class)
8   public final class ProjectCoordinates {
9   
10      private final String groupId;
11      private final String artifactId;
12      private final String version;
13  
14      private ProjectCoordinates(Builder builder) {
15          this.groupId = builder.groupId;
16          this.artifactId = builder.artifactId;
17          this.version = builder.version;
18      }
19  
20      public static Builder builder() {
21          return new Builder();
22      }
23  
24      public static class Builder implements org.apache.commons.lang3.builder.Builder<ProjectCoordinates> {
25  
26          private String groupId;
27          private String artifactId;
28          private String version;
29  
30          public Builder withGroupId(String groupId) {
31              this.groupId = groupId;
32              return this;
33          }
34  
35          public Builder withArtifactId(String artifactId) {
36              this.artifactId = artifactId;
37              return this;
38          }
39  
40          public Builder withVersion(String version) {
41              this.version = version;
42              return this;
43          }
44  
45          @Override
46          public ProjectCoordinates build() {
47              return validate(new ProjectCoordinates(this));
48          }
49  
50          private static ProjectCoordinates validate(ProjectCoordinates instance) {
51              checkNotBlank(instance.groupId, "groupId");
52              checkNotBlank(instance.artifactId, "artifactId");
53              checkNotBlank(instance.version, "version");
54              return instance;
55          }
56      }
57  
58      public String getGroupId() {
59          return groupId;
60      }
61  
62      public String getArtifactId() {
63          return artifactId;
64      }
65  
66      public String getVersion() {
67          return version;
68      }
69  
70  }