aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/ftbsc/lll/processor/containers/InjectorInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/ftbsc/lll/processor/containers/InjectorInfo.java')
-rw-r--r--src/main/java/ftbsc/lll/processor/containers/InjectorInfo.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/ftbsc/lll/processor/containers/InjectorInfo.java b/src/main/java/ftbsc/lll/processor/containers/InjectorInfo.java
new file mode 100644
index 0000000..d56d846
--- /dev/null
+++ b/src/main/java/ftbsc/lll/processor/containers/InjectorInfo.java
@@ -0,0 +1,46 @@
+package ftbsc.lll.processor.containers;
+
+import ftbsc.lll.processor.annotations.Injector;
+import ftbsc.lll.processor.annotations.Target;
+import ftbsc.lll.processor.ProcessorOptions;
+
+import javax.lang.model.element.ExecutableElement;
+
+/**
+ * Container for information about a class that is to be generated.
+ */
+public class InjectorInfo {
+ /**
+ * The {@link ExecutableElement} corresponding to the injector method.
+ */
+ public final ExecutableElement injector;
+
+ /**
+ * The {@link ExecutableElement} corresponding to the target method stub.
+ */
+ public final ExecutableElement targetStub;
+
+ /**
+ * The reason for the injection.
+ */
+ public final String reason;
+
+ /**
+ * The {@link MethodContainer} corresponding to the target method.
+ */
+ public final MethodContainer target;
+
+ /**
+ * Public constructor.
+ * @param injector the injector {@link ExecutableElement}
+ * @param targetStub the target {@link ExecutableElement}
+ * @param targetAnn the relevant {@link Target} annotation
+ * @param options the {@link ProcessorOptions} to be used
+ */
+ public InjectorInfo(ExecutableElement injector, ExecutableElement targetStub, Target targetAnn, ProcessorOptions options) {
+ this.injector = injector;
+ this.targetStub = targetStub;
+ this.reason = injector.getAnnotation(Injector.class).reason();
+ this.target = MethodContainer.from(targetStub, targetAnn, null, options);
+ }
+}