public AbstractASMBackend(SootClass sc,int javaVersion){
  this.sc=sc;
  int minVersion=getMinJavaVersion(sc);
  if (javaVersion == 0)   javaVersion=Options.java_version_default;
  if (javaVersion != Options.java_version_default && javaVersion < minVersion) {
    throw new IllegalArgumentException("Enforced Java version " + translateJavaVersion(javaVersion) + " too low to support required features ("+ translateJavaVersion(minVersion)+ " required)");
  }
  javaVersion=Math.max(javaVersion,minVersion);
switch (javaVersion) {
case Options.java_version_1_1:
    this.javaVersion=Opcodes.V1_1;
  break;
case Options.java_version_1_2:
this.javaVersion=Opcodes.V1_2;
break;
case Options.java_version_1_3:
this.javaVersion=Opcodes.V1_3;
break;
case Options.java_version_1_4:
this.javaVersion=Opcodes.V1_4;
break;
case Options.java_version_1_5:
this.javaVersion=Opcodes.V1_5;
break;
case Options.java_version_1_6:
this.javaVersion=Opcodes.V1_6;
break;
case Options.java_version_1_7:
this.javaVersion=Opcodes.V1_7;
break;
case Options.java_version_1_8:
this.javaVersion=Opcodes.V1_8;
break;
}
}

public AbstractASMBackend ( SootClass sc , int javaVersion ) { this . sc = sc ; int minVersion = getMinJavaVersion ( sc ) ; if ( javaVersion == 0 ) javaVersion = Options . java_version_default ; if ( javaVersion != Options . java_version_default && javaVersion < minVersion ) { throw new IllegalArgumentException ( "Enforced Java version " + translateJavaVersion ( javaVersion ) + " too low to support required features (" + translateJavaVersion ( minVersion ) + " required)" ) ; } javaVersion = Math . max ( javaVersion , minVersion ) ; switch ( javaVersion ) { case Options . java_version_1_1 : this . javaVersion = Opcodes . V1_1 ; break ; case Options . java_version_1_2 : this . javaVersion = Opcodes . V1_2 ; break ; case Options . java_version_1_3 : this . javaVersion = Opcodes . V1_3 ; break ; case Options . java_version_1_4 : this . javaVersion = Opcodes . V1_4 ; break ; case Options . java_version_1_5 : this . javaVersion = Opcodes . V1_5 ; break ; case Options . java_version_1_6 : this . javaVersion = Opcodes . V1_6 ; break ; case Options . java_version_1_7 : this . javaVersion = Opcodes . V1_7 ; break ; case Options . java_version_1_8 : this . javaVersion = Opcodes . V1_8 ; break ; } }
creates a new asm backend
