Un Paseo por las Transformaciones AST de Groovy

26
Un paseo por las transformaciones AST de Groovy

Transcript of Un Paseo por las Transformaciones AST de Groovy

Un paseo por las transformaciones

AST de Groovy

www.canoo.com 2

¿Y quién es éste tío?

๏  Desarrollador desde el inicio (1995 y contando …)

๏  Creyente fiel del Código Abierto y Libre

๏  Miembro del equipo

๏  Líder del proyecto

๏  Actualmente trabajando con

www.canoo.com 3

¿Qué son las transformaciones de AST?

๏  Básicamente se definen como manipulación de código byte en tiempo de compilación

๏  Las transformaciones de AST permite metaprogramación a nivel del compilador

๏  Existen dos tipos de transformaciones en el lenguage Groovy: globales y locales

www.canoo.com

Disponibles en Groovy 1.7

www.canoo.com 5

@Delegate

www.canoo.com 6

@Singleton

www.canoo.com 7

@Immutable

www.canoo.com 8

@Category

www.canoo.com 9

@Mixin

www.canoo.com 10

@Grab

www.canoo.com 11

@Synchronized

www.canoo.com 12

@Lazy

www.canoo.com 13

@Newify

www.canoo.com 14

@Bindable (Vetoable)

www.canoo.com

Disponibles en Groovy 1.8

www.canoo.com 16

@Log (@Commons @Log4j @Slf4j)

www.canoo.com 17

@InheritConstructors

www.canoo.com 18

@ToString

www.canoo.com 19

@EqualsAndHashCode

www.canoo.com 20

@TupleConstructor

www.canoo.com 21

@Canonical

๏  Mezcla @ToString, @EqualsAndHashCode y @TupleConstructor en un solo punto

๏  Permite configuración puntual por cada elemento

www.canoo.com 22

@IndexedProperty

www.canoo.com 23

Y muchas otras mas …

๏  @AutoClone

๏  @AutoExternalize

๏  @ConditionalInterrupt @TimedInterrupt @ThreadInterrupt

๏  @PackageScope

๏  @WithReadLock @WithWriteLock

๏  @Field

www.canoo.com 24

Disponibles en otros proyectos

๏  . ‣ @Entity

๏  . ‣ @EventPublisher ‣ @Listener ‣ @Entity ‣ @Scaffold

๏  Modules ‣ @Scalify ‣ @Bytecode

๏  Groovy++ ‣ @Typed

Share-A-Canooie

http://people.canoo.com/share

Gracias!

twitter: @aalmiray