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

io.rouz.flo.processor.Binding Maven / Gradle / Ivy

There is a newer version: 0.0.5
Show newest version
package io.rouz.flo.processor;

import com.google.auto.value.AutoValue;
import java.util.List;
import javax.lang.model.element.ExecutableElement;
import javax.lang.model.element.Name;
import javax.lang.model.element.TypeElement;
import javax.lang.model.type.TypeMirror;

/**
 * TODO: document.
 */
@AutoValue
abstract class Binding {

  abstract ExecutableElement method();

  abstract TypeElement enclosingClass();

  abstract TypeMirror returnType();

  abstract Name name();

  abstract List arguments();

  @AutoValue
  static abstract class Argument {

    abstract Name name();

    abstract TypeMirror type();
  }

  static Binding create(
      ExecutableElement method,
      TypeElement enclosingClass,
      TypeMirror returnType,
      Name name,
      List arguments) {
    return new AutoValue_Binding(method, enclosingClass, returnType, name, arguments);
  }

  static Argument argument(Name name, TypeMirror type) {
    return new AutoValue_Binding_Argument(name, type);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy