/*
* Copyright 2011 Red Hat, Inc. and/or its affiliates.
*
* Licensed 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.
*/
package org.guvnor.common.services.project.model;
import java.io.Serializable;
import org.jboss.errai.common.client.api.annotations.Portable;
@Portable
public class GAV implements Serializable {
private String groupId;
private String artifactId;
private String version;
public GAV() {
this( null, null, null );
}
public GAV( final String gavString ) {
String[] split = gavString.split( ":" );
this.groupId = split[ 0 ];
this.artifactId = split[ 1 ];
this.version = split[ 2 ];
}
public GAV( final String groupId,
final String artifactId,
final String version ) {
this.groupId = groupId;
this.artifactId = artifactId;
this.version = version;
}
public String getGroupId() {
return groupId;
}
public String getArtifactId() {
return artifactId;
}
public String getVersion() {
return version;
}
public void setGroupId( String groupId ) {
this.groupId = groupId;
}
public void setArtifactId( String artifactId ) {
this.artifactId = artifactId;
}
public void setVersion( String version ) {
this.version = version;
}
@Override
public String toString() {
return groupId + ":" + artifactId + ":" + version;
}
public boolean isGAVEqual( Object o ) {
return equals( o );
}
public boolean isSnapshot() {
return this.version.endsWith( "-SNAPSHOT" );
}
@Override
public boolean equals( Object o ) {
if ( this == o ) {
return true;
}
if ( !( o instanceof GAV ) ) {
return false;
}
GAV gav = (GAV) o;
if ( artifactId != null ? !artifactId.equals( gav.artifactId ) : gav.artifactId != null ) {
return false;
}
if ( groupId != null ? !groupId.equals( gav.groupId ) : gav.groupId != null ) {
return false;
}
if ( version != null ? !version.equals( gav.version ) : gav.version != null ) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = groupId != null ? groupId.hashCode() : 0;
result = ~~result;
result = 31 * result + ( artifactId != null ? artifactId.hashCode() : 0 );
result = ~~result;
result = 31 * result + ( version != null ? version.hashCode() : 0 );
result = ~~result;
return result;
}
}