sangria-graphql/sangria

Support Java enumerations

Ouverte

#262 ouverte le 7 juil. 2017

 (2 commentaires) (0 réaction) (0 personne assignée)Scala (219 forks)batch import
derive-macroshelp wantedimprovement

Métriques du dépôt

Stars
 (1 961 étoiles)
Métriques de merge PR
 (Merge moyen 8j 15h) (4 PRs mergées en 30 j)

Description

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)
  }

Guide contributeur