sangria-graphql/sangria

Support Java enumerations

Offen

#262 geöffnet am 07.07.2017

 (2 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Scala (219 Forks)batch import
derive-macroshelp wantedimprovement

Repository-Metriken

Stars
 (1.961 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 8T 15h) (4 gemergte PRs in 30 T)

Beschreibung

It would be cool if they were supported out of the box. Otherwise you could easily add something like this

  /**
    * To be used similar to sangria derivation macros (though this is not a macro), e.g.
    *
    * // Java
    * public enum JavaEnum { A, B }
    *
    * // Scala
    * val GJavaEnum = deriveEnumTypeFromJavaEnumeration[JavaEnum]()
    */
  def deriveEnumTypeFromJavaEnumeration[A](name: String = null)(implicit ev: ClassTag[A]): EnumType[A] = {
    val javaEnumClass = ev.runtimeClass.asInstanceOf[Class[A]]
    EnumType(if(name == null) javaEnumClass.getSimpleName else name,
      values = javaEnumClass.getEnumConstants.map(value => EnumValue(value.toString, value = value)).toList)
  }

Contributor Guide