public class SmartThingsConfig
implements FieldAmmendment, FrameAmmendment {
- boolean ignoreClass(ClassInfo ci) {
+ public boolean staticClass(ClassInfo ci) {
+ String pName = ci.getName();
+ if (pName.startsWith("java."))
+ return true;
+
+ if (pName.startsWith("sun."))
+ return true;
+
+ if (pName.startsWith("com.sun"))
+ return true;
+
+ if (pName.startsWith("org."))
+ return true;
+
+ if (pName.startsWith("groovy."))
+ return true;
+
+ if (pName.startsWith("groovyjarjarasm."))
+ return true;
+
+ if (pName.startsWith("gov."))
+ return true;
+
+ if (pName.startsWith("["))
+ return true;
+
+ return false;
+ }
+ public boolean ignoreClass(ClassInfo ci) {
String pName = ci.getName();
if (pName.startsWith("org")) {
if (pName.startsWith("org.codehaus.groovy")) {
if (pName.startsWith("java.lang.ClassLoader")) {
return true;
}
- if (pName.startsWith("java.lang.Thread$State")) {
- return true;
- }
if (pName.startsWith("java.lang.Class"))
return true;
+ if (pName.startsWith("java.lang.Thread"))
+ return true;
if (pName.startsWith("java.lang.Package"))
return true;
} else {
return true;
if (pName.startsWith("sun.net.www"))
return true;
-
+ if (pName.startsWith("gov.nasa"))
+ return true;
return false;
}
return sofar;
}
+ boolean checkName(String name) {
+ if (name.equals("call"))
+ return true;
+ return (name.charAt(0) == '[' && name.charAt(name.length()-1)==']');
+ }
+
@Override
public FramePolicy ammendFramePolicy(MethodInfo mi, FramePolicy sofar) {
ClassInfo ci = mi.getClassInfo();
- if (ignoreClass(ci)) {
+ if (ignoreClass(ci) || checkName(mi.getName())) {
sofar.includeLocals = false;
sofar.includeOps = false;
sofar.includePC = false;
} else {
- // System.out.println("Including M: " +mi);
+ // System.out.println("Including M: " +mi.getName());
}
return sofar;