blob: f833aad2f0c83dce78165989f2f0992b85a095d6 (
plain) (
tree)
|
|
/* ____ ____ ____ ____ ______ *\
** / __// __ \/ __// __ \/ ____/ 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);
}
}
//########################################################################
}
|