All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.arquillian.smart.testing.strategies.affected.JavaElement Maven / Gradle / Ivy

package org.arquillian.smart.testing.strategies.affected;

import java.io.File;
import org.arquillian.smart.testing.strategies.affected.ast.JavaClass;

public class JavaElement implements Element {

    private final String className;
    private final File classFile;

    /**
     * @param className of the java element.
     * @param classFile location of the java element. Can be null.
     */
    private JavaElement(String className, File classFile) {
        this.className = className;
        this.classFile = classFile;
    }

    JavaElement(String className) {
        this(className, null);
    }

    JavaElement(JavaClass javaClass) {
        this(javaClass.getName(), javaClass.getClassFile());
    }

    public File getClassFile() {
        return classFile;
    }

    public String getClassName() {
        return className;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        final JavaElement that = (JavaElement) o;

        return className != null ? className.equals(that.className) : that.className == null;
    }

    @Override
    public int hashCode() {
        return className != null ? className.hashCode() : 0;
    }

    @Override
    public String toString() {
        return "JavaElement{" + "className='" + className + '\'' + ", classFile=" + classFile + '}';
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy