/*
* Copyright 2016 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.MapsTo;
import org.jboss.errai.common.client.api.annotations.Portable;
import org.uberfire.commons.validation.PortablePreconditions;
@Portable
public class MavenRepositoryMetadata implements Serializable {
private String id;
private String url;
private MavenRepositorySource source;
public MavenRepositoryMetadata() {
//Required for java.io.Serializable
}
public MavenRepositoryMetadata( final @MapsTo("id") String id,
final @MapsTo("url") String url,
final @MapsTo("source") MavenRepositorySource source ) {
this.id = PortablePreconditions.checkNotNull( "id",
id );
this.url = PortablePreconditions.checkNotNull( "url",
url );
this.source = PortablePreconditions.checkNotNull( "source",
source );
}
public String getId() {
return id;
}
public MavenRepositorySource getSource() {
return source;
}
public String getUrl() {
return url;
}
@Override
public boolean equals( Object o ) {
if ( this == o ) {
return true;
}
if ( !( o instanceof MavenRepositoryMetadata ) ) {
return false;
}
MavenRepositoryMetadata that = (MavenRepositoryMetadata) o;
if ( !id.equals( that.id ) ) {
return false;
}
if ( !url.equals( that.url ) ) {
return false;
}
return source == that.source;
}
@Override
public int hashCode() {
int result = id.hashCode();
result = ~~result;
result = 31 * result + url.hashCode();
result = ~~result;
result = 31 * result + source.hashCode();
result = ~~result;
return result;
}
}