package org.codefx.mvn.jdeps.tool.jdeps; import java.nio.file.Path; import java.util.Optional; /** * Tries all available searches to locate JDeps. */ public class ComposedJDepsSearch implements JDepsSearch { private final JavaHomeSystemPropertyJDepsSearch systemPropertySearch; private final JavaHomeEnvironmentVariableJDepsSearch environmentVariableSearch; /** * Creates a new search. */ public ComposedJDepsSearch() { systemPropertySearch = new JavaHomeSystemPropertyJDepsSearch(); environmentVariableSearch = new JavaHomeEnvironmentVariableJDepsSearch(); } @Override public Optional<Path> search() { Optional<Path> viaSystemProperty = systemPropertySearch.search(); if (viaSystemProperty.isPresent()) return viaSystemProperty; Optional<Path> viaEnvironmentVariable = environmentVariableSearch.search(); if (viaEnvironmentVariable.isPresent()) return viaEnvironmentVariable; return Optional.empty(); } }