1 /***************************************************************************************
2 * Copyright (c) Jonas Bonér, Alexandre Vasseur. All rights reserved. *
3 * http://aspectwerkz.codehaus.org *
4 * ---------------------------------------------------------------------------------- *
5 * The software in this package is published under the terms of the LGPL license *
6 * a copy of which has been included with this distribution in the license.txt file. *
7 **************************************************************************************/
8 package org.codehaus.aspectwerkz.transform;
9
10 import org.codehaus.aspectwerkz.transform.delegation.Klass;
11
12 /***
13 * Component for class transformation At load time / post compilation time: transform At runtime to activate prepared
14 * declarations: activate
15 *
16 * @author <a href="mailto:alex@gnilux.com">Alexandre Vasseur </a>
17 */
18 public interface Transformer {
19
20 public final static int STATUS_SKIP = 1;
21
22 public final static int STATUS_HAS_NO_POINTCUT = 2;
23
24 public final static int STATUS_HAS_POINTCUT = 3;
25
26 /***
27 * Transforms bytecode at load time
28 *
29 * @param context
30 * @param klass
31 * @throws Exception
32 */
33 public abstract void transform(final Context context, final Klass klass) throws Exception;
34 }