diff options
Diffstat (limited to 'java/dagger/spi/model/DaggerElement.java')
-rw-r--r-- | java/dagger/spi/model/DaggerElement.java | 48 |
1 files changed, 13 insertions, 35 deletions
diff --git a/java/dagger/spi/model/DaggerElement.java b/java/dagger/spi/model/DaggerElement.java index 0f6a2cf35..0c0c53ebf 100644 --- a/java/dagger/spi/model/DaggerElement.java +++ b/java/dagger/spi/model/DaggerElement.java @@ -16,49 +16,27 @@ package dagger.spi.model; -import com.google.auto.value.AutoValue; import com.google.devtools.ksp.symbol.KSAnnotated; -import javax.annotation.Nullable; +import com.google.errorprone.annotations.DoNotMock; import javax.lang.model.element.Element; /** Wrapper type for an element. */ -@AutoValue +@DoNotMock("Only use real implementations created by Dagger") public abstract class DaggerElement { - public static DaggerElement fromJavac(Element element) { - return new AutoValue_DaggerElement(element, null); - } - - public static DaggerElement fromKsp(KSAnnotated ksp) { - return new AutoValue_DaggerElement(null, ksp); - } - /** - * Java representation for the element, returns {@code null} not using java annotation processor. + * Returns the Javac representation for the element. + * + * @throws IllegalStateException if the current backend isn't Javac. */ - @Nullable - public abstract Element java(); + public abstract Element javac(); - /** KSP declaration for the element, returns {@code null} not using KSP. */ - @Nullable + /** + * Returns the KSP representation for the element. + * + * @throws IllegalStateException if the current backend isn't KSP. + */ public abstract KSAnnotated ksp(); - public DaggerProcessingEnv.Backend backend() { - if (java() != null) { - return DaggerProcessingEnv.Backend.JAVAC; - } else if (ksp() != null) { - return DaggerProcessingEnv.Backend.KSP; - } - throw new AssertionError("Unexpected backend"); - } - - @Override - public final String toString() { - switch (backend()) { - case JAVAC: - return java().toString(); - case KSP: - return ksp().toString(); - } - throw new IllegalStateException(String.format("Backend %s not supported yet.", backend())); - } + /** Returns the backend used in this compilation. */ + public abstract DaggerProcessingEnv.Backend backend(); } |