package org.jboss.windup.decompiler.api; import java.nio.file.Path; /** * Contains the information needed to decompile a single class file. * * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ public class ClassDecompileRequest { private final Path rootDirectory; private final Path classFile; private final Path outputDirectory; /** * Create an instance with the given rootDirectory (eg, for a class named "com.foo.Example" in * "/path/to/com/foo/Example.class", this would be "/path/to") and the full path to the class file itself. * * The resulting decompiled file will be placed in outputDirectory. */ public ClassDecompileRequest(Path rootDirectory, Path classFile, Path outputDirectory) { this.rootDirectory = rootDirectory; this.classFile = classFile; this.outputDirectory = outputDirectory; } /** * Contains the root directory for this class file. */ public Path getRootDirectory() { return rootDirectory; } /** * Contains the full path to the file itself. */ public Path getClassFile() { return classFile; } /** * Contains the full path to the output directory (where the decompiled file will be placed). */ public Path getOutputDirectory() { return outputDirectory; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; ClassDecompileRequest that = (ClassDecompileRequest) o; if (classFile != null ? !classFile.equals(that.classFile) : that.classFile != null) return false; if (outputDirectory != null ? !outputDirectory.equals(that.outputDirectory) : that.outputDirectory != null) return false; if (rootDirectory != null ? !rootDirectory.equals(that.rootDirectory) : that.rootDirectory != null) return false; return true; } @Override public int hashCode() { int result = rootDirectory != null ? rootDirectory.hashCode() : 0; result = 31 * result + (classFile != null ? classFile.hashCode() : 0); result = 31 * result + (outputDirectory != null ? outputDirectory.hashCode() : 0); return result; } }