blob: f833aad2f0c83dce78165989f2f0992b85a095d6 (
plain) (
blame)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
/* ____ ____ ____ ____ ______ *\
** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
** /_____/\____/\___/\____/____/ **
\* */
// $Id$
package scalac.atree;
import scalac.util.Debug;
/** This class represents a method invocation style. */
public class AInvokeStyle {
//########################################################################
// Public Cases
public case New;
public case Dynamic;
public case Static(boolean onInstance);
//########################################################################
// Public Constants
public static final AInvokeStyle StaticClass = Static(false);
public static final AInvokeStyle StaticInstance = Static(true);
//########################################################################
// Public Methods
/** Is this a new object creation? */
public boolean isNew() {
switch (this) {
case New:
return true;
default:
return false;
}
}
/** Is this a dynamic method call? */
public boolean isDynamic() {
switch (this) {
case Dynamic:
return true;
default:
return false;
}
}
/** Is this a static method call? */
public boolean isStatic() {
switch (this) {
case Static(_):
return true;
default:
return false;
}
}
/** Is this an instance method call? */
public boolean hasInstance() {
switch (this) {
case Dynamic:
return true;
case Static(boolean onInstance):
return onInstance;
default:
return false;
}
}
/** Returns a string representation of this style. */
public String toString() {
switch (this) {
case New:
return "new";
case Dynamic:
return "dynamic";
case Static(false):
return "static-class";
case Static(true):
return "static-instance";
default:
throw Debug.abort("unknown case", this);
}
}
//########################################################################
}
|