public void setMainClass(SootClass m) { mainClass = m; if (!m.declaresMethod(getSubSigNumberer().findOrAdd("void main(java.lang.String[])"))) { throw new RuntimeException("Main-class has no main method!"); } }
public synchronized NumberedString findOrAdd(String s) { NumberedString ret = stringToNumbered.get(s); if (ret == null) { ret = new NumberedString(s); stringToNumbered.put(s, ret); add(ret); } return ret; }
public SootMethod getMethod(String subsignature) { checkLevel(SIGNATURES); NumberedString numberedString = Scene.v().getSubSigNumberer().find(subsignature); if (numberedString == null) { throw new RuntimeException("No method " + subsignature + " in class " + getName()); } return getMethod(numberedString); }
/** * Constructs a {@link SootMethod} with the given name, parameter types, return type, and list of thrown exceptions. */ public SootMethod(String name, List<Type> parameterTypes, Type returnType, int modifiers, List<SootClass> thrownExceptions) { this.name = name; if (parameterTypes != null && !parameterTypes.isEmpty()) { this.parameterTypes = parameterTypes.toArray(new Type[parameterTypes.size()]); } this.returnType = returnType; this.modifiers = modifiers; if (exceptions == null && !thrownExceptions.isEmpty()) { exceptions = new ArrayList<SootClass>(); this.exceptions.addAll(thrownExceptions); } subsignature = Scene.v().getSubSigNumberer().findOrAdd(getSubSignature()); }
public NumberedString find( String s ) { NumberedString ret = stringToNumbered.get( s ); if( ret == null ) { stringToNumbered.put( s, ret = new NumberedString(s) ); add( ret ); } return ret; } public NumberedString findOrAdd( String s ) {
public SootMethod getMethodUnsafe(String subsignature) { checkLevel(SIGNATURES); NumberedString numberedString = Scene.v().getSubSigNumberer().find(subsignature); return numberedString == null ? null : getMethodUnsafe(numberedString); }
@Override public NumberedString getSubSignature() { return Scene.v().getSubSigNumberer().findOrAdd(SootMethod.getSubSignature(name, parameterTypes, returnType)); }
public NumberedString findOrAdd( String s ) { NumberedString ret = stringToNumbered.get( s ); if( ret == null ) { stringToNumbered.put( s, ret = new NumberedString(s) ); add( ret ); } return ret; } }
/** * Does this class declare a method with the given subsignature? */ public boolean declaresMethod(String subsignature) { checkLevel(SIGNATURES); NumberedString numberedString = Scene.v().getSubSigNumberer().find(subsignature); return numberedString == null ? false : declaresMethod(numberedString); }
/** * Changes the set of parameter types of this method. */ public synchronized void setParameterTypes(List<Type> l) { boolean wasDeclared = isDeclared; SootClass oldDeclaringClass = declaringClass; if (wasDeclared) { oldDeclaringClass.removeMethod(this); } this.parameterTypes = l.toArray(new Type[l.size()]); subSig = null; sig = null; subsignature = Scene.v().getSubSigNumberer().findOrAdd(getSubSignature()); if (wasDeclared) { oldDeclaringClass.addMethod(this); } }
public NumberedString find( String s ) { NumberedString ret = stringToNumbered.get( s ); if( ret == null ) { stringToNumbered.put( s, ret = new NumberedString(s) ); add( ret ); } return ret; } public NumberedString findOrAdd( String s ) {
/** Sets the return type of this method. */ public synchronized void setReturnType(Type t) { boolean wasDeclared = isDeclared; SootClass oldDeclaringClass = declaringClass; if (wasDeclared) { oldDeclaringClass.removeMethod(this); } returnType = t; subSig = null; sig = null; subsignature = Scene.v().getSubSigNumberer().findOrAdd(getSubSignature()); if (wasDeclared) { oldDeclaringClass.addMethod(this); } }
public NumberedString findOrAdd( String s ) { NumberedString ret = stringToNumbered.get( s ); if( ret == null ) { stringToNumbered.put( s, ret = new NumberedString(s) ); add( ret ); } return ret; } }
/** * * @return yes if this is the main method */ public boolean isMain() { if (isPublic() && isStatic()) { NumberedString main_sig = Scene.v().getSubSigNumberer().findOrAdd("void main(java.lang.String[])"); if (main_sig.equals(subsignature)) { return true; } } return false; }
public static SootMethod getMainMethod() { return Scene.v().getMainClass().getMethod(Scene.v().getSubSigNumberer().findOrAdd("void main(java.lang.String[])")); }
/** Sets the name of this method. */ public synchronized void setName(String name) { boolean wasDeclared = isDeclared; SootClass oldDeclaringClass = declaringClass; if (wasDeclared) { oldDeclaringClass.removeMethod(this); } this.name = name; subSig = null; sig = null; subsignature = Scene.v().getSubSigNumberer().findOrAdd(getSubSignature()); if (wasDeclared) { oldDeclaringClass.addMethod(this); } }
public void setMainClass(SootClass m) { mainClass = m; if(!m.declaresMethod(getSubSigNumberer().findOrAdd( "void main(java.lang.String[])" ))) { throw new RuntimeException("Main-class has no main method!"); } }
public void setMainClass(SootClass m) { mainClass = m; if(!m.declaresMethod(getSubSigNumberer().findOrAdd( "void main(java.lang.String[])" ))) { throw new RuntimeException("Main-class has no main method!"); } }
public IccRedirectionCreator(SootClass dummyMainClass, ComponentEntryPointCollection componentToEntryPoint) { this.componentToEntryPoint = componentToEntryPoint; this.dummyMainClass = dummyMainClass; subsigStartActivityForResult = Scene.v().getSubSigNumberer() .findOrAdd("void startActivityForResult(android.content.Intent,int)"); }
/** * Changes the set of parameter types of this method. */ public void setParameterTypes( List l ) { boolean wasDeclared = isDeclared; SootClass oldDeclaringClass = declaringClass; if( wasDeclared ) oldDeclaringClass.removeMethod(this); List al = new ArrayList(); al.addAll(l); this.parameterTypes = Collections.unmodifiableList(al); subsignature = Scene.v().getSubSigNumberer().findOrAdd(getSubSignature()); if( wasDeclared) oldDeclaringClass.addMethod(this); }