aboutsummaryrefslogtreecommitdiffstats
path: root/org.aspectj.matcher
diff options
context:
space:
mode:
authorAndy Clement <aclement@vmware.com>2012-03-07 12:09:41 -0800
committerAndy Clement <aclement@vmware.com>2012-03-07 12:09:41 -0800
commita044c8dc4cb66e81f32e2fef7c3b215ce75d7df7 (patch)
tree0e531036a626f431ce91df1987a780f74a9ddab6 /org.aspectj.matcher
parent6defb4e5a2565f5568cf6c1346001abf99305d51 (diff)
downloadaspectj-a044c8dc4cb66e81f32e2fef7c3b215ce75d7df7.tar.gz
aspectj-a044c8dc4cb66e81f32e2fef7c3b215ce75d7df7.zip
373461 - attempted restructure of nameToSignature
Diffstat (limited to 'org.aspectj.matcher')
-rw-r--r--org.aspectj.matcher/src/org/aspectj/weaver/UnresolvedType.java94
1 files changed, 45 insertions, 49 deletions
diff --git a/org.aspectj.matcher/src/org/aspectj/weaver/UnresolvedType.java b/org.aspectj.matcher/src/org/aspectj/weaver/UnresolvedType.java
index cc48f78bc..19fb62908 100644
--- a/org.aspectj.matcher/src/org/aspectj/weaver/UnresolvedType.java
+++ b/org.aspectj.matcher/src/org/aspectj/weaver/UnresolvedType.java
@@ -744,60 +744,56 @@ public class UnresolvedType implements Traceable, TypeVariableDeclaringElement {
if (name.endsWith("[]")) {
return "[" + nameToSignature(name.substring(0, name.length() - 2));
}
- if (len != 0) {
- // check if someone is calling us with something that is a signature already
- assert name.charAt(0) != '[';
-
- if (name.indexOf("<") == -1) {
- // not parameterized
- return new StringBuilder("L").append(name.replace('.', '/')).append(';').toString();
- } else {
- StringBuffer nameBuff = new StringBuffer();
- int nestLevel = 0;
- nameBuff.append("P");
- for (int i = 0; i < name.length(); i++) {
- char c = name.charAt(i);
- switch (c) {
- case '.':
- nameBuff.append('/');
- break;
- case '<':
- nameBuff.append("<");
- nestLevel++;
- StringBuffer innerBuff = new StringBuffer();
- while (nestLevel > 0) {
- c = name.charAt(++i);
- if (c == '<') {
- nestLevel++;
- }
- if (c == '>') {
- nestLevel--;
- }
- if (c == ',' && nestLevel == 1) {
- nameBuff.append(nameToSignature(innerBuff.toString()));
- innerBuff = new StringBuffer();
- } else {
- if (nestLevel > 0) {
- innerBuff.append(c);
- }
+ if (len == 0) {
+ throw new BCException("Bad type name: " + name);
+ }
+
+ if (name.indexOf("<") == -1) {
+ // not parameterized
+ return new StringBuilder("L").append(name.replace('.', '/')).append(';').toString();
+ } else {
+ StringBuffer nameBuff = new StringBuffer();
+ int nestLevel = 0;
+ nameBuff.append("P");
+ for (int i = 0; i < len; i++) {
+ char c = name.charAt(i);
+ switch (c) {
+ case '.':
+ nameBuff.append('/');
+ break;
+ case '<':
+ nameBuff.append("<");
+ nestLevel++;
+ StringBuffer innerBuff = new StringBuffer();
+ while (nestLevel > 0) {
+ c = name.charAt(++i);
+ if (c == '<') {
+ nestLevel++;
+ } else if (c == '>') {
+ nestLevel--;
+ }
+ if (c == ',' && nestLevel == 1) {
+ nameBuff.append(nameToSignature(innerBuff.toString()));
+ innerBuff = new StringBuffer();
+ } else {
+ if (nestLevel > 0) {
+ innerBuff.append(c);
}
}
- nameBuff.append(nameToSignature(innerBuff.toString()));
- nameBuff.append('>');
- break;
- case '>':
- throw new IllegalStateException("Should by matched by <");
- case ',':
- throw new IllegalStateException("Should only happen inside <...>");
- default:
- nameBuff.append(c);
}
+ nameBuff.append(nameToSignature(innerBuff.toString()));
+ nameBuff.append('>');
+ break;
+// case '>':
+// throw new IllegalStateException("Should by matched by <");
+// case ',':
+// throw new IllegalStateException("Should only happen inside <...>");
+ default:
+ nameBuff.append(c);
}
- nameBuff.append(";");
- return nameBuff.toString();
}
- } else {
- throw new BCException("Bad type name: " + name);
+ nameBuff.append(";");
+ return nameBuff.toString();
}
}