blob: 4c927a23eccbf62f48315acdf9a9ab2820e6589c (
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
50
51
52
53
|
/*
* AnonymousClassEnvironment.java
*
* Aug 2, 2002 by Michiaki Tatsubori
*/
package io.devnulllabs.openjava.mop;
import io.devnulllabs.openjava.ptree.FieldDeclaration;
import io.devnulllabs.openjava.ptree.MemberDeclarationList;
public class AnonymousClassEnvironment extends ClassEnvironment
{
private MemberDeclarationList members;
private String base;
public AnonymousClassEnvironment(Environment e, String baseClassName, MemberDeclarationList mdecls) {
super(e);
this.members = mdecls;
this.base = baseClassName;
}
public String getClassName() {
return "<anonymous class>";
}
public String toString() {
return super.toString();
}
public OJClass lookupBind(String name) {
for (int i = 0, len = members.size(); i < len; ++i) {
if (!(members.get(i) instanceof FieldDeclaration)) continue;
FieldDeclaration field = (FieldDeclaration) members.get(i);
if (! name.equals(field.getName())) continue;
return lookupClass(field.getName());
}
OJField field = pickupField(lookupClass(base), name);
if (field != null) return field.getType();
/* not a field name of this class */
return parent.lookupBind(name);
}
/**
* Returns the qualified class name.
*
* @return the qualified name of the class which organizes this
* environment.
*/
public String currentClassName() {
return getClassName();
}
}
|