Logo
Header Main navigation
  • Who we are
    • About
      • About us
      • GenAI in Action
      • Leadership
      • Partners
      • Newsroom
      • Awards & Analyst Relations
      • CSR
      • Events
      • Careers
    • Insights
      • Case Studies
      • Whitepapers
      • Webinars
      • Newsletter
      • Podcasts
      • Blogs
      • Articles
      • Brochure
      • Testimonial
      • Video
  • What we do
    • Services
      • Generative AI
      • Digital Engineering
      • Quality Engineering
      • Cloud
      • Data
      • Digital Experience
      • Digital Marketing
    • Industries
      • Technology
      • Media & Entertainment
      • Financial Services
      • Healthcare
      • iGaming
    • Solutions
      • HAWK | Infra monitoring & Log Analytics
      • Prism | AI-based Test Automation
      • Nimbus | Custom Data Ingestion Solution
      • VideoReady | OTT & Video CMS framework
      • BOLT | Faster AEM Development
      • Technologies
  • InfAInite GPT
    • Generative AI
    • GenAI in Action
  Contact us
 
Home > Insights > Blogs > Kushal Likhi

Blogs

Told you, we love sharing!

Kushal Likhi
Node.js

Grails

GDSL Awesomeness – Defining dynamic method in a class

We can define dynamic methods in a class as follows:   Suppose we have injected a method name .clone([boolean] clearTime) in Date which clones the date object and returns the cloned one. This method takes an boolean argument argument too. We can do it as follows: (See inline comments for description) [java] //First we...

Kushal Likhi
Kushal Likhi September 24, 2012
Read→

Grails

GDSL Awesomeness – Understanding Context And Contributors in Detail

GDSL Scripts are based on two main concepts: contexts and contributors. Hence we will discuss about these in detail here.   In GroovyDSL context is an entity which is supposed to give an answer to the question "Where?" this behavior will be available. Contexts are first-order citizens in GroovyDSL, so they may be stored in local...

Kushal Likhi
Kushal Likhi September 24, 2012
Read→

Grails

GDSL Awesomeness – Adding Hinting for missingMethod implementation

hi,   Suppose we have used method missing in our code and we want to give syntax-hinting for these methods then we can go as follows:   Suppose we have this class which implements method missing: [java] class Pixel { def Top def Left def Color def methodMissing(String name, args) { //...

Kushal Likhi
Kushal Likhi September 24, 2012
Read→

Grails

GDSL Awesomeness – Delegating Closure Calls

hi,   Very often we use delegates in our closure calls. It would be great if we could get code-hinting in the closure via the delegates.   Now let us take a very simple scenario, where we made a method "with" which delegates the delegate objet to closure and runs it. [java] class Delegator { static def...

Kushal Likhi
Kushal Likhi September 24, 2012
Read→

Grails

GDSL Awesomeness – Defining methods in a closure passed to method of particular name

hi,   Sometimes we need to add specific methods in the closures which are passed to methods with a particular name. This can be simply done as follows   Suppose we need to add the method named "setHeaders(Map headers)" in all closures passed to method with name "withREST" [java] //Get the context for all closures def...

Kushal Likhi
Kushal Likhi September 24, 2012
Read→

Grails

GDSL Awesomeness – Defining Properties in a closure passed to method of particular name

hi,   Sometimes we need to add specific properties in the closures which are passed to methods with a particular name. This can be simply done as follows   Suppose we need to add the property named requestMethod of type String in all closures passed to method with name "withREST" [java] //Get the context for all...

Kushal Likhi
Kushal Likhi September 24, 2012
Read→

Grails

GDSL Awesomeness – Contributing to classes which match a path/name pattern

hi,   If we want to contribute to classes which matches a particular path/name pattern, then we can use PSI Class patterns to do it.   the code is as follows: [java] import com.intellij.patterns.PsiJavaPatterns import com.intellij.patterns.PlatformPatterns //get the context of all files, and enable path matching....

Kushal Likhi
Kushal Likhi September 24, 2012
Read→

Grails

GDSL Awesomeness – contributing methods with current class return types or parameters

Hi,   Sometimes we need to contribute dynamically using current target class type.   Lets take the example of .get() and .list() methods of Grails domain class. The signature of each method is as follows: public <DomainClassType> get(Long id) , Example: DemoClass.get(1) will return an object of "DemoClass" ...

Kushal Likhi
Kushal Likhi September 24, 2012
Read→

Grails

GDSL Awesomeness – AutoComplete Script for grails-Mail-Plugin “sendMail” closure

Hi,   I have been using the Grails mail plugin for a while now, this plugin injects a method named "sendMail" to all controllers and services.   Our aim will be to provide auto-completes for this method and the closure inside.   The GDSL Script is as follows: [java] import com.intellij.patterns.PsiJavaPatterns ...

Kushal Likhi
Kushal Likhi September 24, 2012
Read→

Grails

GDSL Awesomeness – Getting Code of a method or Field in GDSL Script

Hi,   Here i will illustrate how you can get the code of a method within GDSL Script:   The script is as follows: [java] import com.intellij.patterns.PsiJavaPatterns import com.intellij.patterns.PlatformPatterns def mongoContext = context( ctype:...

Kushal Likhi
Kushal Likhi September 24, 2012
Read→

Grails

GDSL Awesomeness – Advanced Example showing domain properties implementation

Hi,   Here is an example which uses a lot of gdsl concepts. This example tries to simulate injecting properties to Domains.   The Example is as follows: (The code is self explanatory and can be used as a reference) [java] import com.intellij.patterns.PsiJavaPatterns import com.intellij.patterns.PlatformPatterns ...

Kushal Likhi
Kushal Likhi September 24, 2012
Read→

Grails

Closure Caching For Increased Performance (.memoize())

Well This is something awesome and can increase the performance of the project when used wisely. using the groovy .memoize() we can ask closures to perform kind of caching. This can boost up the performance of the system.   _ Note: This feature is available in groovy 1.8+ Well Let me Explain this Using Examples Now suppose i...

Kushal Likhi
Kushal Likhi December 29, 2011
Read→

Post navigation

Older posts
Newer posts
Archive
  • 2026
    • Jan
    • Feb
    • Mar
    • Apr
    • May
  • 2025
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2024
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2023
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2022
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2021
    • Feb
    • Mar
    • May
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2020
    • Mar
    • Jul
  • 2019
    • Jan
    • Mar
    • May
    • Jun
    • Jul
    • Aug
    • Dec
  • 2018
    • Jan
    • Feb
    • Mar
    • Apr
    • Jun
    • Nov
  • 2017
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2016
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2015
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2014
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2013
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2012
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2011
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2010
    • Jan
    • Feb
    • Mar
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2009
    • Jan
    • Mar
    • Apr
    • May
    • Jul
    • Aug
    • Sep
    • Oct
    • Nov
    • Dec
  • 2008
    • Feb
    • Apr
    • May
    • Jun
    • Jul
    • Aug
    • Sep
Who we are
  • About
  • Leadership
  • Awards
  • Events
  • Privacy Policy
  • Press Releases
  • Media Coverage
  • Partners
  • CSR
  • Modern Slavery Statement
What we do
  • Services
  • Technologies
  • Solutions
  • Industries
  • Idanim
Knowledge
  • Blogs
  • Success Stories
  • Whitepapers
  • Webinars
  • Podcasts
  • Newsletter
  • Article
  • Brochure
  • Testimonial
  • Video
Contact Us
  • Career
  • Join us!
  • Request for Services
  • Media Queries
  • Responsible Disclosure
Follow us on
  • ln
  • twt
  • fb
  • Glassdoor
 
To The New
black-footer-logo

©2026 TO THE NEW

Services
Digital Marketing
  • Web Analytics
  • Social Listening
  • Digital Analytics
  • Search Engine Optimization
  • Email Marketing
  • Marketing Automation
  • Digital Marketing
  • Influencer Marketing
  • Content Marketing
  • Social Media Marketing
  • Creative Strategy
  • Digital Campaigns and Activations
  • Media planning and buying
  • Search Marketing
  • Digital Strategy
Backend Engineering
  • Python Development
  • Node.js Development
  • Grails Development
  • Java Development
  • MEAN Development
  • JavaScript Engineering
Web Content Management
  • AEM Development
  • Drupal Development
Cloud & DevOps
  • DevOps as a Service
  • DevOps on AWS
  • DevOps Tools
Digital Transformation
  • Digital Transformation
Experience Design
  • Experience Design
Mobility
  • Mobility
  • iOS App Development
  • Android Development
  • Smart TV App Development
  • Mobile Automation Testing
Frontend Engineering
  • AngularJS Development
  • React Native Development
  • React js Development
Product Engineering
  • Software Product Engineering
Video Solutions
  • Video Solutions
  • Video Managed Services
  • Multiscreen Solutions
Software Development
  • Offshore Software Development
  • Outsourced Software Product Development
  • Custom Software Development
  • Bespoke Software Development
Web Application Development
  • Idanim
  • Custom Web Application Development
  • Outsource Web Application Development
Development Center
  • Offshore Development Center

Tips for writing a blog

Learn how to write a caption