/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.maven.data;
import org.eclipse.che.maven.util.JdomUtil;
import org.jdom.Element;
import java.io.Serializable;
import java.util.List;
import java.util.Objects;
/**
* Data class for org.apache.maven.model.Plugin
*
* @author Evgen Vidolob
*/
public class MavenPlugin implements Serializable {
private static final long serialVersionUID = 1L;
private final String groupId;
private final String artifactId;
private final String version;
private final boolean isDefault;
private final Element configuration;
private final List<MavenPluginExecution> executions;
private final List<MavenKey> dependencies;
public MavenPlugin(String groupId,
String artifactId,
String version,
boolean isDefault,
Element configuration,
List<MavenPluginExecution> executions,
List<MavenKey> dependencies) {
this.groupId = groupId;
this.artifactId = artifactId;
this.version = version;
this.isDefault = isDefault;
this.configuration = configuration;
this.executions = executions;
this.dependencies = dependencies;
}
public String getGroupId() {
return groupId;
}
public String getArtifactId() {
return artifactId;
}
public String getVersion() {
return version;
}
public boolean isDefault() {
return isDefault;
}
public Element getConfiguration() {
return configuration;
}
public List<MavenPluginExecution> getExecutions() {
return executions;
}
public List<MavenKey> getDependencies() {
return dependencies;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MavenPlugin that = (MavenPlugin)o;
return isDefault == that.isDefault &&
Objects.equals(groupId, that.groupId) &&
Objects.equals(artifactId, that.artifactId) &&
Objects.equals(version, that.version) &&
JdomUtil.isElementEquals(configuration, that.configuration) &&
Objects.equals(executions, that.executions) &&
Objects.equals(dependencies, that.dependencies);
}
@Override
public int hashCode() {
return 31 * Objects.hash(groupId, artifactId, version, isDefault, executions, dependencies) +
(configuration != null ? JdomUtil.getElementHash(configuration) : 0);
}
public Element getGoalConfiguration(String goal) {
for (MavenPluginExecution execution : executions) {
if (execution.getGoals().contains(goal)) {
return execution.getConfiguration();
}
}
return null;
}
}