package org.jboss.windup.rules.apps.java; import java.nio.file.Path; import java.util.HashSet; import java.util.Set; import org.jboss.windup.config.metadata.TechnologyMetadata; import org.jboss.windup.config.metadata.TechnologyReference; /** * Contains metadata about a particular technology. This can include things like additional classpath details * that are useful for analyzing the contents of Java source code. * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ public class JavaTechnologyMetadata extends TechnologyMetadata { private final Set<Path> additionalClasspaths = new HashSet<>(); /** * Create a new instance for the given {@link TechnologyReference}. */ public JavaTechnologyMetadata(TechnologyReference technology) { super(technology); } /** * Adds the provided path to the analysis library path. */ public void addAdditionalClasspath(Path classpath) { additionalClasspaths.add(classpath); } /** * Gets classes that should be used for determining class bindings during Java analysis. */ public Set<Path> getAdditionalClasspaths() { return additionalClasspaths; } @Override public boolean handles(TechnologyReference technology) { return super.getTechnology().matches(technology); } }