aboutsummaryrefslogtreecommitdiffstats
path: root/bcel-builder
diff options
context:
space:
mode:
authoraclement <aclement>2009-09-28 16:34:37 +0000
committeraclement <aclement>2009-09-28 16:34:37 +0000
commit5e40d5e325962b203b0ba45542c1b5e13feedb3d (patch)
tree6964045168100a30d4111bf8fe6b7f20fe060c4c /bcel-builder
parent5a37433e22d85e84312e5e804ed15f74bf50d22a (diff)
downloadaspectj-5e40d5e325962b203b0ba45542c1b5e13feedb3d.tar.gz
aspectj-5e40d5e325962b203b0ba45542c1b5e13feedb3d.zip
formatted
Diffstat (limited to 'bcel-builder')
-rw-r--r--bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java151
1 files changed, 80 insertions, 71 deletions
diff --git a/bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java b/bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java
index 12b77d47f..465805803 100644
--- a/bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java
+++ b/bcel-builder/src/org/aspectj/apache/bcel/generic/ObjectType.java
@@ -57,87 +57,96 @@ import org.aspectj.apache.bcel.Constants;
import org.aspectj.apache.bcel.Repository;
import org.aspectj.apache.bcel.classfile.JavaClass;
-/**
+/**
* Denotes reference such as java.lang.String.
- *
- * @version $Id: ObjectType.java,v 1.5 2008/06/23 04:01:28 aclement Exp $
- * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
+ *
+ * @version $Id: ObjectType.java,v 1.6 2009/09/28 16:34:37 aclement Exp $
+ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
*/
public class ObjectType extends ReferenceType {
- private String class_name; // Class name of type
+ private String class_name; // Class name of type
+
+ /**
+ * @param class_name fully qualified class name, e.g. java.lang.String
+ */
+ public ObjectType(String class_name) {
+ super(Constants.T_REFERENCE, toSignature(class_name));// "L" + class_name.replace('.', '/') + ";");
+ this.class_name = class_name;// .replace('/', '.');
+ }
+
+ private static String toSignature(String classname) {
+ StringBuffer sig = new StringBuffer();
+ sig.append("L").append(classname.replace('.', '/'));
+ sig.append(";");
+ return sig.toString();
+ }
- /**
- * @param class_name fully qualified class name, e.g. java.lang.String
- */
- public ObjectType(String class_name) {
- super(Constants.T_REFERENCE, toSignature(class_name));//"L" + class_name.replace('.', '/') + ";");
- this.class_name = class_name;//.replace('/', '.');
- }
-
- private static String toSignature(String classname) {
- StringBuffer sig = new StringBuffer();
- sig.append("L").append(classname.replace('.','/'));
- sig.append(";");
- return sig.toString();
- }
+ /**
+ * @return name of referenced class
+ */
+ public String getClassName() {
+ return class_name;
+ }
- /** @return name of referenced class
- */
- public String getClassName() { return class_name; }
+ /**
+ * @return a hash code value for the object.
+ */
+ @Override
+ public int hashCode() {
+ return class_name.hashCode();
+ }
- /** @return a hash code value for the object.
- */
- public int hashCode() { return class_name.hashCode(); }
+ /**
+ * @return true if both type objects refer to the same class.
+ */
+ @Override
+ public boolean equals(Object type) {
+ return (type instanceof ObjectType) ? ((ObjectType) type).class_name.equals(class_name) : false;
+ }
- /** @return true if both type objects refer to the same class.
- */
- public boolean equals(Object type) {
- return (type instanceof ObjectType)?
- ((ObjectType)type).class_name.equals(class_name) : false;
- }
+ /**
+ * If "this" doesn't reference a class, it references an interface or a non-existant entity.
+ */
+ public boolean referencesClass() {
+ JavaClass jc = Repository.lookupClass(class_name);
+ if (jc == null) {
+ return false;
+ } else {
+ return jc.isClass();
+ }
+ }
- /**
- * If "this" doesn't reference a class, it references an interface
- * or a non-existant entity.
- */
- public boolean referencesClass(){
- JavaClass jc = Repository.lookupClass(class_name);
- if (jc == null)
- return false;
- else
- return jc.isClass();
- }
-
- /**
- * If "this" doesn't reference an interface, it references a class
- * or a non-existant entity.
- */
- public boolean referencesInterface(){
- JavaClass jc = Repository.lookupClass(class_name);
- if (jc == null)
- return false;
- else
- return !jc.isClass();
- }
+ /**
+ * If "this" doesn't reference an interface, it references a class or a non-existant entity.
+ */
+ public boolean referencesInterface() {
+ JavaClass jc = Repository.lookupClass(class_name);
+ if (jc == null) {
+ return false;
+ } else {
+ return !jc.isClass();
+ }
+ }
- public boolean subclassOf(ObjectType superclass){
- if (this.referencesInterface() || superclass.referencesInterface())
- return false;
+ public boolean subclassOf(ObjectType superclass) {
+ if (this.referencesInterface() || superclass.referencesInterface()) {
+ return false;
+ }
- return Repository.instanceOf(this.class_name, superclass.class_name);
- }
+ return Repository.instanceOf(this.class_name, superclass.class_name);
+ }
- /**
- * Java Virtual Machine Specification edition 2, § 5.4.4 Access Control
- */
- public boolean accessibleTo(ObjectType accessor) {
- JavaClass jc = Repository.lookupClass(class_name);
+ /**
+ * Java Virtual Machine Specification edition 2, § 5.4.4 Access Control
+ */
+ public boolean accessibleTo(ObjectType accessor) {
+ JavaClass jc = Repository.lookupClass(class_name);
- if(jc.isPublic()) {
- return true;
- } else {
- JavaClass acc = Repository.lookupClass(accessor.class_name);
- return acc.getPackageName().equals(jc.getPackageName());
- }
- }
+ if (jc.isPublic()) {
+ return true;
+ } else {
+ JavaClass acc = Repository.lookupClass(accessor.class_name);
+ return acc.getPackageName().equals(jc.getPackageName());
+ }
+ }
}