Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Programming Groovy 2
Table of Contents
What readers are saying about Programming Groovy 2
Foreword to the Second Edition
Introduction
What’s Groovy?
Why Dynamic Languages?
Why Groovy?
What’s in This Book?
Changes Since This Book’s First Edition
Who Is This Book For?
Online Resources
Acknowledgments
Part 1: Beginning Groovy
Chapter 1: Getting Started
1.1 Installing Groovy
1.2 Installing and Managing Groovy Versions
1.3 Test-Drive Using groovysh
1.4 Using groovyConsole
1.5 Running Groovy on the Command Line
1.6 Using an IDE
Chapter 2: Groovy for Java Eyes
2.1 From Java to Groovy
2.2 JavaBeans
2.3 Flexible Initialization and Named Arguments
2.4 Optional Parameters
2.5 Using Multiple Assignments
2.6 Implementing Interfaces
2.7 Groovy Boolean Evaluation
2.8 Operator Overloading
2.9 Support of Java 5 Language Features
2.10 Using Groovy Code-Generation Transformations
2.11 Gotchas
Chapter 3: Dynamic Typing
3.1 Typing in Java
3.2 Dynamic Typing
3.3 Dynamic Typing != Weak Typing
3.4 Design by Capability
3.5 Optional Typing
3.6 Multimethods
3.7 Dynamic: To Be or Not to Be?
3.8 Switching Off Dynamic Typing
Chapter 4: Using Closures
4.1 The Convenience of Closures
4.2 Programming with Closures
4.3 Ways to Use Closures
4.4 Passing Parameters to Closures
4.5 Using Closures for Resource Cleanup
4.6 Closures and Coroutines
4.7 Curried Closure
4.8 Dynamic Closures
4.9 Closure Delegation
4.10 Programming with Tail Recursion
4.11 Improving Performance Using Memoization
Chapter 5: Working with Strings
5.1 Literals and Expressions
5.2 GString Lazy-Evaluation Problem
5.3 Multiline Strings
5.4 String Convenience Methods
5.5 Regular Expressions
Chapter 6: Working with Collections
6.1 Using List
6.2 Iterating Over an ArrayList
6.3 Using Finder Methods
6.4 Other Convenience Methods on List s
6.5 Using the Map Class
6.6 Iterating Over Map
6.7 Other Convenience Methods on Map s
Part 2: Using Groovy
Chapter 7: Exploring the GDK
7.1 Using Object Extensions
7.2 Other Extensions
7.3 Custom Methods Using the Extension Modules
Chapter 8: Working with XML
8.1 Parsing XML
8.2 Creating XML
Chapter 9: Working with Databases
9.1 Setting Up the Database
9.2 Connecting to a Database
9.3 Database Select
9.4 Transforming Data to XML
9.5 Using DataSet
9.6 Inserting and Updating
9.7 Accessing Microsoft Excel
Chapter 10: Working with Scripts and Classes
10.1 The Melting Pot of Java and Groovy
10.2 Running Groovy
10.3 Using Groovy Classes from Groovy
10.4 Intermixing Groovy and Java with Joint Compilation
10.5 Creating and Passing Groovy Closures from Java
10.6 Calling Groovy Dynamic Methods from Java
10.7 Using Java Classes from Groovy
10.8 Using Groovy Scripts from Groovy
10.9 Using Groovy Scripts from Java
Part 3: MOPping Groovy
Chapter 11: Exploring Metaobject Protocol (MOP)
11.1 Groovy Object
11.2 Querying Methods and Properties
11.3 Dynamically Accessing Objects
Chapter 12: Intercepting Methods Using MOP
12.1 Intercepting Methods Using GroovyInterceptable
12.2 Intercepting Methods Using MetaClass
Chapter 13: MOP Method Injection
13.1 Injecting Methods Using Categories
13.2 Injecting Methods Using ExpandoMetaClass
13.3 Injecting Methods into Specific Instances
13.4 Injecting Methods Using Mixins
13.5 Decorating Classes with Multiple Mixins
Chapter 14: MOP Method Synthesis
14.1 Method Synthesis Using methodMissing
14.2 Method Synthesis Using ExpandoMetaClass
14.3 Synthesizing Methods for Specific Instances
Chapter 15: MOPping Up
15.1 Creating Dynamic Classes with Expando
15.2 Method Delegation: Putting It All Together
15.3 Review of MOP Techniques
Chapter 16: Applying Compile-Time Metaprogramming
16.1 Analyzing Code at Compile Time
16.2 Intercepting Method Calls Using AST Transformations
16.3 Injecting Methods Using AST Transformations
Part 4: Using Metaprogramming
Chapter 17: Groovy Builders
17.1 Building XML
17.2 Building JSON
17.3 Building Swing
17.4 Custom Builder Using Metaprogramming
17.5 Using BuilderSupport
17.6 Using FactoryBuilderSupport
Chapter 18: Unit Testing and Mocking
18.1 Code in This Book and Automated Unit Tests
18.2 Unit Testing Java and Groovy Code
18.3 Testing for Exceptions
18.4 Mocking
18.5 Mocking by Overriding
18.6 Mocking Using Categories
18.7 Mocking Using ExpandoMetaClass
18.8 Mocking Using Expando
18.9 Mocking Using Map
18.10 Mocking Using the Groovy Mock Library
Chapter 19: Creating DSLs in Groovy
19.1 Context
19.2 Fluency
19.3 Types of DSLs
19.4 Designing Internal DSLs
19.5 Groovy and DSLs
19.6 Using Command-Chain Fluency
19.7 Closures and DSLs
19.8 Method Interception and DSLs
19.9 The Parentheses Limitation and a Workaround
19.10 Categories and DSLs
19.11 ExpandoMetaClass and DSLs
Appendix 1: Web Resources
Appendix 2: Bibliography
You May Be Interested In…
← Prev
Back
Next →
← Prev
Back
Next →