View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.model.building;
20  
21  import java.util.List;
22  
23  import org.apache.maven.model.Model;
24  import org.apache.maven.model.Profile;
25  
26  /**
27   * Holds a model along with some auxiliary information. This internal utility class assists the model builder during POM
28   * processing by providing a means to transport information that cannot be (easily) extracted from the model itself.
29   *
30   * @deprecated use {@code org.apache.maven.api.services.ModelBuilder} instead
31   */
32  @Deprecated(since = "4.0.0")
33  class ModelData {
34      private final ModelSource source;
35  
36      private Model model;
37  
38      private Model rawModel;
39  
40      private List<Profile> activeProfiles;
41  
42      private String groupId;
43  
44      private String artifactId;
45  
46      private String version;
47  
48      /**
49       * Creates a new container for the specified model.
50       *
51       * @param model The model to wrap, may be {@code null}.
52       */
53      ModelData(ModelSource source, Model model) {
54          this.source = source;
55          this.model = model;
56      }
57  
58      /**
59       * Creates a new container for the specified model.
60       *
61       * @param model The model to wrap, may be {@code null}.
62       * @param groupId The effective group identifier of the model, may be {@code null}.
63       * @param artifactId The effective artifact identifier of the model, may be {@code null}.
64       * @param version The effective version of the model, may be {@code null}.
65       */
66      ModelData(ModelSource source, Model model, String groupId, String artifactId, String version) {
67          this.source = source;
68          this.model = model;
69          setGroupId(groupId);
70          setArtifactId(artifactId);
71          setVersion(version);
72      }
73  
74      public ModelSource getSource() {
75          return source;
76      }
77  
78      /**
79       * Gets the model being wrapped.
80       *
81       * @return The model or {@code null} if not set.
82       */
83      public Model getModel() {
84          return model;
85      }
86  
87      /**
88       * Sets the model being wrapped.
89       *
90       * @param model The model, may be {@code null}.
91       */
92      public void setModel(Model model) {
93          this.model = model;
94      }
95  
96      /**
97       * Gets the raw model being wrapped.
98       *
99       * @return The raw model or {@code null} if not set.
100      */
101     public Model getRawModel() {
102         return rawModel;
103     }
104 
105     /**
106      * Sets the raw model being wrapped.
107      *
108      * @param rawModel The raw model, may be {@code null}.
109      */
110     public void setRawModel(Model rawModel) {
111         this.rawModel = rawModel;
112     }
113 
114     /**
115      * Gets the active profiles from the model.
116      *
117      * @return The active profiles or {@code null} if not set.
118      */
119     public List<Profile> getActiveProfiles() {
120         return activeProfiles;
121     }
122 
123     /**
124      * Sets the active profiles from the model.
125      *
126      * @param activeProfiles The active profiles, may be {@code null}.
127      */
128     public void setActiveProfiles(List<Profile> activeProfiles) {
129         this.activeProfiles = activeProfiles;
130     }
131 
132     /**
133      * Gets the effective group identifier of the model.
134      *
135      * @return The effective group identifier of the model or an empty string if unknown, never {@code null}.
136      */
137     public String getGroupId() {
138         return (groupId != null) ? groupId : "";
139     }
140 
141     /**
142      * Sets the effective group identifier of the model.
143      *
144      * @param groupId The effective group identifier of the model, may be {@code null}.
145      */
146     public void setGroupId(String groupId) {
147         this.groupId = groupId;
148     }
149 
150     /**
151      * Gets the effective artifact identifier of the model.
152      *
153      * @return The effective artifact identifier of the model or an empty string if unknown, never {@code null}.
154      */
155     public String getArtifactId() {
156         return (artifactId != null) ? artifactId : "";
157     }
158 
159     /**
160      * Sets the effective artifact identifier of the model.
161      *
162      * @param artifactId The effective artifact identifier of the model, may be {@code null}.
163      */
164     public void setArtifactId(String artifactId) {
165         this.artifactId = artifactId;
166     }
167 
168     /**
169      * Gets the effective version of the model.
170      *
171      * @return The effective version of the model or an empty string if unknown, never {@code null}.
172      */
173     public String getVersion() {
174         return (version != null) ? version : "";
175     }
176 
177     /**
178      * Sets the effective version of the model.
179      *
180      * @param version The effective version of the model, may be {@code null}.
181      */
182     public void setVersion(String version) {
183         this.version = version;
184     }
185 
186     /**
187      * Gets the effective identifier of the model in the form {@code <groupId>:<artifactId>:<version>}.
188      *
189      * @return The effective identifier of the model, never {@code null}.
190      */
191     public String getId() {
192         StringBuilder buffer = new StringBuilder(128);
193 
194         buffer.append(getGroupId())
195                 .append(':')
196                 .append(getArtifactId())
197                 .append(':')
198                 .append(getVersion());
199 
200         return buffer.toString();
201     }
202 
203     @Override
204     public String toString() {
205         return String.valueOf(model);
206     }
207 }