/*************************************************************************************
* Copyright (c) 2014 Red Hat, Inc. and others.
* 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:
* JBoss by Red Hat - Initial implementation.
************************************************************************************/
package org.jboss.tools.arquillian.ui.internal.refactoring;
import static org.eclipse.m2e.core.ui.internal.editing.PomEdits.getChild;
import static org.eclipse.m2e.core.ui.internal.editing.PomHelper.addOrUpdateDependency;
import java.util.List;
import org.apache.maven.model.Dependency;
import org.apache.maven.project.MavenProject;
import org.eclipse.m2e.core.ui.internal.editing.PomEdits;
import org.eclipse.m2e.core.ui.internal.editing.PomEdits.Operation;
import org.jboss.tools.arquillian.core.internal.util.ArquillianUtility;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
*
* @author snjeza
*
*/
public class AddDependencies implements Operation {
private List<Dependency> dependencies;
private MavenProject mavenProject;
public AddDependencies(List<Dependency> dependencies, MavenProject mavenProject) {
this.dependencies = dependencies;
this.mavenProject = mavenProject;
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.m2e.core.ui.internal.editing.PomEdits.Operation#process
* (org.w3c.dom.Document)
*/
public void process(Document document) {
if (dependencies == null || dependencies.size() <= 0) {
return;
}
Element root = document.getDocumentElement();
Element dependenciesEl = getChild(root, PomEdits.DEPENDENCIES);
for (Dependency dependency:dependencies) {
String version = ArquillianUtility.getDependencyVersion(mavenProject, dependency.getGroupId(), dependency.getArtifactId());
if (version == null) {
addOrUpdateDependency(dependenciesEl,
dependency.getGroupId(), dependency.getArtifactId(),
dependency.getVersion(), dependency.getType(),
dependency.getScope(), dependency.getClassifier());
}
}
}
}