Java源码示例:org.codehaus.groovy.transform.ASTTransformation

示例1
public void addTransform(Class<? extends ASTTransformation> transform, ASTNode node) {
    GroovyASTTransformation annotation = transform.getAnnotation(GroovyASTTransformation.class);
    if (annotation != null) {
        Map<Class<? extends ASTTransformation>, Set<ASTNode>> transforms = getTransforms(annotation.phase());
        Set<ASTNode> nodes = transforms.computeIfAbsent(transform, k -> new LinkedHashSet<>());
        nodes.add(node);
    }
}
 
示例2
private Map<CompilePhase, Map<Class<? extends ASTTransformation>, Set<ASTNode>>> getTransformInstances() {
    if (transformInstances == null) {
        transformInstances = new EnumMap<>(CompilePhase.class);
        for (CompilePhase phase : CompilePhase.values()) {
            transformInstances.put(phase, new LinkedHashMap<>());
        }
    }
    return transformInstances;
}
 
示例3
@Override
public void addTransform(final Class<? extends ASTTransformation> transform, final ASTNode node) {
    throw new UnsupportedOperationException();
}
 
示例4
public Map<Class <? extends ASTTransformation>, Set<ASTNode>> getTransforms(CompilePhase phase) {
    return getTransformInstances().get(phase);
}