/* * Copyright 2012 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.kie.workbench.common.services.shared.kmodule; import org.guvnor.common.services.project.model.POM; import org.jboss.errai.common.client.api.annotations.Portable; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @Portable public class KModuleModel implements Iterable<KBaseModel> { private final Map<String, KBaseModel> kBases = new HashMap<String, KBaseModel>(); private String kBasesPath; private String kModulePath; private POM groupArtifactVersion; @Override public Iterator<KBaseModel> iterator() { return kBases.values().iterator(); } public void add(KBaseModel kBase) { kBases.put(kBase.getName(), kBase); } public KBaseModel get(String name) { return kBases.get(name); } public Map<String, KBaseModel> getKBases() { return kBases; } public void remove(String fullName) { kBases.remove(fullName); } public String getKBasesPath() { return kBasesPath; } public String getKModulePath() { return kModulePath; } public POM getGroupArtifactVersion() { return groupArtifactVersion; } public void setKBasesPath(String kBasesPath) { this.kBasesPath = kBasesPath; } public void setKModulePath(String kModulePath) { this.kModulePath = kModulePath; } public void setGroupArtifactVersion(POM groupArtifactVersion) { this.groupArtifactVersion = groupArtifactVersion; } @Override public boolean equals( Object o ) { if ( this == o ) { return true; } if ( o == null || getClass() != o.getClass() ) { return false; } KModuleModel that = ( KModuleModel ) o; if ( groupArtifactVersion != null ? !groupArtifactVersion.equals( that.groupArtifactVersion ) : that.groupArtifactVersion != null ) { return false; } if ( kBases != null ? !kBases.equals( that.kBases ) : that.kBases != null ) { return false; } if ( kBasesPath != null ? !kBasesPath.equals( that.kBasesPath ) : that.kBasesPath != null ) { return false; } if ( kModulePath != null ? !kModulePath.equals( that.kModulePath ) : that.kModulePath != null ) { return false; } return true; } @Override public int hashCode() { int result = kBases != null ? kBases.hashCode() : 0; result = ~~result; result = 31 * result + ( kBasesPath != null ? kBasesPath.hashCode() : 0 ); result = ~~result; result = 31 * result + ( kModulePath != null ? kModulePath.hashCode() : 0 ); result = ~~result; result = 31 * result + ( groupArtifactVersion != null ? groupArtifactVersion.hashCode() : 0 ); result = ~~result; return result; } }