26
Un paseo por las transformaciones AST de Groovy

Un Paseo por las Transformaciones AST de Groovy

Embed Size (px)

Citation preview

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