
org.openl.rules.project.dependencies.ProjectExternalDependenciesHelper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.openl.rules.project Show documentation
Show all versions of org.openl.rules.project Show documentation
Classes and utilities to work with OpenL Rules Project
package org.openl.rules.project.dependencies;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.openl.engine.OpenLSourceManager;
import org.openl.rules.project.model.Module;
import org.openl.rules.project.model.ProjectDependencyDescriptor;
import org.openl.rules.project.model.ProjectDescriptor;
import org.openl.syntax.code.Dependency;
import org.openl.syntax.code.DependencyType;
import org.openl.syntax.code.IDependency;
import org.openl.syntax.impl.IdentifierNode;
public final class ProjectExternalDependenciesHelper {
private ProjectExternalDependenciesHelper() {
}
public static String buildDependencyNameForProjectName(String projectName) {
return "VIRTUAL_MODULE(" + projectName + ")";
}
public static boolean isProject(String dependencyName) {
return dependencyName.indexOf("VIRTUAL_MODULE(") == 0 && dependencyName.lastIndexOf(')') == dependencyName.length() - 1;
}
public static String getProjectName(String dependencyName) {
if (isProject(dependencyName)){
return dependencyName.substring("VIRTUAL_MODULE(".length(), dependencyName.length() - 1);
}
return null;
}
public static Map getExternalParamsWithProjectDependencies(Map externalParams,
Collection modules) {
Map parameters = new HashMap();
if (externalParams != null) {
parameters.putAll(externalParams);
}
if (modules == null) {
parameters.put(OpenLSourceManager.EXTERNAL_DEPENDENCIES_KEY, null);
return parameters;
}
Set virtualModules = new HashSet();
for (Module module : modules) {
ProjectDescriptor projectDescriptor = module.getProject();
if (projectDescriptor.getDependencies() != null) {
for (ProjectDependencyDescriptor dependency : projectDescriptor.getDependencies()) {
if (dependency.isAutoIncluded()) {
virtualModules.add(buildDependencyNameForProjectName(dependency.getName()));
}
}
}
}
List externalDependencies = new ArrayList();
for (String virualModule : virtualModules) {
externalDependencies.add(new Dependency(DependencyType.MODULE, new IdentifierNode(null,
null,
virualModule,
null)));
}
/*
* Object ed = parameters.get("external-dependencies"); if (ed != null)
* {
*
* @SuppressWarnings("unchecked") List dependencies =
* (List) ed; externalDependencies.addAll(dependencies); }
*/
// if (!externalDependencies.isEmpty()) {
parameters.put(OpenLSourceManager.EXTERNAL_DEPENDENCIES_KEY, externalDependencies);
// }
return parameters;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy