summaryrefslogtreecommitdiff
path: root/src/test/java/inner/VerboseClass.oj
blob: 3cfe7a86bd905dd8eb34a9ad9f30038f23fdfce8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
 * VerboseClass.java
 *
 * @author   Michiaki Tatsubori
 * @version  %VERSION% %DATE%
 * @see      java.lang.Object
 *
 * COPYRIGHT 1999 by Michiaki Tatsubori, ALL RIGHTS RESERVED.
 */
package inner;

import io.devnulllabs.openjava.mop.*;
import io.devnulllabs.openjava.ptree.*;
import io.devnulllabs.openjava.syntax.*;

public class VerboseClass instantiates Metaclass extends OJClass {

    public VerboseClass(
        Environment env,
        openjava.mop.OJClass declaring,
        ClassDeclaration cd) {
        super(env, declaring, cd);
        System.out.println(
            "A class metaobject for "
                + cd.getName()
                + " created from source code.");
    }

    public VerboseClass(Class javaclazz, MetaInfo minfo) {
        super(javaclazz, minfo);
        System.out.println(
            "A class metaobject for "
                + javaclazz.getName()
                + " created from byte code.");
    }

    /* overrides for translation */
    public void translateDefinition() throws MOPException {
        OJMethod[] methods = getDeclaredMethods();
        for (int i = 0; i < methods.length; ++i) {
            Statement printer =
                makeStatement(
                    "java.lang.System.out.println( \""
                        + methods[i].toString()
                        + " was called\" );");
            methods[i].getBody().insertElementAt(printer, 0);
        }
    }
}