Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
 * Copyright (C) 2003-2009 eXo Platform SAS.
 *
 * This is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation; either version 2.1 of
 * the License, or (at your option) any later version.
 *
 * This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package org.chromattic.groovy;

Author(s):
Alain Defrance
Version:
$Revision$
public class ChromatticAnnotationMover {
  
  public void addFieldAnnotationToMethod(ClassNode classNodeFieldNode fieldNodeAnnotationNode annotationNodethrows NoSuchGetterException {
    MethodNode getterNode = GroovyUtils.getGetter(classNodefieldNode);
    if (getterNode == null || !getterNode.getDeclaringClass().equals(classNode)) throw new NoSuchGetterException("Cannot apply chromattic annotations because getter don't exist for : " + fieldNode.getName());
    getterNode.addAnnotation(annotationNode);
  }
  public void addSetterDelegationAnnotation(ClassNode classNodeFieldNode fieldNodethrows NoSuchSetterException {
    MethodNode setterNode = GroovyUtils.getSetter(classNodefieldNode);
    if (setterNode == null || !setterNode.getDeclaringClass().equals(classNode)) throw new NoSuchSetterException("Cannot apply annotation @ChromatticDelegation because setter don't exist for : " + fieldNode.getName());
    setterNode.addAnnotation(new AnnotationNode(new ClassNode(ChromatticDelegation.class)));
  }
  public void generateGetter(ClassNode classNodeFieldNode fieldNode) {
      GroovyUtils.createGetter(classNodefieldNode);
  }
  public void generateGetter(ClassNode classNodeFieldNode fieldNodeAnnotationNode defaultAnnotatedNode) {
    generateGetter(classNodefieldNode);
    try {
      addFieldAnnotationToMethod(classNodefieldNodedefaultAnnotatedNode);
    } catch (NoSuchGetterException ignore) { }
  }
  public void generateSetter(ClassNode classNodeFieldNode fieldNode) {
    GroovyUtils.createSetter(classNodefieldNode);
    try {
      addSetterDelegationAnnotation(classNodefieldNode);
    } catch (NoSuchSetterException ignore) { }
  }
  public void removeChromatticAnnotation(FieldNode fieldNode) {
    Iterator<AnnotationNodeit = fieldNode.getAnnotations().iterator();
    while(it.hasNext())
        it.remove();
  }
  public void applyGroovyInstrumentor(ClassNode classNode) {
    classNode.addAnnotation(new AnnotationNode(new ClassNode(GroovyInstrumentor.class)));
  }
New to GrepCode? Check out our FAQ X