package org.apache.maven.shared.runtime; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import java.io.Serializable; /** * Encapsulates the unique identifier for a Maven project. * <p> * More specifically, this object holds a project's group id, artifact id and version. This information is typically * generated by Maven and stored within the file * {@code META-INF/maven/<groupId>/<artifactId>/pom.properties} in the packaged project. * </p> * * @author <a href="mailto:markh@apache.org">Mark Hobson</a> * @version $Id$ */ public class MavenProjectProperties implements Serializable { // constants -------------------------------------------------------------- /** * The serial version ID. */ private static final long serialVersionUID = 5233832086526764232L; // fields ----------------------------------------------------------------- /** * The Maven project group id. */ private final String groupId; /** * The Maven project artifact id. */ private final String artifactId; /** * The Maven project version. */ private final String version; // constructors ----------------------------------------------------------- /** * Creates a new {@code MavenProjectProperties} with the specified Maven project group id, artifact id and version * properties. * * @param groupId * the group id, not null * @param artifactId * the artifact id, not null * @param version * the version, not null */ public MavenProjectProperties( String groupId, String artifactId, String version ) { if ( groupId == null ) { throw new IllegalArgumentException( "groupId cannot be null" ); } if ( artifactId == null ) { throw new IllegalArgumentException( "artifactId cannot be null" ); } if ( version == null ) { throw new IllegalArgumentException( "version cannot be null" ); } this.groupId = groupId; this.artifactId = artifactId; this.version = version; } // public methods --------------------------------------------------------- /** * Gets the group id for these Maven project properties. * * @return the group id */ public String getGroupId() { return groupId; } /** * Gets the artifact id for these Maven project properties. * * @return the artifact id */ public String getArtifactId() { return artifactId; } /** * Gets the version for these Maven project properties. * * @return the version */ public String getVersion() { return version; } // Object methods --------------------------------------------------------- /** * {@inheritDoc} */ @Override public int hashCode() { int hashCode = 17; hashCode = ( hashCode * 37 ) + groupId.hashCode(); hashCode = ( hashCode * 37 ) + artifactId.hashCode(); hashCode = ( hashCode * 37 ) + version.hashCode(); return hashCode; } /** * {@inheritDoc} */ @Override public boolean equals( Object object ) { if ( object == this ) { return true; } if ( !( object instanceof MavenProjectProperties ) ) { return false; } MavenProjectProperties info = (MavenProjectProperties) object; return groupId.equals( info.getGroupId() ) && artifactId.equals( info.getArtifactId() ) && version.equals( info.getVersion() ); } /** * {@inheritDoc} */ @Override public String toString() { StringBuffer buffer = new StringBuffer(); buffer.append( getClass().getName() ); buffer.append( "[" ); buffer.append( "groupId=" ).append( groupId ).append( "," ); buffer.append( "artifactId=" ).append( artifactId ).append( "," ); buffer.append( "version=" ).append( version ); buffer.append( "]" ); return buffer.toString(); } }