1 2 3 34 35 package ca.mcgill.sable.soot.ui; 36 37 import org.eclipse.swt.widgets.*; 39 import org.eclipse.swt.*; 40 import org.eclipse.swt.layout.*; 41 import ca.mcgill.sable.soot.ui.*; 44 import java.util.*; 45 import org.eclipse.swt.events.*; 46 47 public class PhaseOptionsDialog extends AbstractOptionsDialog implements SelectionListener { 48 49 public PhaseOptionsDialog(Shell parentShell) { 50 super(parentShell); 51 } 52 53 57 protected void initializePageContainer() { 58 59 60 61 Composite General_OptionsChild = General_OptionsCreate(getPageContainer()); 62 63 Composite Input_OptionsChild = Input_OptionsCreate(getPageContainer()); 64 65 Composite Output_OptionsChild = Output_OptionsCreate(getPageContainer()); 66 67 Composite Processing_OptionsChild = Processing_OptionsCreate(getPageContainer()); 68 69 Composite Application_Mode_OptionsChild = Application_Mode_OptionsCreate(getPageContainer()); 70 71 Composite Input_Attribute_OptionsChild = Input_Attribute_OptionsCreate(getPageContainer()); 72 73 Composite Annotation_OptionsChild = Annotation_OptionsCreate(getPageContainer()); 74 75 Composite Miscellaneous_OptionsChild = Miscellaneous_OptionsCreate(getPageContainer()); 76 77 Composite jbChild = jbCreate(getPageContainer()); 78 79 Composite jjChild = jjCreate(getPageContainer()); 80 81 Composite cgChild = cgCreate(getPageContainer()); 82 83 Composite wstpChild = wstpCreate(getPageContainer()); 84 85 Composite wsopChild = wsopCreate(getPageContainer()); 86 87 Composite wjtpChild = wjtpCreate(getPageContainer()); 88 89 Composite wjopChild = wjopCreate(getPageContainer()); 90 91 Composite wjapChild = wjapCreate(getPageContainer()); 92 93 Composite shimpleChild = shimpleCreate(getPageContainer()); 94 95 Composite stpChild = stpCreate(getPageContainer()); 96 97 Composite sopChild = sopCreate(getPageContainer()); 98 99 Composite jtpChild = jtpCreate(getPageContainer()); 100 101 Composite jopChild = jopCreate(getPageContainer()); 102 103 Composite japChild = japCreate(getPageContainer()); 104 105 Composite gbChild = gbCreate(getPageContainer()); 106 107 Composite gopChild = gopCreate(getPageContainer()); 108 109 Composite bbChild = bbCreate(getPageContainer()); 110 111 Composite bopChild = bopCreate(getPageContainer()); 112 113 Composite tagChild = tagCreate(getPageContainer()); 114 115 Composite dbChild = dbCreate(getPageContainer()); 116 117 Composite jbjb_lsChild = jbjb_lsCreate(getPageContainer()); 118 119 Composite jbjb_aChild = jbjb_aCreate(getPageContainer()); 120 121 Composite jbjb_uleChild = jbjb_uleCreate(getPageContainer()); 122 123 Composite jbjb_trChild = jbjb_trCreate(getPageContainer()); 124 125 Composite jbjb_ulpChild = jbjb_ulpCreate(getPageContainer()); 126 127 Composite jbjb_lnsChild = jbjb_lnsCreate(getPageContainer()); 128 129 Composite jbjb_cpChild = jbjb_cpCreate(getPageContainer()); 130 131 Composite jbjb_daeChild = jbjb_daeCreate(getPageContainer()); 132 133 Composite jbjb_cp_uleChild = jbjb_cp_uleCreate(getPageContainer()); 134 135 Composite jbjb_lpChild = jbjb_lpCreate(getPageContainer()); 136 137 Composite jbjb_neChild = jbjb_neCreate(getPageContainer()); 138 139 Composite jbjb_uceChild = jbjb_uceCreate(getPageContainer()); 140 141 Composite jbjb_ttChild = jbjb_ttCreate(getPageContainer()); 142 143 Composite jjjj_lsChild = jjjj_lsCreate(getPageContainer()); 144 145 Composite jjjj_aChild = jjjj_aCreate(getPageContainer()); 146 147 Composite jjjj_uleChild = jjjj_uleCreate(getPageContainer()); 148 149 Composite jjjj_trChild = jjjj_trCreate(getPageContainer()); 150 151 Composite jjjj_ulpChild = jjjj_ulpCreate(getPageContainer()); 152 153 Composite jjjj_lnsChild = jjjj_lnsCreate(getPageContainer()); 154 155 Composite jjjj_cpChild = jjjj_cpCreate(getPageContainer()); 156 157 Composite jjjj_daeChild = jjjj_daeCreate(getPageContainer()); 158 159 Composite jjjj_cp_uleChild = jjjj_cp_uleCreate(getPageContainer()); 160 161 Composite jjjj_lpChild = jjjj_lpCreate(getPageContainer()); 162 163 Composite jjjj_neChild = jjjj_neCreate(getPageContainer()); 164 165 Composite jjjj_uceChild = jjjj_uceCreate(getPageContainer()); 166 167 Composite cgcg_chaChild = cgcg_chaCreate(getPageContainer()); 168 169 Composite cgcg_sparkChild = cgcg_sparkCreate(getPageContainer()); 170 171 Composite cgcg_paddleChild = cgcg_paddleCreate(getPageContainer()); 172 173 Composite cgSpark_General_OptionsChild = cgSpark_General_OptionsCreate(getPageContainer()); 174 175 Composite cgSpark_Pointer_Assignment_Graph_Building_OptionsChild = cgSpark_Pointer_Assignment_Graph_Building_OptionsCreate(getPageContainer()); 176 177 Composite cgSpark_Pointer_Assignment_Graph_Simplification_OptionsChild = cgSpark_Pointer_Assignment_Graph_Simplification_OptionsCreate(getPageContainer()); 178 179 Composite cgSpark_Points_To_Set_Flowing_OptionsChild = cgSpark_Points_To_Set_Flowing_OptionsCreate(getPageContainer()); 180 181 Composite cgSpark_Output_OptionsChild = cgSpark_Output_OptionsCreate(getPageContainer()); 182 183 Composite cgPaddle_General_OptionsChild = cgPaddle_General_OptionsCreate(getPageContainer()); 184 185 Composite cgPaddle_Context_Sensitivity_OptionsChild = cgPaddle_Context_Sensitivity_OptionsCreate(getPageContainer()); 186 187 Composite cgPaddle_Pointer_Assignment_Graph_Building_OptionsChild = cgPaddle_Pointer_Assignment_Graph_Building_OptionsCreate(getPageContainer()); 188 189 Composite cgPaddle_Points_To_Set_Flowing_OptionsChild = cgPaddle_Points_To_Set_Flowing_OptionsCreate(getPageContainer()); 190 191 Composite cgPaddle_Output_OptionsChild = cgPaddle_Output_OptionsCreate(getPageContainer()); 192 193 Composite wjopwjop_smbChild = wjopwjop_smbCreate(getPageContainer()); 194 195 Composite wjopwjop_siChild = wjopwjop_siCreate(getPageContainer()); 196 197 Composite wjapwjap_raChild = wjapwjap_raCreate(getPageContainer()); 198 199 Composite wjapwjap_umtChild = wjapwjap_umtCreate(getPageContainer()); 200 201 Composite wjapwjap_uftChild = wjapwjap_uftCreate(getPageContainer()); 202 203 Composite wjapwjap_tqtChild = wjapwjap_tqtCreate(getPageContainer()); 204 205 Composite wjapwjap_cggChild = wjapwjap_cggCreate(getPageContainer()); 206 207 Composite wjapwjap_purityChild = wjapwjap_purityCreate(getPageContainer()); 208 209 Composite sopsop_cpfChild = sopsop_cpfCreate(getPageContainer()); 210 211 Composite jopjop_cseChild = jopjop_cseCreate(getPageContainer()); 212 213 Composite jopjop_bcmChild = jopjop_bcmCreate(getPageContainer()); 214 215 Composite jopjop_lcmChild = jopjop_lcmCreate(getPageContainer()); 216 217 Composite jopjop_cpChild = jopjop_cpCreate(getPageContainer()); 218 219 Composite jopjop_cpfChild = jopjop_cpfCreate(getPageContainer()); 220 221 Composite jopjop_cbfChild = jopjop_cbfCreate(getPageContainer()); 222 223 Composite jopjop_daeChild = jopjop_daeCreate(getPageContainer()); 224 225 Composite jopjop_uce1Child = jopjop_uce1Create(getPageContainer()); 226 227 Composite jopjop_ubf1Child = jopjop_ubf1Create(getPageContainer()); 228 229 Composite jopjop_uce2Child = jopjop_uce2Create(getPageContainer()); 230 231 Composite jopjop_ubf2Child = jopjop_ubf2Create(getPageContainer()); 232 233 Composite jopjop_uleChild = jopjop_uleCreate(getPageContainer()); 234 235 Composite japjap_npcChild = japjap_npcCreate(getPageContainer()); 236 237 Composite japjap_npcolorerChild = japjap_npcolorerCreate(getPageContainer()); 238 239 Composite japjap_abcChild = japjap_abcCreate(getPageContainer()); 240 241 Composite japjap_profilingChild = japjap_profilingCreate(getPageContainer()); 242 243 Composite japjap_seaChild = japjap_seaCreate(getPageContainer()); 244 245 Composite japjap_fieldrwChild = japjap_fieldrwCreate(getPageContainer()); 246 247 Composite japjap_cgtaggerChild = japjap_cgtaggerCreate(getPageContainer()); 248 249 Composite japjap_parityChild = japjap_parityCreate(getPageContainer()); 250 251 Composite japjap_patChild = japjap_patCreate(getPageContainer()); 252 253 Composite japjap_lvtaggerChild = japjap_lvtaggerCreate(getPageContainer()); 254 255 Composite japjap_rdtaggerChild = japjap_rdtaggerCreate(getPageContainer()); 256 257 Composite japjap_cheChild = japjap_cheCreate(getPageContainer()); 258 259 Composite japjap_umtChild = japjap_umtCreate(getPageContainer()); 260 261 Composite japjap_litChild = japjap_litCreate(getPageContainer()); 262 263 Composite japjap_aetChild = japjap_aetCreate(getPageContainer()); 264 265 Composite japjap_dmtChild = japjap_dmtCreate(getPageContainer()); 266 267 Composite gbgb_a1Child = gbgb_a1Create(getPageContainer()); 268 269 Composite gbgb_cfChild = gbgb_cfCreate(getPageContainer()); 270 271 Composite gbgb_a2Child = gbgb_a2Create(getPageContainer()); 272 273 Composite gbgb_uleChild = gbgb_uleCreate(getPageContainer()); 274 275 Composite bbbb_lsoChild = bbbb_lsoCreate(getPageContainer()); 276 277 Composite bbbb_phoChild = bbbb_phoCreate(getPageContainer()); 278 279 Composite bbbb_uleChild = bbbb_uleCreate(getPageContainer()); 280 281 Composite bbbb_lpChild = bbbb_lpCreate(getPageContainer()); 282 283 Composite tagtag_lnChild = tagtag_lnCreate(getPageContainer()); 284 285 Composite tagtag_anChild = tagtag_anCreate(getPageContainer()); 286 287 Composite tagtag_depChild = tagtag_depCreate(getPageContainer()); 288 289 Composite tagtag_fieldrwChild = tagtag_fieldrwCreate(getPageContainer()); 290 291 Composite dbdb_transformationsChild = dbdb_transformationsCreate(getPageContainer()); 292 293 Composite dbdb_renamerChild = dbdb_renamerCreate(getPageContainer()); 294 295 Composite dbdb_deobfuscateChild = dbdb_deobfuscateCreate(getPageContainer()); 296 297 Composite dbdb_force_recompileChild = dbdb_force_recompileCreate(getPageContainer()); 298 299 300 addOtherPages(getPageContainer()); 301 initializeRadioGroups(); 302 initializeEnableGroups(); 303 304 } 305 306 private void initializeRadioGroups(){ 307 setRadioGroups(new HashMap()); 308 int counter = 0; 309 ArrayList buttonList; 310 311 312 buttonList = new ArrayList(); 313 314 315 if (isEnableButton("enabled")) { 316 buttonList.add(getcgcg_chaenabled_widget()); 317 getcgcg_chaenabled_widget().getButton().addSelectionListener(this); 318 } 319 320 321 if (isEnableButton("verbose")) { 322 buttonList.add(getcgcg_chaverbose_widget()); 323 getcgcg_chaverbose_widget().getButton().addSelectionListener(this); 324 } 325 326 327 if (isEnableButton("enabled")) { 328 buttonList.add(getcgcg_sparkenabled_widget()); 329 getcgcg_sparkenabled_widget().getButton().addSelectionListener(this); 330 } 331 332 333 if (isEnableButton("enabled")) { 334 buttonList.add(getcgcg_paddleenabled_widget()); 335 getcgcg_paddleenabled_widget().getButton().addSelectionListener(this); 336 } 337 338 339 getRadioGroups().put(new Integer (counter), buttonList); 340 341 counter++; 342 343 } 344 345 346 347 private void initializeEnableGroups(){ 348 setEnableGroups(new ArrayList()); 349 350 351 352 makeNewEnableGroup("jb"); 353 354 355 addToEnableGroup("jb", getjbenabled_widget(), "enabled"); 356 357 358 addToEnableGroup("jb", getjbuse_original_names_widget(), "use-original-names"); 359 360 361 getjbenabled_widget().getButton().addSelectionListener(this); 362 363 getjbuse_original_names_widget().getButton().addSelectionListener(this); 364 365 366 makeNewEnableGroup("jb", "jb.ls"); 367 368 369 addToEnableGroup("jb", "jb.ls", getjbjb_lsenabled_widget(), "enabled"); 370 371 getjbjb_lsenabled_widget().getButton().addSelectionListener(this); 372 373 374 makeNewEnableGroup("jb", "jb.a"); 375 376 377 addToEnableGroup("jb", "jb.a", getjbjb_aenabled_widget(), "enabled"); 378 379 addToEnableGroup("jb", "jb.a", getjbjb_aonly_stack_locals_widget(), "only-stack-locals"); 380 381 getjbjb_aenabled_widget().getButton().addSelectionListener(this); 382 383 getjbjb_aonly_stack_locals_widget().getButton().addSelectionListener(this); 384 385 386 makeNewEnableGroup("jb", "jb.ule"); 387 388 389 addToEnableGroup("jb", "jb.ule", getjbjb_uleenabled_widget(), "enabled"); 390 391 getjbjb_uleenabled_widget().getButton().addSelectionListener(this); 392 393 394 makeNewEnableGroup("jb", "jb.tr"); 395 396 397 addToEnableGroup("jb", "jb.tr", getjbjb_trenabled_widget(), "enabled"); 398 399 getjbjb_trenabled_widget().getButton().addSelectionListener(this); 400 401 402 makeNewEnableGroup("jb", "jb.ulp"); 403 404 405 addToEnableGroup("jb", "jb.ulp", getjbjb_ulpenabled_widget(), "enabled"); 406 407 addToEnableGroup("jb", "jb.ulp", getjbjb_ulpunsplit_original_locals_widget(), "unsplit-original-locals"); 408 409 getjbjb_ulpenabled_widget().getButton().addSelectionListener(this); 410 411 getjbjb_ulpunsplit_original_locals_widget().getButton().addSelectionListener(this); 412 413 414 makeNewEnableGroup("jb", "jb.lns"); 415 416 417 addToEnableGroup("jb", "jb.lns", getjbjb_lnsenabled_widget(), "enabled"); 418 419 addToEnableGroup("jb", "jb.lns", getjbjb_lnsonly_stack_locals_widget(), "only-stack-locals"); 420 421 getjbjb_lnsenabled_widget().getButton().addSelectionListener(this); 422 423 getjbjb_lnsonly_stack_locals_widget().getButton().addSelectionListener(this); 424 425 426 makeNewEnableGroup("jb", "jb.cp"); 427 428 429 addToEnableGroup("jb", "jb.cp", getjbjb_cpenabled_widget(), "enabled"); 430 431 addToEnableGroup("jb", "jb.cp", getjbjb_cponly_regular_locals_widget(), "only-regular-locals"); 432 433 addToEnableGroup("jb", "jb.cp", getjbjb_cponly_stack_locals_widget(), "only-stack-locals"); 434 435 getjbjb_cpenabled_widget().getButton().addSelectionListener(this); 436 437 getjbjb_cponly_regular_locals_widget().getButton().addSelectionListener(this); 438 439 getjbjb_cponly_stack_locals_widget().getButton().addSelectionListener(this); 440 441 442 makeNewEnableGroup("jb", "jb.dae"); 443 444 445 addToEnableGroup("jb", "jb.dae", getjbjb_daeenabled_widget(), "enabled"); 446 447 addToEnableGroup("jb", "jb.dae", getjbjb_daeonly_stack_locals_widget(), "only-stack-locals"); 448 449 getjbjb_daeenabled_widget().getButton().addSelectionListener(this); 450 451 getjbjb_daeonly_stack_locals_widget().getButton().addSelectionListener(this); 452 453 454 makeNewEnableGroup("jb", "jb.cp-ule"); 455 456 457 addToEnableGroup("jb", "jb.cp-ule", getjbjb_cp_uleenabled_widget(), "enabled"); 458 459 getjbjb_cp_uleenabled_widget().getButton().addSelectionListener(this); 460 461 462 makeNewEnableGroup("jb", "jb.lp"); 463 464 465 addToEnableGroup("jb", "jb.lp", getjbjb_lpenabled_widget(), "enabled"); 466 467 addToEnableGroup("jb", "jb.lp", getjbjb_lpunsplit_original_locals_widget(), "unsplit-original-locals"); 468 469 getjbjb_lpenabled_widget().getButton().addSelectionListener(this); 470 471 getjbjb_lpunsplit_original_locals_widget().getButton().addSelectionListener(this); 472 473 474 makeNewEnableGroup("jb", "jb.ne"); 475 476 477 addToEnableGroup("jb", "jb.ne", getjbjb_neenabled_widget(), "enabled"); 478 479 getjbjb_neenabled_widget().getButton().addSelectionListener(this); 480 481 482 makeNewEnableGroup("jb", "jb.uce"); 483 484 485 addToEnableGroup("jb", "jb.uce", getjbjb_uceenabled_widget(), "enabled"); 486 487 addToEnableGroup("jb", "jb.uce", getjbjb_uceremove_unreachable_traps_widget(), "remove-unreachable-traps"); 488 489 getjbjb_uceenabled_widget().getButton().addSelectionListener(this); 490 491 getjbjb_uceremove_unreachable_traps_widget().getButton().addSelectionListener(this); 492 493 494 makeNewEnableGroup("jb", "jb.tt"); 495 496 497 addToEnableGroup("jb", "jb.tt", getjbjb_ttenabled_widget(), "enabled"); 498 499 getjbjb_ttenabled_widget().getButton().addSelectionListener(this); 500 501 502 makeNewEnableGroup("jj"); 503 504 505 addToEnableGroup("jj", getjjenabled_widget(), "enabled"); 506 507 508 addToEnableGroup("jj", getjjuse_original_names_widget(), "use-original-names"); 509 510 511 getjjenabled_widget().getButton().addSelectionListener(this); 512 513 getjjuse_original_names_widget().getButton().addSelectionListener(this); 514 515 516 makeNewEnableGroup("jj", "jj.ls"); 517 518 519 addToEnableGroup("jj", "jj.ls", getjjjj_lsenabled_widget(), "enabled"); 520 521 getjjjj_lsenabled_widget().getButton().addSelectionListener(this); 522 523 524 makeNewEnableGroup("jj", "jj.a"); 525 526 527 addToEnableGroup("jj", "jj.a", getjjjj_aenabled_widget(), "enabled"); 528 529 addToEnableGroup("jj", "jj.a", getjjjj_aonly_stack_locals_widget(), "only-stack-locals"); 530 531 getjjjj_aenabled_widget().getButton().addSelectionListener(this); 532 533 getjjjj_aonly_stack_locals_widget().getButton().addSelectionListener(this); 534 535 536 makeNewEnableGroup("jj", "jj.ule"); 537 538 539 addToEnableGroup("jj", "jj.ule", getjjjj_uleenabled_widget(), "enabled"); 540 541 getjjjj_uleenabled_widget().getButton().addSelectionListener(this); 542 543 544 makeNewEnableGroup("jj", "jj.tr"); 545 546 547 addToEnableGroup("jj", "jj.tr", getjjjj_trenabled_widget(), "enabled"); 548 549 getjjjj_trenabled_widget().getButton().addSelectionListener(this); 550 551 552 makeNewEnableGroup("jj", "jj.ulp"); 553 554 555 addToEnableGroup("jj", "jj.ulp", getjjjj_ulpenabled_widget(), "enabled"); 556 557 addToEnableGroup("jj", "jj.ulp", getjjjj_ulpunsplit_original_locals_widget(), "unsplit-original-locals"); 558 559 getjjjj_ulpenabled_widget().getButton().addSelectionListener(this); 560 561 getjjjj_ulpunsplit_original_locals_widget().getButton().addSelectionListener(this); 562 563 564 makeNewEnableGroup("jj", "jj.lns"); 565 566 567 addToEnableGroup("jj", "jj.lns", getjjjj_lnsenabled_widget(), "enabled"); 568 569 addToEnableGroup("jj", "jj.lns", getjjjj_lnsonly_stack_locals_widget(), "only-stack-locals"); 570 571 getjjjj_lnsenabled_widget().getButton().addSelectionListener(this); 572 573 getjjjj_lnsonly_stack_locals_widget().getButton().addSelectionListener(this); 574 575 576 makeNewEnableGroup("jj", "jj.cp"); 577 578 579 addToEnableGroup("jj", "jj.cp", getjjjj_cpenabled_widget(), "enabled"); 580 581 addToEnableGroup("jj", "jj.cp", getjjjj_cponly_regular_locals_widget(), "only-regular-locals"); 582 583 addToEnableGroup("jj", "jj.cp", getjjjj_cponly_stack_locals_widget(), "only-stack-locals"); 584 585 getjjjj_cpenabled_widget().getButton().addSelectionListener(this); 586 587 getjjjj_cponly_regular_locals_widget().getButton().addSelectionListener(this); 588 589 getjjjj_cponly_stack_locals_widget().getButton().addSelectionListener(this); 590 591 592 makeNewEnableGroup("jj", "jj.dae"); 593 594 595 addToEnableGroup("jj", "jj.dae", getjjjj_daeenabled_widget(), "enabled"); 596 597 addToEnableGroup("jj", "jj.dae", getjjjj_daeonly_stack_locals_widget(), "only-stack-locals"); 598 599 getjjjj_daeenabled_widget().getButton().addSelectionListener(this); 600 601 getjjjj_daeonly_stack_locals_widget().getButton().addSelectionListener(this); 602 603 604 makeNewEnableGroup("jj", "jj.cp-ule"); 605 606 607 addToEnableGroup("jj", "jj.cp-ule", getjjjj_cp_uleenabled_widget(), "enabled"); 608 609 getjjjj_cp_uleenabled_widget().getButton().addSelectionListener(this); 610 611 612 makeNewEnableGroup("jj", "jj.lp"); 613 614 615 addToEnableGroup("jj", "jj.lp", getjjjj_lpenabled_widget(), "enabled"); 616 617 addToEnableGroup("jj", "jj.lp", getjjjj_lpunsplit_original_locals_widget(), "unsplit-original-locals"); 618 619 getjjjj_lpenabled_widget().getButton().addSelectionListener(this); 620 621 getjjjj_lpunsplit_original_locals_widget().getButton().addSelectionListener(this); 622 623 624 makeNewEnableGroup("jj", "jj.ne"); 625 626 627 addToEnableGroup("jj", "jj.ne", getjjjj_neenabled_widget(), "enabled"); 628 629 getjjjj_neenabled_widget().getButton().addSelectionListener(this); 630 631 632 makeNewEnableGroup("jj", "jj.uce"); 633 634 635 addToEnableGroup("jj", "jj.uce", getjjjj_uceenabled_widget(), "enabled"); 636 637 getjjjj_uceenabled_widget().getButton().addSelectionListener(this); 638 639 640 makeNewEnableGroup("cg"); 641 642 643 addToEnableGroup("cg", getcgenabled_widget(), "enabled"); 644 645 646 addToEnableGroup("cg", getcgsafe_forname_widget(), "safe-forname"); 647 648 649 addToEnableGroup("cg", getcgsafe_newinstance_widget(), "safe-newinstance"); 650 651 652 addToEnableGroup("cg", getcgverbose_widget(), "verbose"); 653 654 655 addToEnableGroup("cg", getcgjdkver_widget(), "jdkver"); 656 657 658 addToEnableGroup("cg", getcgall_reachable_widget(), "all-reachable"); 659 660 661 addToEnableGroup("cg", getcgimplicit_entry_widget(), "implicit-entry"); 662 663 664 addToEnableGroup("cg", getcgtrim_clinit_widget(), "trim-clinit"); 665 666 667 getcgenabled_widget().getButton().addSelectionListener(this); 668 669 getcgsafe_forname_widget().getButton().addSelectionListener(this); 670 671 getcgsafe_newinstance_widget().getButton().addSelectionListener(this); 672 673 getcgverbose_widget().getButton().addSelectionListener(this); 674 675 getcgall_reachable_widget().getButton().addSelectionListener(this); 676 677 getcgimplicit_entry_widget().getButton().addSelectionListener(this); 678 679 getcgtrim_clinit_widget().getButton().addSelectionListener(this); 680 681 682 makeNewEnableGroup("cg", "cg.cha"); 683 684 685 addToEnableGroup("cg", "cg.cha", getcgcg_chaenabled_widget(), "enabled"); 686 687 addToEnableGroup("cg", "cg.cha", getcgcg_chaverbose_widget(), "verbose"); 688 689 getcgcg_chaenabled_widget().getButton().addSelectionListener(this); 690 691 getcgcg_chaverbose_widget().getButton().addSelectionListener(this); 692 693 694 makeNewEnableGroup("cg", "cg.spark"); 695 696 697 addToEnableGroup("cg", "cg.spark", getcgcg_sparkenabled_widget(), "enabled"); 698 699 getcgcg_sparkenabled_widget().getButton().addSelectionListener(this); 700 701 addToEnableGroup("cg", "cg.spark", getcgcg_sparkverbose_widget(), "verbose"); 702 703 704 addToEnableGroup("cg", "cg.spark", getcgcg_sparkignore_types_widget(), "ignore-types"); 705 706 707 addToEnableGroup("cg", "cg.spark", getcgcg_sparkforce_gc_widget(), "force-gc"); 708 709 710 addToEnableGroup("cg", "cg.spark", getcgcg_sparkpre_jimplify_widget(), "pre-jimplify"); 711 712 713 addToEnableGroup("cg", "cg.spark", getcgcg_sparkvta_widget(), "vta"); 714 715 716 addToEnableGroup("cg", "cg.spark", getcgcg_sparkrta_widget(), "rta"); 717 718 719 addToEnableGroup("cg", "cg.spark", getcgcg_sparkfield_based_widget(), "field-based"); 720 721 722 addToEnableGroup("cg", "cg.spark", getcgcg_sparktypes_for_sites_widget(), "types-for-sites"); 723 724 725 addToEnableGroup("cg", "cg.spark", getcgcg_sparkmerge_stringbuffer_widget(), "merge-stringbuffer"); 726 727 728 addToEnableGroup("cg", "cg.spark", getcgcg_sparkstring_constants_widget(), "string-constants"); 729 730 731 addToEnableGroup("cg", "cg.spark", getcgcg_sparksimulate_natives_widget(), "simulate-natives"); 732 733 734 addToEnableGroup("cg", "cg.spark", getcgcg_sparksimple_edges_bidirectional_widget(), "simple-edges-bidirectional"); 735 736 737 addToEnableGroup("cg", "cg.spark", getcgcg_sparkon_fly_cg_widget(), "on-fly-cg"); 738 739 740 addToEnableGroup("cg", "cg.spark", getcgcg_sparksimplify_offline_widget(), "simplify-offline"); 741 742 743 addToEnableGroup("cg", "cg.spark", getcgcg_sparksimplify_sccs_widget(), "simplify-sccs"); 744 745 746 addToEnableGroup("cg", "cg.spark", getcgcg_sparkignore_types_for_sccs_widget(), "ignore-types-for-sccs"); 747 748 749 addToEnableGroup("cg", "cg.spark", getcgcg_sparkpropagator_widget(), "propagator"); 750 751 752 addToEnableGroup("cg", "cg.spark", getcgcg_sparkset_impl_widget(), "set-impl"); 753 754 755 addToEnableGroup("cg", "cg.spark", getcgcg_sparkdouble_set_old_widget(), "double-set-old"); 756 757 758 addToEnableGroup("cg", "cg.spark", getcgcg_sparkdouble_set_new_widget(), "double-set-new"); 759 760 761 addToEnableGroup("cg", "cg.spark", getcgcg_sparkdump_html_widget(), "dump-html"); 762 763 764 addToEnableGroup("cg", "cg.spark", getcgcg_sparkdump_pag_widget(), "dump-pag"); 765 766 767 addToEnableGroup("cg", "cg.spark", getcgcg_sparkdump_solution_widget(), "dump-solution"); 768 769 770 addToEnableGroup("cg", "cg.spark", getcgcg_sparktopo_sort_widget(), "topo-sort"); 771 772 773 addToEnableGroup("cg", "cg.spark", getcgcg_sparkdump_types_widget(), "dump-types"); 774 775 776 addToEnableGroup("cg", "cg.spark", getcgcg_sparkclass_method_var_widget(), "class-method-var"); 777 778 779 addToEnableGroup("cg", "cg.spark", getcgcg_sparkdump_answer_widget(), "dump-answer"); 780 781 782 addToEnableGroup("cg", "cg.spark", getcgcg_sparkadd_tags_widget(), "add-tags"); 783 784 785 addToEnableGroup("cg", "cg.spark", getcgcg_sparkset_mass_widget(), "set-mass"); 786 787 788 789 makeNewEnableGroup("cg", "cg.paddle"); 790 791 792 addToEnableGroup("cg", "cg.paddle", getcgcg_paddleenabled_widget(), "enabled"); 793 794 getcgcg_paddleenabled_widget().getButton().addSelectionListener(this); 795 796 addToEnableGroup("cg", "cg.paddle", getcgcg_paddleverbose_widget(), "verbose"); 797 798 799 addToEnableGroup("cg", "cg.paddle", getcgcg_paddleconf_widget(), "conf"); 800 801 802 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlebdd_widget(), "bdd"); 803 804 805 addToEnableGroup("cg", "cg.paddle", getcgcg_paddleorder_widget(), "order"); 806 807 808 addToEnableGroup("cg", "cg.paddle", getcgcg_paddledynamic_order_widget(), "dynamic-order"); 809 810 811 addToEnableGroup("cg", "cg.paddle", getcgcg_paddleprofile_widget(), "profile"); 812 813 814 addToEnableGroup("cg", "cg.paddle", getcgcg_paddleq_widget(), "q"); 815 816 817 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlebackend_widget(), "backend"); 818 819 820 addToEnableGroup("cg", "cg.paddle", getcgcg_paddleignore_types_widget(), "ignore-types"); 821 822 823 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlepre_jimplify_widget(), "pre-jimplify"); 824 825 826 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlecontext_widget(), "context"); 827 828 829 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlek_widget(), "k"); 830 831 832 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlecontext_heap_widget(), "context-heap"); 833 834 835 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlerta_widget(), "rta"); 836 837 838 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlefield_based_widget(), "field-based"); 839 840 841 addToEnableGroup("cg", "cg.paddle", getcgcg_paddletypes_for_sites_widget(), "types-for-sites"); 842 843 844 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlemerge_stringbuffer_widget(), "merge-stringbuffer"); 845 846 847 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlestring_constants_widget(), "string-constants"); 848 849 850 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlesimulate_natives_widget(), "simulate-natives"); 851 852 853 addToEnableGroup("cg", "cg.paddle", getcgcg_paddleglobal_nodes_in_natives_widget(), "global-nodes-in-natives"); 854 855 856 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlesimple_edges_bidirectional_widget(), "simple-edges-bidirectional"); 857 858 859 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlethis_edges_widget(), "this-edges"); 860 861 862 addToEnableGroup("cg", "cg.paddle", getcgcg_paddleprecise_newinstance_widget(), "precise-newinstance"); 863 864 865 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlepropagator_widget(), "propagator"); 866 867 868 addToEnableGroup("cg", "cg.paddle", getcgcg_paddleset_impl_widget(), "set-impl"); 869 870 871 addToEnableGroup("cg", "cg.paddle", getcgcg_paddledouble_set_old_widget(), "double-set-old"); 872 873 874 addToEnableGroup("cg", "cg.paddle", getcgcg_paddledouble_set_new_widget(), "double-set-new"); 875 876 877 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlecontext_counts_widget(), "context-counts"); 878 879 880 addToEnableGroup("cg", "cg.paddle", getcgcg_paddletotal_context_counts_widget(), "total-context-counts"); 881 882 883 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlemethod_context_counts_widget(), "method-context-counts"); 884 885 886 addToEnableGroup("cg", "cg.paddle", getcgcg_paddleset_mass_widget(), "set-mass"); 887 888 889 addToEnableGroup("cg", "cg.paddle", getcgcg_paddlenumber_nodes_widget(), "number-nodes"); 890 891 892 893 makeNewEnableGroup("wstp"); 894 895 896 addToEnableGroup("wstp", getwstpenabled_widget(), "enabled"); 897 898 899 getwstpenabled_widget().getButton().addSelectionListener(this); 900 901 902 makeNewEnableGroup("wsop"); 903 904 905 addToEnableGroup("wsop", getwsopenabled_widget(), "enabled"); 906 907 908 getwsopenabled_widget().getButton().addSelectionListener(this); 909 910 911 makeNewEnableGroup("wjtp"); 912 913 914 addToEnableGroup("wjtp", getwjtpenabled_widget(), "enabled"); 915 916 917 getwjtpenabled_widget().getButton().addSelectionListener(this); 918 919 920 makeNewEnableGroup("wjop"); 921 922 923 addToEnableGroup("wjop", getwjopenabled_widget(), "enabled"); 924 925 926 getwjopenabled_widget().getButton().addSelectionListener(this); 927 928 929 makeNewEnableGroup("wjop", "wjop.smb"); 930 931 932 addToEnableGroup("wjop", "wjop.smb", getwjopwjop_smbenabled_widget(), "enabled"); 933 934 addToEnableGroup("wjop", "wjop.smb", getwjopwjop_smbinsert_null_checks_widget(), "insert-null-checks"); 935 936 addToEnableGroup("wjop", "wjop.smb", getwjopwjop_smbinsert_redundant_casts_widget(), "insert-redundant-casts"); 937 938 addToEnableGroup("wjop", "wjop.smb", getwjopwjop_smballowed_modifier_changes_widget(), "allowed-modifier-changes"); 939 940 getwjopwjop_smbenabled_widget().getButton().addSelectionListener(this); 941 942 getwjopwjop_smbinsert_null_checks_widget().getButton().addSelectionListener(this); 943 944 getwjopwjop_smbinsert_redundant_casts_widget().getButton().addSelectionListener(this); 945 946 947 makeNewEnableGroup("wjop", "wjop.si"); 948 949 950 addToEnableGroup("wjop", "wjop.si", getwjopwjop_sienabled_widget(), "enabled"); 951 952 addToEnableGroup("wjop", "wjop.si", getwjopwjop_sirerun_jb_widget(), "rerun-jb"); 953 954 addToEnableGroup("wjop", "wjop.si", getwjopwjop_siinsert_null_checks_widget(), "insert-null-checks"); 955 956 addToEnableGroup("wjop", "wjop.si", getwjopwjop_siinsert_redundant_casts_widget(), "insert-redundant-casts"); 957 958 addToEnableGroup("wjop", "wjop.si", getwjopwjop_siallowed_modifier_changes_widget(), "allowed-modifier-changes"); 959 960 addToEnableGroup("wjop", "wjop.si", getwjopwjop_siexpansion_factor_widget(), "expansion-factor"); 961 962 addToEnableGroup("wjop", "wjop.si", getwjopwjop_simax_container_size_widget(), "max-container-size"); 963 964 addToEnableGroup("wjop", "wjop.si", getwjopwjop_simax_inlinee_size_widget(), "max-inlinee-size"); 965 966 getwjopwjop_sienabled_widget().getButton().addSelectionListener(this); 967 968 getwjopwjop_sirerun_jb_widget().getButton().addSelectionListener(this); 969 970 getwjopwjop_siinsert_null_checks_widget().getButton().addSelectionListener(this); 971 972 getwjopwjop_siinsert_redundant_casts_widget().getButton().addSelectionListener(this); 973 974 975 makeNewEnableGroup("wjap"); 976 977 978 addToEnableGroup("wjap", getwjapenabled_widget(), "enabled"); 979 980 981 getwjapenabled_widget().getButton().addSelectionListener(this); 982 983 984 makeNewEnableGroup("wjap", "wjap.ra"); 985 986 987 addToEnableGroup("wjap", "wjap.ra", getwjapwjap_raenabled_widget(), "enabled"); 988 989 getwjapwjap_raenabled_widget().getButton().addSelectionListener(this); 990 991 992 makeNewEnableGroup("wjap", "wjap.umt"); 993 994 995 addToEnableGroup("wjap", "wjap.umt", getwjapwjap_umtenabled_widget(), "enabled"); 996 997 getwjapwjap_umtenabled_widget().getButton().addSelectionListener(this); 998 999 1000 makeNewEnableGroup("wjap", "wjap.uft"); 1001 1002 1003 addToEnableGroup("wjap", "wjap.uft", getwjapwjap_uftenabled_widget(), "enabled"); 1004 1005 getwjapwjap_uftenabled_widget().getButton().addSelectionListener(this); 1006 1007 1008 makeNewEnableGroup("wjap", "wjap.tqt"); 1009 1010 1011 addToEnableGroup("wjap", "wjap.tqt", getwjapwjap_tqtenabled_widget(), "enabled"); 1012 1013 getwjapwjap_tqtenabled_widget().getButton().addSelectionListener(this); 1014 1015 1016 makeNewEnableGroup("wjap", "wjap.cgg"); 1017 1018 1019 addToEnableGroup("wjap", "wjap.cgg", getwjapwjap_cggenabled_widget(), "enabled"); 1020 1021 addToEnableGroup("wjap", "wjap.cgg", getwjapwjap_cggshow_lib_meths_widget(), "show-lib-meths"); 1022 1023 getwjapwjap_cggenabled_widget().getButton().addSelectionListener(this); 1024 1025 getwjapwjap_cggshow_lib_meths_widget().getButton().addSelectionListener(this); 1026 1027 1028 makeNewEnableGroup("wjap", "wjap.purity"); 1029 1030 1031 addToEnableGroup("wjap", "wjap.purity", getwjapwjap_purityenabled_widget(), "enabled"); 1032 1033 addToEnableGroup("wjap", "wjap.purity", getwjapwjap_puritydump_summaries_widget(), "dump-summaries"); 1034 1035 addToEnableGroup("wjap", "wjap.purity", getwjapwjap_puritydump_cg_widget(), "dump-cg"); 1036 1037 addToEnableGroup("wjap", "wjap.purity", getwjapwjap_puritydump_intra_widget(), "dump-intra"); 1038 1039 addToEnableGroup("wjap", "wjap.purity", getwjapwjap_purityprint_widget(), "print"); 1040 1041 addToEnableGroup("wjap", "wjap.purity", getwjapwjap_purityverbose_widget(), "verbose"); 1042 1043 getwjapwjap_purityenabled_widget().getButton().addSelectionListener(this); 1044 1045 getwjapwjap_puritydump_summaries_widget().getButton().addSelectionListener(this); 1046 1047 getwjapwjap_puritydump_cg_widget().getButton().addSelectionListener(this); 1048 1049 getwjapwjap_puritydump_intra_widget().getButton().addSelectionListener(this); 1050 1051 getwjapwjap_purityprint_widget().getButton().addSelectionListener(this); 1052 1053 getwjapwjap_purityverbose_widget().getButton().addSelectionListener(this); 1054 1055 1056 makeNewEnableGroup("shimple"); 1057 1058 1059 addToEnableGroup("shimple", getshimpleenabled_widget(), "enabled"); 1060 1061 1062 addToEnableGroup("shimple", getshimplenode_elim_opt_widget(), "node-elim-opt"); 1063 1064 1065 addToEnableGroup("shimple", getshimplestandard_local_names_widget(), "standard-local-names"); 1066 1067 1068 addToEnableGroup("shimple", getshimpleextended_widget(), "extended"); 1069 1070 1071 addToEnableGroup("shimple", getshimpledebug_widget(), "debug"); 1072 1073 1074 getshimpleenabled_widget().getButton().addSelectionListener(this); 1075 1076 getshimplenode_elim_opt_widget().getButton().addSelectionListener(this); 1077 1078 getshimplestandard_local_names_widget().getButton().addSelectionListener(this); 1079 1080 getshimpleextended_widget().getButton().addSelectionListener(this); 1081 1082 getshimpledebug_widget().getButton().addSelectionListener(this); 1083 1084 1085 makeNewEnableGroup("stp"); 1086 1087 1088 addToEnableGroup("stp", getstpenabled_widget(), "enabled"); 1089 1090 1091 getstpenabled_widget().getButton().addSelectionListener(this); 1092 1093 1094 makeNewEnableGroup("sop"); 1095 1096 1097 addToEnableGroup("sop", getsopenabled_widget(), "enabled"); 1098 1099 1100 getsopenabled_widget().getButton().addSelectionListener(this); 1101 1102 1103 makeNewEnableGroup("sop", "sop.cpf"); 1104 1105 1106 addToEnableGroup("sop", "sop.cpf", getsopsop_cpfenabled_widget(), "enabled"); 1107 1108 addToEnableGroup("sop", "sop.cpf", getsopsop_cpfprune_cfg_widget(), "prune-cfg"); 1109 1110 getsopsop_cpfenabled_widget().getButton().addSelectionListener(this); 1111 1112 getsopsop_cpfprune_cfg_widget().getButton().addSelectionListener(this); 1113 1114 1115 makeNewEnableGroup("jtp"); 1116 1117 1118 addToEnableGroup("jtp", getjtpenabled_widget(), "enabled"); 1119 1120 1121 getjtpenabled_widget().getButton().addSelectionListener(this); 1122 1123 1124 makeNewEnableGroup("jop"); 1125 1126 1127 addToEnableGroup("jop", getjopenabled_widget(), "enabled"); 1128 1129 1130 getjopenabled_widget().getButton().addSelectionListener(this); 1131 1132 1133 makeNewEnableGroup("jop", "jop.cse"); 1134 1135 1136 addToEnableGroup("jop", "jop.cse", getjopjop_cseenabled_widget(), "enabled"); 1137 1138 addToEnableGroup("jop", "jop.cse", getjopjop_csenaive_side_effect_widget(), "naive-side-effect"); 1139 1140 getjopjop_cseenabled_widget().getButton().addSelectionListener(this); 1141 1142 getjopjop_csenaive_side_effect_widget().getButton().addSelectionListener(this); 1143 1144 1145 makeNewEnableGroup("jop", "jop.bcm"); 1146 1147 1148 addToEnableGroup("jop", "jop.bcm", getjopjop_bcmenabled_widget(), "enabled"); 1149 1150 addToEnableGroup("jop", "jop.bcm", getjopjop_bcmnaive_side_effect_widget(), "naive-side-effect"); 1151 1152 getjopjop_bcmenabled_widget().getButton().addSelectionListener(this); 1153 1154 getjopjop_bcmnaive_side_effect_widget().getButton().addSelectionListener(this); 1155 1156 1157 makeNewEnableGroup("jop", "jop.lcm"); 1158 1159 1160 addToEnableGroup("jop", "jop.lcm", getjopjop_lcmenabled_widget(), "enabled"); 1161 1162 addToEnableGroup("jop", "jop.lcm", getjopjop_lcmsafety_widget(), "safety"); 1163 1164 addToEnableGroup("jop", "jop.lcm", getjopjop_lcmunroll_widget(), "unroll"); 1165 1166 addToEnableGroup("jop", "jop.lcm", getjopjop_lcmnaive_side_effect_widget(), "naive-side-effect"); 1167 1168 getjopjop_lcmenabled_widget().getButton().addSelectionListener(this); 1169 1170 getjopjop_lcmunroll_widget().getButton().addSelectionListener(this); 1171 1172 getjopjop_lcmnaive_side_effect_widget().getButton().addSelectionListener(this); 1173 1174 1175 makeNewEnableGroup("jop", "jop.cp"); 1176 1177 1178 addToEnableGroup("jop", "jop.cp", getjopjop_cpenabled_widget(), "enabled"); 1179 1180 addToEnableGroup("jop", "jop.cp", getjopjop_cponly_regular_locals_widget(), "only-regular-locals"); 1181 1182 addToEnableGroup("jop", "jop.cp", getjopjop_cponly_stack_locals_widget(), "only-stack-locals"); 1183 1184 getjopjop_cpenabled_widget().getButton().addSelectionListener(this); 1185 1186 getjopjop_cponly_regular_locals_widget().getButton().addSelectionListener(this); 1187 1188 getjopjop_cponly_stack_locals_widget().getButton().addSelectionListener(this); 1189 1190 1191 makeNewEnableGroup("jop", "jop.cpf"); 1192 1193 1194 addToEnableGroup("jop", "jop.cpf", getjopjop_cpfenabled_widget(), "enabled"); 1195 1196 getjopjop_cpfenabled_widget().getButton().addSelectionListener(this); 1197 1198 1199 makeNewEnableGroup("jop", "jop.cbf"); 1200 1201 1202 addToEnableGroup("jop", "jop.cbf", getjopjop_cbfenabled_widget(), "enabled"); 1203 1204 getjopjop_cbfenabled_widget().getButton().addSelectionListener(this); 1205 1206 1207 makeNewEnableGroup("jop", "jop.dae"); 1208 1209 1210 addToEnableGroup("jop", "jop.dae", getjopjop_daeenabled_widget(), "enabled"); 1211 1212 addToEnableGroup("jop", "jop.dae", getjopjop_daeonly_tag_widget(), "only-tag"); 1213 1214 addToEnableGroup("jop", "jop.dae", getjopjop_daeonly_stack_locals_widget(), "only-stack-locals"); 1215 1216 getjopjop_daeenabled_widget().getButton().addSelectionListener(this); 1217 1218 getjopjop_daeonly_tag_widget().getButton().addSelectionListener(this); 1219 1220 getjopjop_daeonly_stack_locals_widget().getButton().addSelectionListener(this); 1221 1222 1223 makeNewEnableGroup("jop", "jop.uce1"); 1224 1225 1226 addToEnableGroup("jop", "jop.uce1", getjopjop_uce1enabled_widget(), "enabled"); 1227 1228 addToEnableGroup("jop", "jop.uce1", getjopjop_uce1remove_unreachable_traps_widget(), "remove-unreachable-traps"); 1229 1230 getjopjop_uce1enabled_widget().getButton().addSelectionListener(this); 1231 1232 getjopjop_uce1remove_unreachable_traps_widget().getButton().addSelectionListener(this); 1233 1234 1235 makeNewEnableGroup("jop", "jop.ubf1"); 1236 1237 1238 addToEnableGroup("jop", "jop.ubf1", getjopjop_ubf1enabled_widget(), "enabled"); 1239 1240 getjopjop_ubf1enabled_widget().getButton().addSelectionListener(this); 1241 1242 1243 makeNewEnableGroup("jop", "jop.uce2"); 1244 1245 1246 addToEnableGroup("jop", "jop.uce2", getjopjop_uce2enabled_widget(), "enabled"); 1247 1248 addToEnableGroup("jop", "jop.uce2", getjopjop_uce2remove_unreachable_traps_widget(), "remove-unreachable-traps"); 1249 1250 getjopjop_uce2enabled_widget().getButton().addSelectionListener(this); 1251 1252 getjopjop_uce2remove_unreachable_traps_widget().getButton().addSelectionListener(this); 1253 1254 1255 makeNewEnableGroup("jop", "jop.ubf2"); 1256 1257 1258 addToEnableGroup("jop", "jop.ubf2", getjopjop_ubf2enabled_widget(), "enabled"); 1259 1260 getjopjop_ubf2enabled_widget().getButton().addSelectionListener(this); 1261 1262 1263 makeNewEnableGroup("jop", "jop.ule"); 1264 1265 1266 addToEnableGroup("jop", "jop.ule", getjopjop_uleenabled_widget(), "enabled"); 1267 1268 getjopjop_uleenabled_widget().getButton().addSelectionListener(this); 1269 1270 1271 makeNewEnableGroup("jap"); 1272 1273 1274 addToEnableGroup("jap", getjapenabled_widget(), "enabled"); 1275 1276 1277 getjapenabled_widget().getButton().addSelectionListener(this); 1278 1279 1280 makeNewEnableGroup("jap", "jap.npc"); 1281 1282 1283 addToEnableGroup("jap", "jap.npc", getjapjap_npcenabled_widget(), "enabled"); 1284 1285 addToEnableGroup("jap", "jap.npc", getjapjap_npconly_array_ref_widget(), "only-array-ref"); 1286 1287 addToEnableGroup("jap", "jap.npc", getjapjap_npcprofiling_widget(), "profiling"); 1288 1289 getjapjap_npcenabled_widget().getButton().addSelectionListener(this); 1290 1291 getjapjap_npconly_array_ref_widget().getButton().addSelectionListener(this); 1292 1293 getjapjap_npcprofiling_widget().getButton().addSelectionListener(this); 1294 1295 1296 makeNewEnableGroup("jap", "jap.npcolorer"); 1297 1298 1299 addToEnableGroup("jap", "jap.npcolorer", getjapjap_npcolorerenabled_widget(), "enabled"); 1300 1301 getjapjap_npcolorerenabled_widget().getButton().addSelectionListener(this); 1302 1303 1304 makeNewEnableGroup("jap", "jap.abc"); 1305 1306 1307 addToEnableGroup("jap", "jap.abc", getjapjap_abcenabled_widget(), "enabled"); 1308 1309 addToEnableGroup("jap", "jap.abc", getjapjap_abcwith_all_widget(), "with-all"); 1310 1311 addToEnableGroup("jap", "jap.abc", getjapjap_abcwith_cse_widget(), "with-cse"); 1312 1313 addToEnableGroup("jap", "jap.abc", getjapjap_abcwith_arrayref_widget(), "with-arrayref"); 1314 1315 addToEnableGroup("jap", "jap.abc", getjapjap_abcwith_fieldref_widget(), "with-fieldref"); 1316 1317 addToEnableGroup("jap", "jap.abc", getjapjap_abcwith_classfield_widget(), "with-classfield"); 1318 1319 addToEnableGroup("jap", "jap.abc", getjapjap_abcwith_rectarray_widget(), "with-rectarray"); 1320 1321 addToEnableGroup("jap", "jap.abc", getjapjap_abcprofiling_widget(), "profiling"); 1322 1323 addToEnableGroup("jap", "jap.abc", getjapjap_abcadd_color_tags_widget(), "add-color-tags"); 1324 1325 getjapjap_abcenabled_widget().getButton().addSelectionListener(this); 1326 1327 getjapjap_abcwith_all_widget().getButton().addSelectionListener(this); 1328 1329 getjapjap_abcwith_cse_widget().getButton().addSelectionListener(this); 1330 1331 getjapjap_abcwith_arrayref_widget().getButton().addSelectionListener(this); 1332 1333 getjapjap_abcwith_fieldref_widget().getButton().addSelectionListener(this); 1334 1335 getjapjap_abcwith_classfield_widget().getButton().addSelectionListener(this); 1336 1337 getjapjap_abcwith_rectarray_widget().getButton().addSelectionListener(this); 1338 1339 getjapjap_abcprofiling_widget().getButton().addSelectionListener(this); 1340 1341 getjapjap_abcadd_color_tags_widget().getButton().addSelectionListener(this); 1342 1343 1344 makeNewEnableGroup("jap", "jap.profiling"); 1345 1346 1347 addToEnableGroup("jap", "jap.profiling", getjapjap_profilingenabled_widget(), "enabled"); 1348 1349 addToEnableGroup("jap", "jap.profiling", getjapjap_profilingnotmainentry_widget(), "notmainentry"); 1350 1351 getjapjap_profilingenabled_widget().getButton().addSelectionListener(this); 1352 1353 getjapjap_profilingnotmainentry_widget().getButton().addSelectionListener(this); 1354 1355 1356 makeNewEnableGroup("jap", "jap.sea"); 1357 1358 1359 addToEnableGroup("jap", "jap.sea", getjapjap_seaenabled_widget(), "enabled"); 1360 1361 addToEnableGroup("jap", "jap.sea", getjapjap_seanaive_widget(), "naive"); 1362 1363 getjapjap_seaenabled_widget().getButton().addSelectionListener(this); 1364 1365 getjapjap_seanaive_widget().getButton().addSelectionListener(this); 1366 1367 1368 makeNewEnableGroup("jap", "jap.fieldrw"); 1369 1370 1371 addToEnableGroup("jap", "jap.fieldrw", getjapjap_fieldrwenabled_widget(), "enabled"); 1372 1373 addToEnableGroup("jap", "jap.fieldrw", getjapjap_fieldrwthreshold_widget(), "threshold"); 1374 1375 getjapjap_fieldrwenabled_widget().getButton().addSelectionListener(this); 1376 1377 1378 makeNewEnableGroup("jap", "jap.cgtagger"); 1379 1380 1381 addToEnableGroup("jap", "jap.cgtagger", getjapjap_cgtaggerenabled_widget(), "enabled"); 1382 1383 getjapjap_cgtaggerenabled_widget().getButton().addSelectionListener(this); 1384 1385 1386 makeNewEnableGroup("jap", "jap.parity"); 1387 1388 1389 addToEnableGroup("jap", "jap.parity", getjapjap_parityenabled_widget(), "enabled"); 1390 1391 getjapjap_parityenabled_widget().getButton().addSelectionListener(this); 1392 1393 1394 makeNewEnableGroup("jap", "jap.pat"); 1395 1396 1397 addToEnableGroup("jap", "jap.pat", getjapjap_patenabled_widget(), "enabled"); 1398 1399 getjapjap_patenabled_widget().getButton().addSelectionListener(this); 1400 1401 1402 makeNewEnableGroup("jap", "jap.lvtagger"); 1403 1404 1405 addToEnableGroup("jap", "jap.lvtagger", getjapjap_lvtaggerenabled_widget(), "enabled"); 1406 1407 getjapjap_lvtaggerenabled_widget().getButton().addSelectionListener(this); 1408 1409 1410 makeNewEnableGroup("jap", "jap.rdtagger"); 1411 1412 1413 addToEnableGroup("jap", "jap.rdtagger", getjapjap_rdtaggerenabled_widget(), "enabled"); 1414 1415 getjapjap_rdtaggerenabled_widget().getButton().addSelectionListener(this); 1416 1417 1418 makeNewEnableGroup("jap", "jap.che"); 1419 1420 1421 addToEnableGroup("jap", "jap.che", getjapjap_cheenabled_widget(), "enabled"); 1422 1423 getjapjap_cheenabled_widget().getButton().addSelectionListener(this); 1424 1425 1426 makeNewEnableGroup("jap", "jap.umt"); 1427 1428 1429 addToEnableGroup("jap", "jap.umt", getjapjap_umtenabled_widget(), "enabled"); 1430 1431 getjapjap_umtenabled_widget().getButton().addSelectionListener(this); 1432 1433 1434 makeNewEnableGroup("jap", "jap.lit"); 1435 1436 1437 addToEnableGroup("jap", "jap.lit", getjapjap_litenabled_widget(), "enabled"); 1438 1439 getjapjap_litenabled_widget().getButton().addSelectionListener(this); 1440 1441 1442 makeNewEnableGroup("jap", "jap.aet"); 1443 1444 1445 addToEnableGroup("jap", "jap.aet", getjapjap_aetenabled_widget(), "enabled"); 1446 1447 addToEnableGroup("jap", "jap.aet", getjapjap_aetkind_widget(), "kind"); 1448 1449 getjapjap_aetenabled_widget().getButton().addSelectionListener(this); 1450 1451 1452 makeNewEnableGroup("jap", "jap.dmt"); 1453 1454 1455 addToEnableGroup("jap", "jap.dmt", getjapjap_dmtenabled_widget(), "enabled"); 1456 1457 getjapjap_dmtenabled_widget().getButton().addSelectionListener(this); 1458 1459 1460 makeNewEnableGroup("gb"); 1461 1462 1463 addToEnableGroup("gb", getgbenabled_widget(), "enabled"); 1464 1465 1466 getgbenabled_widget().getButton().addSelectionListener(this); 1467 1468 1469 makeNewEnableGroup("gb", "gb.a1"); 1470 1471 1472 addToEnableGroup("gb", "gb.a1", getgbgb_a1enabled_widget(), "enabled"); 1473 1474 addToEnableGroup("gb", "gb.a1", getgbgb_a1only_stack_locals_widget(), "only-stack-locals"); 1475 1476 getgbgb_a1enabled_widget().getButton().addSelectionListener(this); 1477 1478 getgbgb_a1only_stack_locals_widget().getButton().addSelectionListener(this); 1479 1480 1481 makeNewEnableGroup("gb", "gb.cf"); 1482 1483 1484 addToEnableGroup("gb", "gb.cf", getgbgb_cfenabled_widget(), "enabled"); 1485 1486 getgbgb_cfenabled_widget().getButton().addSelectionListener(this); 1487 1488 1489 makeNewEnableGroup("gb", "gb.a2"); 1490 1491 1492 addToEnableGroup("gb", "gb.a2", getgbgb_a2enabled_widget(), "enabled"); 1493 1494 addToEnableGroup("gb", "gb.a2", getgbgb_a2only_stack_locals_widget(), "only-stack-locals"); 1495 1496 getgbgb_a2enabled_widget().getButton().addSelectionListener(this); 1497 1498 getgbgb_a2only_stack_locals_widget().getButton().addSelectionListener(this); 1499 1500 1501 makeNewEnableGroup("gb", "gb.ule"); 1502 1503 1504 addToEnableGroup("gb", "gb.ule", getgbgb_uleenabled_widget(), "enabled"); 1505 1506 getgbgb_uleenabled_widget().getButton().addSelectionListener(this); 1507 1508 1509 makeNewEnableGroup("gop"); 1510 1511 1512 addToEnableGroup("gop", getgopenabled_widget(), "enabled"); 1513 1514 1515 getgopenabled_widget().getButton().addSelectionListener(this); 1516 1517 1518 makeNewEnableGroup("bb"); 1519 1520 1521 addToEnableGroup("bb", getbbenabled_widget(), "enabled"); 1522 1523 1524 getbbenabled_widget().getButton().addSelectionListener(this); 1525 1526 1527 makeNewEnableGroup("bb", "bb.lso"); 1528 1529 1530 addToEnableGroup("bb", "bb.lso", getbbbb_lsoenabled_widget(), "enabled"); 1531 1532 addToEnableGroup("bb", "bb.lso", getbbbb_lsodebug_widget(), "debug"); 1533 1534 addToEnableGroup("bb", "bb.lso", getbbbb_lsointer_widget(), "inter"); 1535 1536 addToEnableGroup("bb", "bb.lso", getbbbb_lsosl_widget(), "sl"); 1537 1538 addToEnableGroup("bb", "bb.lso", getbbbb_lsosl2_widget(), "sl2"); 1539 1540 addToEnableGroup("bb", "bb.lso", getbbbb_lsosll_widget(), "sll"); 1541 1542 addToEnableGroup("bb", "bb.lso", getbbbb_lsosll2_widget(), "sll2"); 1543 1544 getbbbb_lsoenabled_widget().getButton().addSelectionListener(this); 1545 1546 getbbbb_lsodebug_widget().getButton().addSelectionListener(this); 1547 1548 getbbbb_lsointer_widget().getButton().addSelectionListener(this); 1549 1550 getbbbb_lsosl_widget().getButton().addSelectionListener(this); 1551 1552 getbbbb_lsosl2_widget().getButton().addSelectionListener(this); 1553 1554 getbbbb_lsosll_widget().getButton().addSelectionListener(this); 1555 1556 getbbbb_lsosll2_widget().getButton().addSelectionListener(this); 1557 1558 1559 makeNewEnableGroup("bb", "bb.pho"); 1560 1561 1562 addToEnableGroup("bb", "bb.pho", getbbbb_phoenabled_widget(), "enabled"); 1563 1564 getbbbb_phoenabled_widget().getButton().addSelectionListener(this); 1565 1566 1567 makeNewEnableGroup("bb", "bb.ule"); 1568 1569 1570 addToEnableGroup("bb", "bb.ule", getbbbb_uleenabled_widget(), "enabled"); 1571 1572 getbbbb_uleenabled_widget().getButton().addSelectionListener(this); 1573 1574 1575 makeNewEnableGroup("bb", "bb.lp"); 1576 1577 1578 addToEnableGroup("bb", "bb.lp", getbbbb_lpenabled_widget(), "enabled"); 1579 1580 addToEnableGroup("bb", "bb.lp", getbbbb_lpunsplit_original_locals_widget(), "unsplit-original-locals"); 1581 1582 getbbbb_lpenabled_widget().getButton().addSelectionListener(this); 1583 1584 getbbbb_lpunsplit_original_locals_widget().getButton().addSelectionListener(this); 1585 1586 1587 makeNewEnableGroup("bop"); 1588 1589 1590 addToEnableGroup("bop", getbopenabled_widget(), "enabled"); 1591 1592 1593 getbopenabled_widget().getButton().addSelectionListener(this); 1594 1595 1596 makeNewEnableGroup("tag"); 1597 1598 1599 addToEnableGroup("tag", gettagenabled_widget(), "enabled"); 1600 1601 1602 gettagenabled_widget().getButton().addSelectionListener(this); 1603 1604 1605 makeNewEnableGroup("tag", "tag.ln"); 1606 1607 1608 addToEnableGroup("tag", "tag.ln", gettagtag_lnenabled_widget(), "enabled"); 1609 1610 gettagtag_lnenabled_widget().getButton().addSelectionListener(this); 1611 1612 1613 makeNewEnableGroup("tag", "tag.an"); 1614 1615 1616 addToEnableGroup("tag", "tag.an", gettagtag_anenabled_widget(), "enabled"); 1617 1618 gettagtag_anenabled_widget().getButton().addSelectionListener(this); 1619 1620 1621 makeNewEnableGroup("tag", "tag.dep"); 1622 1623 1624 addToEnableGroup("tag", "tag.dep", gettagtag_depenabled_widget(), "enabled"); 1625 1626 gettagtag_depenabled_widget().getButton().addSelectionListener(this); 1627 1628 1629 makeNewEnableGroup("tag", "tag.fieldrw"); 1630 1631 1632 addToEnableGroup("tag", "tag.fieldrw", gettagtag_fieldrwenabled_widget(), "enabled"); 1633 1634 gettagtag_fieldrwenabled_widget().getButton().addSelectionListener(this); 1635 1636 1637 makeNewEnableGroup("db"); 1638 1639 1640 addToEnableGroup("db", getdbenabled_widget(), "enabled"); 1641 1642 1643 getdbenabled_widget().getButton().addSelectionListener(this); 1644 1645 1646 makeNewEnableGroup("db", "db.transformations"); 1647 1648 1649 addToEnableGroup("db", "db.transformations", getdbdb_transformationsenabled_widget(), "enabled"); 1650 1651 getdbdb_transformationsenabled_widget().getButton().addSelectionListener(this); 1652 1653 1654 makeNewEnableGroup("db", "db.renamer"); 1655 1656 1657 addToEnableGroup("db", "db.renamer", getdbdb_renamerenabled_widget(), "enabled"); 1658 1659 addToEnableGroup("db", "db.renamer", getdbdb_renamerremove_fully_qualified_widget(), "remove-fully-qualified"); 1660 1661 getdbdb_renamerenabled_widget().getButton().addSelectionListener(this); 1662 1663 getdbdb_renamerremove_fully_qualified_widget().getButton().addSelectionListener(this); 1664 1665 1666 makeNewEnableGroup("db", "db.deobfuscate"); 1667 1668 1669 addToEnableGroup("db", "db.deobfuscate", getdbdb_deobfuscateenabled_widget(), "enabled"); 1670 1671 getdbdb_deobfuscateenabled_widget().getButton().addSelectionListener(this); 1672 1673 1674 makeNewEnableGroup("db", "db.force-recompile"); 1675 1676 1677 addToEnableGroup("db", "db.force-recompile", getdbdb_force_recompileenabled_widget(), "enabled"); 1678 1679 getdbdb_force_recompileenabled_widget().getButton().addSelectionListener(this); 1680 1681 1682 updateAllEnableGroups(); 1683 } 1684 1685 public void widgetSelected(SelectionEvent e){ 1686 handleWidgetSelected(e); 1687 } 1688 1689 public void widgetDefaultSelected(SelectionEvent e){ 1690 } 1691 1692 1695 protected void okPressed() { 1696 createNewConfig(); 1697 super.okPressed(); 1698 } 1699 1700 private void createNewConfig() { 1701 1702 setConfig(new HashMap()); 1703 1704 boolean boolRes = false; 1705 String stringRes = ""; 1706 boolean defBoolRes = false; 1707 String defStringRes = ""; 1708 StringTokenizer listOptTokens; 1709 String nextListToken; 1710 1711 1712 boolRes = getGeneral_Optionshelp_widget().getButton().getSelection(); 1713 1714 1715 defBoolRes = false; 1716 1717 1718 if (boolRes != defBoolRes) { 1719 getConfig().put(getGeneral_Optionshelp_widget().getAlias(), new Boolean (boolRes)); 1720 } 1721 1722 boolRes = getGeneral_Optionsphase_list_widget().getButton().getSelection(); 1723 1724 1725 defBoolRes = false; 1726 1727 1728 if (boolRes != defBoolRes) { 1729 getConfig().put(getGeneral_Optionsphase_list_widget().getAlias(), new Boolean (boolRes)); 1730 } 1731 1732 boolRes = getGeneral_Optionsversion_widget().getButton().getSelection(); 1733 1734 1735 defBoolRes = false; 1736 1737 1738 if (boolRes != defBoolRes) { 1739 getConfig().put(getGeneral_Optionsversion_widget().getAlias(), new Boolean (boolRes)); 1740 } 1741 1742 boolRes = getGeneral_Optionsverbose_widget().getButton().getSelection(); 1743 1744 1745 defBoolRes = false; 1746 1747 1748 if (boolRes != defBoolRes) { 1749 getConfig().put(getGeneral_Optionsverbose_widget().getAlias(), new Boolean (boolRes)); 1750 } 1751 1752 boolRes = getGeneral_Optionsinteractive_mode_widget().getButton().getSelection(); 1753 1754 1755 defBoolRes = false; 1756 1757 1758 if (boolRes != defBoolRes) { 1759 getConfig().put(getGeneral_Optionsinteractive_mode_widget().getAlias(), new Boolean (boolRes)); 1760 } 1761 1762 boolRes = getGeneral_Optionsapp_widget().getButton().getSelection(); 1763 1764 1765 defBoolRes = false; 1766 1767 1768 if (boolRes != defBoolRes) { 1769 getConfig().put(getGeneral_Optionsapp_widget().getAlias(), new Boolean (boolRes)); 1770 } 1771 1772 boolRes = getGeneral_Optionswhole_program_widget().getButton().getSelection(); 1773 1774 1775 defBoolRes = false; 1776 1777 1778 if (boolRes != defBoolRes) { 1779 getConfig().put(getGeneral_Optionswhole_program_widget().getAlias(), new Boolean (boolRes)); 1780 } 1781 1782 boolRes = getGeneral_Optionswhole_shimple_widget().getButton().getSelection(); 1783 1784 1785 defBoolRes = false; 1786 1787 1788 if (boolRes != defBoolRes) { 1789 getConfig().put(getGeneral_Optionswhole_shimple_widget().getAlias(), new Boolean (boolRes)); 1790 } 1791 1792 boolRes = getGeneral_Optionsvalidate_widget().getButton().getSelection(); 1793 1794 1795 defBoolRes = false; 1796 1797 1798 if (boolRes != defBoolRes) { 1799 getConfig().put(getGeneral_Optionsvalidate_widget().getAlias(), new Boolean (boolRes)); 1800 } 1801 1802 boolRes = getGeneral_Optionsdebug_widget().getButton().getSelection(); 1803 1804 1805 defBoolRes = false; 1806 1807 1808 if (boolRes != defBoolRes) { 1809 getConfig().put(getGeneral_Optionsdebug_widget().getAlias(), new Boolean (boolRes)); 1810 } 1811 1812 boolRes = getGeneral_Optionsdebug_resolver_widget().getButton().getSelection(); 1813 1814 1815 defBoolRes = false; 1816 1817 1818 if (boolRes != defBoolRes) { 1819 getConfig().put(getGeneral_Optionsdebug_resolver_widget().getAlias(), new Boolean (boolRes)); 1820 } 1821 1822 stringRes = getGeneral_Optionsphase_help_widget().getText().getText(); 1823 1824 defStringRes = ""; 1825 1826 1827 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 1828 getConfig().put(getGeneral_Optionsphase_help_widget().getAlias(), stringRes); 1829 } 1830 1831 boolRes = getInput_Optionsast_metrics_widget().getButton().getSelection(); 1832 1833 1834 defBoolRes = false; 1835 1836 1837 if (boolRes != defBoolRes) { 1838 getConfig().put(getInput_Optionsast_metrics_widget().getAlias(), new Boolean (boolRes)); 1839 } 1840 1841 boolRes = getInput_Optionsfull_resolver_widget().getButton().getSelection(); 1842 1843 1844 defBoolRes = false; 1845 1846 1847 if (boolRes != defBoolRes) { 1848 getConfig().put(getInput_Optionsfull_resolver_widget().getAlias(), new Boolean (boolRes)); 1849 } 1850 1851 boolRes = getInput_Optionsallow_phantom_refs_widget().getButton().getSelection(); 1852 1853 1854 defBoolRes = false; 1855 1856 1857 if (boolRes != defBoolRes) { 1858 getConfig().put(getInput_Optionsallow_phantom_refs_widget().getAlias(), new Boolean (boolRes)); 1859 } 1860 1861 boolRes = getInput_Optionsuse_old_type_assigner_widget().getButton().getSelection(); 1862 1863 1864 defBoolRes = false; 1865 1866 1867 if (boolRes != defBoolRes) { 1868 getConfig().put(getInput_Optionsuse_old_type_assigner_widget().getAlias(), new Boolean (boolRes)); 1869 } 1870 1871 stringRes = getInput_Optionssoot_classpath_widget().getText().getText(); 1872 1873 defStringRes = ""; 1874 1875 1876 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 1877 getConfig().put(getInput_Optionssoot_classpath_widget().getAlias(), stringRes); 1878 } 1879 1880 stringRes = getInput_Optionsprocess_dir_widget().getText().getText(); 1881 1882 defStringRes = ""; 1883 1884 1885 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 1886 getConfig().put(getInput_Optionsprocess_dir_widget().getAlias(), stringRes); 1887 } 1888 1889 stringRes = getInput_Optionsmain_class_widget().getText().getText(); 1890 1891 defStringRes = ""; 1892 1893 1894 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 1895 getConfig().put(getInput_Optionsmain_class_widget().getAlias(), stringRes); 1896 } 1897 1898 stringRes = getInput_Optionssrc_prec_widget().getSelectedAlias(); 1899 1900 1901 defStringRes = "c"; 1902 1903 1904 if (!stringRes.equals(defStringRes)) { 1905 getConfig().put(getInput_Optionssrc_prec_widget().getAlias(), stringRes); 1906 } 1907 1908 boolRes = getOutput_Optionsoutput_jar_widget().getButton().getSelection(); 1909 1910 1911 defBoolRes = false; 1912 1913 1914 if (boolRes != defBoolRes) { 1915 getConfig().put(getOutput_Optionsoutput_jar_widget().getAlias(), new Boolean (boolRes)); 1916 } 1917 1918 boolRes = getOutput_Optionsxml_attributes_widget().getButton().getSelection(); 1919 1920 1921 defBoolRes = false; 1922 1923 1924 if (boolRes != defBoolRes) { 1925 getConfig().put(getOutput_Optionsxml_attributes_widget().getAlias(), new Boolean (boolRes)); 1926 } 1927 1928 boolRes = getOutput_Optionsprint_tags_in_output_widget().getButton().getSelection(); 1929 1930 1931 defBoolRes = false; 1932 1933 1934 if (boolRes != defBoolRes) { 1935 getConfig().put(getOutput_Optionsprint_tags_in_output_widget().getAlias(), new Boolean (boolRes)); 1936 } 1937 1938 boolRes = getOutput_Optionsno_output_source_file_attribute_widget().getButton().getSelection(); 1939 1940 1941 defBoolRes = false; 1942 1943 1944 if (boolRes != defBoolRes) { 1945 getConfig().put(getOutput_Optionsno_output_source_file_attribute_widget().getAlias(), new Boolean (boolRes)); 1946 } 1947 1948 boolRes = getOutput_Optionsno_output_inner_classes_attribute_widget().getButton().getSelection(); 1949 1950 1951 defBoolRes = false; 1952 1953 1954 if (boolRes != defBoolRes) { 1955 getConfig().put(getOutput_Optionsno_output_inner_classes_attribute_widget().getAlias(), new Boolean (boolRes)); 1956 } 1957 1958 boolRes = getOutput_Optionsshow_exception_dests_widget().getButton().getSelection(); 1959 1960 1961 defBoolRes = true; 1962 1963 1964 if (boolRes != defBoolRes) { 1965 getConfig().put(getOutput_Optionsshow_exception_dests_widget().getAlias(), new Boolean (boolRes)); 1966 } 1967 1968 boolRes = getOutput_Optionsgzip_widget().getButton().getSelection(); 1969 1970 1971 defBoolRes = false; 1972 1973 1974 if (boolRes != defBoolRes) { 1975 getConfig().put(getOutput_Optionsgzip_widget().getAlias(), new Boolean (boolRes)); 1976 } 1977 1978 stringRes = getOutput_Optionsoutput_dir_widget().getText().getText(); 1979 1980 defStringRes = "./sootOutput"; 1981 1982 1983 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 1984 getConfig().put(getOutput_Optionsoutput_dir_widget().getAlias(), stringRes); 1985 } 1986 1987 stringRes = getOutput_Optionsdump_body_widget().getText().getText(); 1988 1989 defStringRes = ""; 1990 1991 1992 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 1993 getConfig().put(getOutput_Optionsdump_body_widget().getAlias(), stringRes); 1994 } 1995 1996 stringRes = getOutput_Optionsdump_cfg_widget().getText().getText(); 1997 1998 defStringRes = ""; 1999 2000 2001 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 2002 getConfig().put(getOutput_Optionsdump_cfg_widget().getAlias(), stringRes); 2003 } 2004 2005 stringRes = getOutput_Optionsoutput_format_widget().getSelectedAlias(); 2006 2007 2008 defStringRes = "c"; 2009 2010 2011 if (!stringRes.equals(defStringRes)) { 2012 getConfig().put(getOutput_Optionsoutput_format_widget().getAlias(), stringRes); 2013 } 2014 2015 boolRes = getProcessing_Optionsoptimize_widget().getButton().getSelection(); 2016 2017 2018 defBoolRes = false; 2019 2020 2021 if (boolRes != defBoolRes) { 2022 getConfig().put(getProcessing_Optionsoptimize_widget().getAlias(), new Boolean (boolRes)); 2023 } 2024 2025 boolRes = getProcessing_Optionswhole_optimize_widget().getButton().getSelection(); 2026 2027 2028 defBoolRes = false; 2029 2030 2031 if (boolRes != defBoolRes) { 2032 getConfig().put(getProcessing_Optionswhole_optimize_widget().getAlias(), new Boolean (boolRes)); 2033 } 2034 2035 boolRes = getProcessing_Optionsvia_grimp_widget().getButton().getSelection(); 2036 2037 2038 defBoolRes = false; 2039 2040 2041 if (boolRes != defBoolRes) { 2042 getConfig().put(getProcessing_Optionsvia_grimp_widget().getAlias(), new Boolean (boolRes)); 2043 } 2044 2045 boolRes = getProcessing_Optionsvia_shimple_widget().getButton().getSelection(); 2046 2047 2048 defBoolRes = false; 2049 2050 2051 if (boolRes != defBoolRes) { 2052 getConfig().put(getProcessing_Optionsvia_shimple_widget().getAlias(), new Boolean (boolRes)); 2053 } 2054 2055 boolRes = getProcessing_Optionsomit_excepting_unit_edges_widget().getButton().getSelection(); 2056 2057 2058 defBoolRes = false; 2059 2060 2061 if (boolRes != defBoolRes) { 2062 getConfig().put(getProcessing_Optionsomit_excepting_unit_edges_widget().getAlias(), new Boolean (boolRes)); 2063 } 2064 2065 boolRes = getProcessing_Optionstrim_cfgs_widget().getButton().getSelection(); 2066 2067 2068 defBoolRes = false; 2069 2070 2071 if (boolRes != defBoolRes) { 2072 getConfig().put(getProcessing_Optionstrim_cfgs_widget().getAlias(), new Boolean (boolRes)); 2073 } 2074 2075 stringRes = getProcessing_Optionsthrow_analysis_widget().getSelectedAlias(); 2076 2077 2078 defStringRes = "pedantic"; 2079 2080 2081 if (!stringRes.equals(defStringRes)) { 2082 getConfig().put(getProcessing_Optionsthrow_analysis_widget().getAlias(), stringRes); 2083 } 2084 2085 boolRes = getjbenabled_widget().getButton().getSelection(); 2086 2087 2088 defBoolRes = true; 2089 2090 2091 if (boolRes != defBoolRes) { 2092 getConfig().put(getjbenabled_widget().getAlias(), new Boolean (boolRes)); 2093 } 2094 2095 boolRes = getjbuse_original_names_widget().getButton().getSelection(); 2096 2097 2098 defBoolRes = false; 2099 2100 2101 if (boolRes != defBoolRes) { 2102 getConfig().put(getjbuse_original_names_widget().getAlias(), new Boolean (boolRes)); 2103 } 2104 2105 boolRes = getjbjb_lsenabled_widget().getButton().getSelection(); 2106 2107 2108 defBoolRes = true; 2109 2110 2111 if (boolRes != defBoolRes) { 2112 getConfig().put(getjbjb_lsenabled_widget().getAlias(), new Boolean (boolRes)); 2113 } 2114 2115 boolRes = getjbjb_aenabled_widget().getButton().getSelection(); 2116 2117 2118 defBoolRes = true; 2119 2120 2121 if (boolRes != defBoolRes) { 2122 getConfig().put(getjbjb_aenabled_widget().getAlias(), new Boolean (boolRes)); 2123 } 2124 2125 boolRes = getjbjb_aonly_stack_locals_widget().getButton().getSelection(); 2126 2127 2128 defBoolRes = true; 2129 2130 2131 if (boolRes != defBoolRes) { 2132 getConfig().put(getjbjb_aonly_stack_locals_widget().getAlias(), new Boolean (boolRes)); 2133 } 2134 2135 boolRes = getjbjb_uleenabled_widget().getButton().getSelection(); 2136 2137 2138 defBoolRes = true; 2139 2140 2141 if (boolRes != defBoolRes) { 2142 getConfig().put(getjbjb_uleenabled_widget().getAlias(), new Boolean (boolRes)); 2143 } 2144 2145 boolRes = getjbjb_trenabled_widget().getButton().getSelection(); 2146 2147 2148 defBoolRes = true; 2149 2150 2151 if (boolRes != defBoolRes) { 2152 getConfig().put(getjbjb_trenabled_widget().getAlias(), new Boolean (boolRes)); 2153 } 2154 2155 boolRes = getjbjb_ulpenabled_widget().getButton().getSelection(); 2156 2157 2158 defBoolRes = true; 2159 2160 2161 if (boolRes != defBoolRes) { 2162 getConfig().put(getjbjb_ulpenabled_widget().getAlias(), new Boolean (boolRes)); 2163 } 2164 2165 boolRes = getjbjb_ulpunsplit_original_locals_widget().getButton().getSelection(); 2166 2167 2168 defBoolRes = true; 2169 2170 2171 if (boolRes != defBoolRes) { 2172 getConfig().put(getjbjb_ulpunsplit_original_locals_widget().getAlias(), new Boolean (boolRes)); 2173 } 2174 2175 boolRes = getjbjb_lnsenabled_widget().getButton().getSelection(); 2176 2177 2178 defBoolRes = true; 2179 2180 2181 if (boolRes != defBoolRes) { 2182 getConfig().put(getjbjb_lnsenabled_widget().getAlias(), new Boolean (boolRes)); 2183 } 2184 2185 boolRes = getjbjb_lnsonly_stack_locals_widget().getButton().getSelection(); 2186 2187 2188 defBoolRes = false; 2189 2190 2191 if (boolRes != defBoolRes) { 2192 getConfig().put(getjbjb_lnsonly_stack_locals_widget().getAlias(), new Boolean (boolRes)); 2193 } 2194 2195 boolRes = getjbjb_cpenabled_widget().getButton().getSelection(); 2196 2197 2198 defBoolRes = true; 2199 2200 2201 if (boolRes != defBoolRes) { 2202 getConfig().put(getjbjb_cpenabled_widget().getAlias(), new Boolean (boolRes)); 2203 } 2204 2205 boolRes = getjbjb_cponly_regular_locals_widget().getButton().getSelection(); 2206 2207 2208 defBoolRes = false; 2209 2210 2211 if (boolRes != defBoolRes) { 2212 getConfig().put(getjbjb_cponly_regular_locals_widget().getAlias(), new Boolean (boolRes)); 2213 } 2214 2215 boolRes = getjbjb_cponly_stack_locals_widget().getButton().getSelection(); 2216 2217 2218 defBoolRes = true; 2219 2220 2221 if (boolRes != defBoolRes) { 2222 getConfig().put(getjbjb_cponly_stack_locals_widget().getAlias(), new Boolean (boolRes)); 2223 } 2224 2225 boolRes = getjbjb_daeenabled_widget().getButton().getSelection(); 2226 2227 2228 defBoolRes = true; 2229 2230 2231 if (boolRes != defBoolRes) { 2232 getConfig().put(getjbjb_daeenabled_widget().getAlias(), new Boolean (boolRes)); 2233 } 2234 2235 boolRes = getjbjb_daeonly_stack_locals_widget().getButton().getSelection(); 2236 2237 2238 defBoolRes = true; 2239 2240 2241 if (boolRes != defBoolRes) { 2242 getConfig().put(getjbjb_daeonly_stack_locals_widget().getAlias(), new Boolean (boolRes)); 2243 } 2244 2245 boolRes = getjbjb_cp_uleenabled_widget().getButton().getSelection(); 2246 2247 2248 defBoolRes = true; 2249 2250 2251 if (boolRes != defBoolRes) { 2252 getConfig().put(getjbjb_cp_uleenabled_widget().getAlias(), new Boolean (boolRes)); 2253 } 2254 2255 boolRes = getjbjb_lpenabled_widget().getButton().getSelection(); 2256 2257 2258 defBoolRes = false; 2259 2260 2261 if (boolRes != defBoolRes) { 2262 getConfig().put(getjbjb_lpenabled_widget().getAlias(), new Boolean (boolRes)); 2263 } 2264 2265 boolRes = getjbjb_lpunsplit_original_locals_widget().getButton().getSelection(); 2266 2267 2268 defBoolRes = false; 2269 2270 2271 if (boolRes != defBoolRes) { 2272 getConfig().put(getjbjb_lpunsplit_original_locals_widget().getAlias(), new Boolean (boolRes)); 2273 } 2274 2275 boolRes = getjbjb_neenabled_widget().getButton().getSelection(); 2276 2277 2278 defBoolRes = true; 2279 2280 2281 if (boolRes != defBoolRes) { 2282 getConfig().put(getjbjb_neenabled_widget().getAlias(), new Boolean (boolRes)); 2283 } 2284 2285 boolRes = getjbjb_uceenabled_widget().getButton().getSelection(); 2286 2287 2288 defBoolRes = true; 2289 2290 2291 if (boolRes != defBoolRes) { 2292 getConfig().put(getjbjb_uceenabled_widget().getAlias(), new Boolean (boolRes)); 2293 } 2294 2295 boolRes = getjbjb_uceremove_unreachable_traps_widget().getButton().getSelection(); 2296 2297 2298 defBoolRes = false; 2299 2300 2301 if (boolRes != defBoolRes) { 2302 getConfig().put(getjbjb_uceremove_unreachable_traps_widget().getAlias(), new Boolean (boolRes)); 2303 } 2304 2305 boolRes = getjbjb_ttenabled_widget().getButton().getSelection(); 2306 2307 2308 defBoolRes = false; 2309 2310 2311 if (boolRes != defBoolRes) { 2312 getConfig().put(getjbjb_ttenabled_widget().getAlias(), new Boolean (boolRes)); 2313 } 2314 2315 boolRes = getjjenabled_widget().getButton().getSelection(); 2316 2317 2318 defBoolRes = true; 2319 2320 2321 if (boolRes != defBoolRes) { 2322 getConfig().put(getjjenabled_widget().getAlias(), new Boolean (boolRes)); 2323 } 2324 2325 boolRes = getjjuse_original_names_widget().getButton().getSelection(); 2326 2327 2328 defBoolRes = true; 2329 2330 2331 if (boolRes != defBoolRes) { 2332 getConfig().put(getjjuse_original_names_widget().getAlias(), new Boolean (boolRes)); 2333 } 2334 2335 boolRes = getjjjj_lsenabled_widget().getButton().getSelection(); 2336 2337 2338 defBoolRes = false; 2339 2340 2341 if (boolRes != defBoolRes) { 2342 getConfig().put(getjjjj_lsenabled_widget().getAlias(), new Boolean (boolRes)); 2343 } 2344 2345 boolRes = getjjjj_aenabled_widget().getButton().getSelection(); 2346 2347 2348 defBoolRes = true; 2349 2350 2351 if (boolRes != defBoolRes) { 2352 getConfig().put(getjjjj_aenabled_widget().getAlias(), new Boolean (boolRes)); 2353 } 2354 2355 boolRes = getjjjj_aonly_stack_locals_widget().getButton().getSelection(); 2356 2357 2358 defBoolRes = true; 2359 2360 2361 if (boolRes != defBoolRes) { 2362 getConfig().put(getjjjj_aonly_stack_locals_widget().getAlias(), new Boolean (boolRes)); 2363 } 2364 2365 boolRes = getjjjj_uleenabled_widget().getButton().getSelection(); 2366 2367 2368 defBoolRes = true; 2369 2370 2371 if (boolRes != defBoolRes) { 2372 getConfig().put(getjjjj_uleenabled_widget().getAlias(), new Boolean (boolRes)); 2373 } 2374 2375 boolRes = getjjjj_trenabled_widget().getButton().getSelection(); 2376 2377 2378 defBoolRes = false; 2379 2380 2381 if (boolRes != defBoolRes) { 2382 getConfig().put(getjjjj_trenabled_widget().getAlias(), new Boolean (boolRes)); 2383 } 2384 2385 boolRes = getjjjj_ulpenabled_widget().getButton().getSelection(); 2386 2387 2388 defBoolRes = false; 2389 2390 2391 if (boolRes != defBoolRes) { 2392 getConfig().put(getjjjj_ulpenabled_widget().getAlias(), new Boolean (boolRes)); 2393 } 2394 2395 boolRes = getjjjj_ulpunsplit_original_locals_widget().getButton().getSelection(); 2396 2397 2398 defBoolRes = false; 2399 2400 2401 if (boolRes != defBoolRes) { 2402 getConfig().put(getjjjj_ulpunsplit_original_locals_widget().getAlias(), new Boolean (boolRes)); 2403 } 2404 2405 boolRes = getjjjj_lnsenabled_widget().getButton().getSelection(); 2406 2407 2408 defBoolRes = true; 2409 2410 2411 if (boolRes != defBoolRes) { 2412 getConfig().put(getjjjj_lnsenabled_widget().getAlias(), new Boolean (boolRes)); 2413 } 2414 2415 boolRes = getjjjj_lnsonly_stack_locals_widget().getButton().getSelection(); 2416 2417 2418 defBoolRes = false; 2419 2420 2421 if (boolRes != defBoolRes) { 2422 getConfig().put(getjjjj_lnsonly_stack_locals_widget().getAlias(), new Boolean (boolRes)); 2423 } 2424 2425 boolRes = getjjjj_cpenabled_widget().getButton().getSelection(); 2426 2427 2428 defBoolRes = true; 2429 2430 2431 if (boolRes != defBoolRes) { 2432 getConfig().put(getjjjj_cpenabled_widget().getAlias(), new Boolean (boolRes)); 2433 } 2434 2435 boolRes = getjjjj_cponly_regular_locals_widget().getButton().getSelection(); 2436 2437 2438 defBoolRes = false; 2439 2440 2441 if (boolRes != defBoolRes) { 2442 getConfig().put(getjjjj_cponly_regular_locals_widget().getAlias(), new Boolean (boolRes)); 2443 } 2444 2445 boolRes = getjjjj_cponly_stack_locals_widget().getButton().getSelection(); 2446 2447 2448 defBoolRes = true; 2449 2450 2451 if (boolRes != defBoolRes) { 2452 getConfig().put(getjjjj_cponly_stack_locals_widget().getAlias(), new Boolean (boolRes)); 2453 } 2454 2455 boolRes = getjjjj_daeenabled_widget().getButton().getSelection(); 2456 2457 2458 defBoolRes = true; 2459 2460 2461 if (boolRes != defBoolRes) { 2462 getConfig().put(getjjjj_daeenabled_widget().getAlias(), new Boolean (boolRes)); 2463 } 2464 2465 boolRes = getjjjj_daeonly_stack_locals_widget().getButton().getSelection(); 2466 2467 2468 defBoolRes = true; 2469 2470 2471 if (boolRes != defBoolRes) { 2472 getConfig().put(getjjjj_daeonly_stack_locals_widget().getAlias(), new Boolean (boolRes)); 2473 } 2474 2475 boolRes = getjjjj_cp_uleenabled_widget().getButton().getSelection(); 2476 2477 2478 defBoolRes = true; 2479 2480 2481 if (boolRes != defBoolRes) { 2482 getConfig().put(getjjjj_cp_uleenabled_widget().getAlias(), new Boolean (boolRes)); 2483 } 2484 2485 boolRes = getjjjj_lpenabled_widget().getButton().getSelection(); 2486 2487 2488 defBoolRes = false; 2489 2490 2491 if (boolRes != defBoolRes) { 2492 getConfig().put(getjjjj_lpenabled_widget().getAlias(), new Boolean (boolRes)); 2493 } 2494 2495 boolRes = getjjjj_lpunsplit_original_locals_widget().getButton().getSelection(); 2496 2497 2498 defBoolRes = false; 2499 2500 2501 if (boolRes != defBoolRes) { 2502 getConfig().put(getjjjj_lpunsplit_original_locals_widget().getAlias(), new Boolean (boolRes)); 2503 } 2504 2505 boolRes = getjjjj_neenabled_widget().getButton().getSelection(); 2506 2507 2508 defBoolRes = true; 2509 2510 2511 if (boolRes != defBoolRes) { 2512 getConfig().put(getjjjj_neenabled_widget().getAlias(), new Boolean (boolRes)); 2513 } 2514 2515 boolRes = getjjjj_uceenabled_widget().getButton().getSelection(); 2516 2517 2518 defBoolRes = true; 2519 2520 2521 if (boolRes != defBoolRes) { 2522 getConfig().put(getjjjj_uceenabled_widget().getAlias(), new Boolean (boolRes)); 2523 } 2524 2525 boolRes = getcgenabled_widget().getButton().getSelection(); 2526 2527 2528 defBoolRes = true; 2529 2530 2531 if (boolRes != defBoolRes) { 2532 getConfig().put(getcgenabled_widget().getAlias(), new Boolean (boolRes)); 2533 } 2534 2535 boolRes = getcgsafe_forname_widget().getButton().getSelection(); 2536 2537 2538 defBoolRes = false; 2539 2540 2541 if (boolRes != defBoolRes) { 2542 getConfig().put(getcgsafe_forname_widget().getAlias(), new Boolean (boolRes)); 2543 } 2544 2545 boolRes = getcgsafe_newinstance_widget().getButton().getSelection(); 2546 2547 2548 defBoolRes = false; 2549 2550 2551 if (boolRes != defBoolRes) { 2552 getConfig().put(getcgsafe_newinstance_widget().getAlias(), new Boolean (boolRes)); 2553 } 2554 2555 boolRes = getcgverbose_widget().getButton().getSelection(); 2556 2557 2558 defBoolRes = false; 2559 2560 2561 if (boolRes != defBoolRes) { 2562 getConfig().put(getcgverbose_widget().getAlias(), new Boolean (boolRes)); 2563 } 2564 2565 boolRes = getcgall_reachable_widget().getButton().getSelection(); 2566 2567 2568 defBoolRes = false; 2569 2570 2571 if (boolRes != defBoolRes) { 2572 getConfig().put(getcgall_reachable_widget().getAlias(), new Boolean (boolRes)); 2573 } 2574 2575 boolRes = getcgimplicit_entry_widget().getButton().getSelection(); 2576 2577 2578 defBoolRes = true; 2579 2580 2581 if (boolRes != defBoolRes) { 2582 getConfig().put(getcgimplicit_entry_widget().getAlias(), new Boolean (boolRes)); 2583 } 2584 2585 boolRes = getcgtrim_clinit_widget().getButton().getSelection(); 2586 2587 2588 defBoolRes = true; 2589 2590 2591 if (boolRes != defBoolRes) { 2592 getConfig().put(getcgtrim_clinit_widget().getAlias(), new Boolean (boolRes)); 2593 } 2594 2595 stringRes = getcgjdkver_widget().getText().getText(); 2596 2597 defStringRes = "3"; 2598 2599 2600 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 2601 getConfig().put(getcgjdkver_widget().getAlias(), stringRes); 2602 } 2603 2604 boolRes = getcgcg_chaenabled_widget().getButton().getSelection(); 2605 2606 2607 defBoolRes = true; 2608 2609 2610 if (boolRes != defBoolRes) { 2611 getConfig().put(getcgcg_chaenabled_widget().getAlias(), new Boolean (boolRes)); 2612 } 2613 2614 boolRes = getcgcg_chaverbose_widget().getButton().getSelection(); 2615 2616 2617 defBoolRes = false; 2618 2619 2620 if (boolRes != defBoolRes) { 2621 getConfig().put(getcgcg_chaverbose_widget().getAlias(), new Boolean (boolRes)); 2622 } 2623 2624 boolRes = getcgcg_sparkenabled_widget().getButton().getSelection(); 2625 2626 2627 defBoolRes = false; 2628 2629 2630 if (boolRes != defBoolRes) { 2631 getConfig().put(getcgcg_sparkenabled_widget().getAlias(), new Boolean (boolRes)); 2632 } 2633 2634 boolRes = getcgcg_sparkverbose_widget().getButton().getSelection(); 2635 2636 2637 defBoolRes = false; 2638 2639 2640 if (boolRes != defBoolRes) { 2641 getConfig().put(getcgcg_sparkverbose_widget().getAlias(), new Boolean (boolRes)); 2642 } 2643 2644 boolRes = getcgcg_sparkignore_types_widget().getButton().getSelection(); 2645 2646 2647 defBoolRes = false; 2648 2649 2650 if (boolRes != defBoolRes) { 2651 getConfig().put(getcgcg_sparkignore_types_widget().getAlias(), new Boolean (boolRes)); 2652 } 2653 2654 boolRes = getcgcg_sparkforce_gc_widget().getButton().getSelection(); 2655 2656 2657 defBoolRes = false; 2658 2659 2660 if (boolRes != defBoolRes) { 2661 getConfig().put(getcgcg_sparkforce_gc_widget().getAlias(), new Boolean (boolRes)); 2662 } 2663 2664 boolRes = getcgcg_sparkpre_jimplify_widget().getButton().getSelection(); 2665 2666 2667 defBoolRes = false; 2668 2669 2670 if (boolRes != defBoolRes) { 2671 getConfig().put(getcgcg_sparkpre_jimplify_widget().getAlias(), new Boolean (boolRes)); 2672 } 2673 2674 boolRes = getcgcg_sparkvta_widget().getButton().getSelection(); 2675 2676 2677 defBoolRes = false; 2678 2679 2680 if (boolRes != defBoolRes) { 2681 getConfig().put(getcgcg_sparkvta_widget().getAlias(), new Boolean (boolRes)); 2682 } 2683 2684 boolRes = getcgcg_sparkrta_widget().getButton().getSelection(); 2685 2686 2687 defBoolRes = false; 2688 2689 2690 if (boolRes != defBoolRes) { 2691 getConfig().put(getcgcg_sparkrta_widget().getAlias(), new Boolean (boolRes)); 2692 } 2693 2694 boolRes = getcgcg_sparkfield_based_widget().getButton().getSelection(); 2695 2696 2697 defBoolRes = false; 2698 2699 2700 if (boolRes != defBoolRes) { 2701 getConfig().put(getcgcg_sparkfield_based_widget().getAlias(), new Boolean (boolRes)); 2702 } 2703 2704 boolRes = getcgcg_sparktypes_for_sites_widget().getButton().getSelection(); 2705 2706 2707 defBoolRes = false; 2708 2709 2710 if (boolRes != defBoolRes) { 2711 getConfig().put(getcgcg_sparktypes_for_sites_widget().getAlias(), new Boolean (boolRes)); 2712 } 2713 2714 boolRes = getcgcg_sparkmerge_stringbuffer_widget().getButton().getSelection(); 2715 2716 2717 defBoolRes = true; 2718 2719 2720 if (boolRes != defBoolRes) { 2721 getConfig().put(getcgcg_sparkmerge_stringbuffer_widget().getAlias(), new Boolean (boolRes)); 2722 } 2723 2724 boolRes = getcgcg_sparkstring_constants_widget().getButton().getSelection(); 2725 2726 2727 defBoolRes = false; 2728 2729 2730 if (boolRes != defBoolRes) { 2731 getConfig().put(getcgcg_sparkstring_constants_widget().getAlias(), new Boolean (boolRes)); 2732 } 2733 2734 boolRes = getcgcg_sparksimulate_natives_widget().getButton().getSelection(); 2735 2736 2737 defBoolRes = true; 2738 2739 2740 if (boolRes != defBoolRes) { 2741 getConfig().put(getcgcg_sparksimulate_natives_widget().getAlias(), new Boolean (boolRes)); 2742 } 2743 2744 boolRes = getcgcg_sparksimple_edges_bidirectional_widget().getButton().getSelection(); 2745 2746 2747 defBoolRes = false; 2748 2749 2750 if (boolRes != defBoolRes) { 2751 getConfig().put(getcgcg_sparksimple_edges_bidirectional_widget().getAlias(), new Boolean (boolRes)); 2752 } 2753 2754 boolRes = getcgcg_sparkon_fly_cg_widget().getButton().getSelection(); 2755 2756 2757 defBoolRes = true; 2758 2759 2760 if (boolRes != defBoolRes) { 2761 getConfig().put(getcgcg_sparkon_fly_cg_widget().getAlias(), new Boolean (boolRes)); 2762 } 2763 2764 boolRes = getcgcg_sparksimplify_offline_widget().getButton().getSelection(); 2765 2766 2767 defBoolRes = false; 2768 2769 2770 if (boolRes != defBoolRes) { 2771 getConfig().put(getcgcg_sparksimplify_offline_widget().getAlias(), new Boolean (boolRes)); 2772 } 2773 2774 boolRes = getcgcg_sparksimplify_sccs_widget().getButton().getSelection(); 2775 2776 2777 defBoolRes = false; 2778 2779 2780 if (boolRes != defBoolRes) { 2781 getConfig().put(getcgcg_sparksimplify_sccs_widget().getAlias(), new Boolean (boolRes)); 2782 } 2783 2784 boolRes = getcgcg_sparkignore_types_for_sccs_widget().getButton().getSelection(); 2785 2786 2787 defBoolRes = false; 2788 2789 2790 if (boolRes != defBoolRes) { 2791 getConfig().put(getcgcg_sparkignore_types_for_sccs_widget().getAlias(), new Boolean (boolRes)); 2792 } 2793 2794 stringRes = getcgcg_sparkpropagator_widget().getSelectedAlias(); 2795 2796 2797 defStringRes = "worklist"; 2798 2799 2800 if (!stringRes.equals(defStringRes)) { 2801 getConfig().put(getcgcg_sparkpropagator_widget().getAlias(), stringRes); 2802 } 2803 2804 stringRes = getcgcg_sparkset_impl_widget().getSelectedAlias(); 2805 2806 2807 defStringRes = "double"; 2808 2809 2810 if (!stringRes.equals(defStringRes)) { 2811 getConfig().put(getcgcg_sparkset_impl_widget().getAlias(), stringRes); 2812 } 2813 2814 stringRes = getcgcg_sparkdouble_set_old_widget().getSelectedAlias(); 2815 2816 2817 defStringRes = "hybrid"; 2818 2819 2820 if (!stringRes.equals(defStringRes)) { 2821 getConfig().put(getcgcg_sparkdouble_set_old_widget().getAlias(), stringRes); 2822 } 2823 2824 stringRes = getcgcg_sparkdouble_set_new_widget().getSelectedAlias(); 2825 2826 2827 defStringRes = "hybrid"; 2828 2829 2830 if (!stringRes.equals(defStringRes)) { 2831 getConfig().put(getcgcg_sparkdouble_set_new_widget().getAlias(), stringRes); 2832 } 2833 2834 boolRes = getcgcg_sparkdump_html_widget().getButton().getSelection(); 2835 2836 2837 defBoolRes = false; 2838 2839 2840 if (boolRes != defBoolRes) { 2841 getConfig().put(getcgcg_sparkdump_html_widget().getAlias(), new Boolean (boolRes)); 2842 } 2843 2844 boolRes = getcgcg_sparkdump_pag_widget().getButton().getSelection(); 2845 2846 2847 defBoolRes = false; 2848 2849 2850 if (boolRes != defBoolRes) { 2851 getConfig().put(getcgcg_sparkdump_pag_widget().getAlias(), new Boolean (boolRes)); 2852 } 2853 2854 boolRes = getcgcg_sparkdump_solution_widget().getButton().getSelection(); 2855 2856 2857 defBoolRes = false; 2858 2859 2860 if (boolRes != defBoolRes) { 2861 getConfig().put(getcgcg_sparkdump_solution_widget().getAlias(), new Boolean (boolRes)); 2862 } 2863 2864 boolRes = getcgcg_sparktopo_sort_widget().getButton().getSelection(); 2865 2866 2867 defBoolRes = false; 2868 2869 2870 if (boolRes != defBoolRes) { 2871 getConfig().put(getcgcg_sparktopo_sort_widget().getAlias(), new Boolean (boolRes)); 2872 } 2873 2874 boolRes = getcgcg_sparkdump_types_widget().getButton().getSelection(); 2875 2876 2877 defBoolRes = true; 2878 2879 2880 if (boolRes != defBoolRes) { 2881 getConfig().put(getcgcg_sparkdump_types_widget().getAlias(), new Boolean (boolRes)); 2882 } 2883 2884 boolRes = getcgcg_sparkclass_method_var_widget().getButton().getSelection(); 2885 2886 2887 defBoolRes = true; 2888 2889 2890 if (boolRes != defBoolRes) { 2891 getConfig().put(getcgcg_sparkclass_method_var_widget().getAlias(), new Boolean (boolRes)); 2892 } 2893 2894 boolRes = getcgcg_sparkdump_answer_widget().getButton().getSelection(); 2895 2896 2897 defBoolRes = false; 2898 2899 2900 if (boolRes != defBoolRes) { 2901 getConfig().put(getcgcg_sparkdump_answer_widget().getAlias(), new Boolean (boolRes)); 2902 } 2903 2904 boolRes = getcgcg_sparkadd_tags_widget().getButton().getSelection(); 2905 2906 2907 defBoolRes = false; 2908 2909 2910 if (boolRes != defBoolRes) { 2911 getConfig().put(getcgcg_sparkadd_tags_widget().getAlias(), new Boolean (boolRes)); 2912 } 2913 2914 boolRes = getcgcg_sparkset_mass_widget().getButton().getSelection(); 2915 2916 2917 defBoolRes = false; 2918 2919 2920 if (boolRes != defBoolRes) { 2921 getConfig().put(getcgcg_sparkset_mass_widget().getAlias(), new Boolean (boolRes)); 2922 } 2923 2924 boolRes = getcgcg_paddleenabled_widget().getButton().getSelection(); 2925 2926 2927 defBoolRes = false; 2928 2929 2930 if (boolRes != defBoolRes) { 2931 getConfig().put(getcgcg_paddleenabled_widget().getAlias(), new Boolean (boolRes)); 2932 } 2933 2934 boolRes = getcgcg_paddleverbose_widget().getButton().getSelection(); 2935 2936 2937 defBoolRes = false; 2938 2939 2940 if (boolRes != defBoolRes) { 2941 getConfig().put(getcgcg_paddleverbose_widget().getAlias(), new Boolean (boolRes)); 2942 } 2943 2944 boolRes = getcgcg_paddlebdd_widget().getButton().getSelection(); 2945 2946 2947 defBoolRes = false; 2948 2949 2950 if (boolRes != defBoolRes) { 2951 getConfig().put(getcgcg_paddlebdd_widget().getAlias(), new Boolean (boolRes)); 2952 } 2953 2954 boolRes = getcgcg_paddledynamic_order_widget().getButton().getSelection(); 2955 2956 2957 defBoolRes = false; 2958 2959 2960 if (boolRes != defBoolRes) { 2961 getConfig().put(getcgcg_paddledynamic_order_widget().getAlias(), new Boolean (boolRes)); 2962 } 2963 2964 boolRes = getcgcg_paddleprofile_widget().getButton().getSelection(); 2965 2966 2967 defBoolRes = false; 2968 2969 2970 if (boolRes != defBoolRes) { 2971 getConfig().put(getcgcg_paddleprofile_widget().getAlias(), new Boolean (boolRes)); 2972 } 2973 2974 boolRes = getcgcg_paddleignore_types_widget().getButton().getSelection(); 2975 2976 2977 defBoolRes = false; 2978 2979 2980 if (boolRes != defBoolRes) { 2981 getConfig().put(getcgcg_paddleignore_types_widget().getAlias(), new Boolean (boolRes)); 2982 } 2983 2984 boolRes = getcgcg_paddlepre_jimplify_widget().getButton().getSelection(); 2985 2986 2987 defBoolRes = false; 2988 2989 2990 if (boolRes != defBoolRes) { 2991 getConfig().put(getcgcg_paddlepre_jimplify_widget().getAlias(), new Boolean (boolRes)); 2992 } 2993 2994 stringRes = getcgcg_paddleorder_widget().getText().getText(); 2995 2996 defStringRes = "32"; 2997 2998 2999 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 3000 getConfig().put(getcgcg_paddleorder_widget().getAlias(), stringRes); 3001 } 3002 3003 stringRes = getcgcg_paddleconf_widget().getSelectedAlias(); 3004 3005 3006 defStringRes = "ofcg"; 3007 3008 3009 if (!stringRes.equals(defStringRes)) { 3010 getConfig().put(getcgcg_paddleconf_widget().getAlias(), stringRes); 3011 } 3012 3013 stringRes = getcgcg_paddleq_widget().getSelectedAlias(); 3014 3015 3016 defStringRes = "auto"; 3017 3018 3019 if (!stringRes.equals(defStringRes)) { 3020 getConfig().put(getcgcg_paddleq_widget().getAlias(), stringRes); 3021 } 3022 3023 stringRes = getcgcg_paddlebackend_widget().getSelectedAlias(); 3024 3025 3026 defStringRes = "buddy"; 3027 3028 3029 if (!stringRes.equals(defStringRes)) { 3030 getConfig().put(getcgcg_paddlebackend_widget().getAlias(), stringRes); 3031 } 3032 3033 boolRes = getcgcg_paddlecontext_heap_widget().getButton().getSelection(); 3034 3035 3036 defBoolRes = false; 3037 3038 3039 if (boolRes != defBoolRes) { 3040 getConfig().put(getcgcg_paddlecontext_heap_widget().getAlias(), new Boolean (boolRes)); 3041 } 3042 3043 stringRes = getcgcg_paddlek_widget().getText().getText(); 3044 3045 defStringRes = "2"; 3046 3047 3048 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 3049 getConfig().put(getcgcg_paddlek_widget().getAlias(), stringRes); 3050 } 3051 3052 stringRes = getcgcg_paddlecontext_widget().getSelectedAlias(); 3053 3054 3055 defStringRes = "insens"; 3056 3057 3058 if (!stringRes.equals(defStringRes)) { 3059 getConfig().put(getcgcg_paddlecontext_widget().getAlias(), stringRes); 3060 } 3061 3062 boolRes = getcgcg_paddlerta_widget().getButton().getSelection(); 3063 3064 3065 defBoolRes = false; 3066 3067 3068 if (boolRes != defBoolRes) { 3069 getConfig().put(getcgcg_paddlerta_widget().getAlias(), new Boolean (boolRes)); 3070 } 3071 3072 boolRes = getcgcg_paddlefield_based_widget().getButton().getSelection(); 3073 3074 3075 defBoolRes = false; 3076 3077 3078 if (boolRes != defBoolRes) { 3079 getConfig().put(getcgcg_paddlefield_based_widget().getAlias(), new Boolean (boolRes)); 3080 } 3081 3082 boolRes = getcgcg_paddletypes_for_sites_widget().getButton().getSelection(); 3083 3084 3085 defBoolRes = false; 3086 3087 3088 if (boolRes != defBoolRes) { 3089 getConfig().put(getcgcg_paddletypes_for_sites_widget().getAlias(), new Boolean (boolRes)); 3090 } 3091 3092 boolRes = getcgcg_paddlemerge_stringbuffer_widget().getButton().getSelection(); 3093 3094 3095 defBoolRes = true; 3096 3097 3098 if (boolRes != defBoolRes) { 3099 getConfig().put(getcgcg_paddlemerge_stringbuffer_widget().getAlias(), new Boolean (boolRes)); 3100 } 3101 3102 boolRes = getcgcg_paddlestring_constants_widget().getButton().getSelection(); 3103 3104 3105 defBoolRes = false; 3106 3107 3108 if (boolRes != defBoolRes) { 3109 getConfig().put(getcgcg_paddlestring_constants_widget().getAlias(), new Boolean (boolRes)); 3110 } 3111 3112 boolRes = getcgcg_paddlesimulate_natives_widget().getButton().getSelection(); 3113 3114 3115 defBoolRes = true; 3116 3117 3118 if (boolRes != defBoolRes) { 3119 getConfig().put(getcgcg_paddlesimulate_natives_widget().getAlias(), new Boolean (boolRes)); 3120 } 3121 3122 boolRes = getcgcg_paddleglobal_nodes_in_natives_widget().getButton().getSelection(); 3123 3124 3125 defBoolRes = false; 3126 3127 3128 if (boolRes != defBoolRes) { 3129 getConfig().put(getcgcg_paddleglobal_nodes_in_natives_widget().getAlias(), new Boolean (boolRes)); 3130 } 3131 3132 boolRes = getcgcg_paddlesimple_edges_bidirectional_widget().getButton().getSelection(); 3133 3134 3135 defBoolRes = false; 3136 3137 3138 if (boolRes != defBoolRes) { 3139 getConfig().put(getcgcg_paddlesimple_edges_bidirectional_widget().getAlias(), new Boolean (boolRes)); 3140 } 3141 3142 boolRes = getcgcg_paddlethis_edges_widget().getButton().getSelection(); 3143 3144 3145 defBoolRes = false; 3146 3147 3148 if (boolRes != defBoolRes) { 3149 getConfig().put(getcgcg_paddlethis_edges_widget().getAlias(), new Boolean (boolRes)); 3150 } 3151 3152 boolRes = getcgcg_paddleprecise_newinstance_widget().getButton().getSelection(); 3153 3154 3155 defBoolRes = true; 3156 3157 3158 if (boolRes != defBoolRes) { 3159 getConfig().put(getcgcg_paddleprecise_newinstance_widget().getAlias(), new Boolean (boolRes)); 3160 } 3161 3162 stringRes = getcgcg_paddlepropagator_widget().getSelectedAlias(); 3163 3164 3165 defStringRes = "auto"; 3166 3167 3168 if (!stringRes.equals(defStringRes)) { 3169 getConfig().put(getcgcg_paddlepropagator_widget().getAlias(), stringRes); 3170 } 3171 3172 stringRes = getcgcg_paddleset_impl_widget().getSelectedAlias(); 3173 3174 3175 defStringRes = "double"; 3176 3177 3178 if (!stringRes.equals(defStringRes)) { 3179 getConfig().put(getcgcg_paddleset_impl_widget().getAlias(), stringRes); 3180 } 3181 3182 stringRes = getcgcg_paddledouble_set_old_widget().getSelectedAlias(); 3183 3184 3185 defStringRes = "hybrid"; 3186 3187 3188 if (!stringRes.equals(defStringRes)) { 3189 getConfig().put(getcgcg_paddledouble_set_old_widget().getAlias(), stringRes); 3190 } 3191 3192 stringRes = getcgcg_paddledouble_set_new_widget().getSelectedAlias(); 3193 3194 3195 defStringRes = "hybrid"; 3196 3197 3198 if (!stringRes.equals(defStringRes)) { 3199 getConfig().put(getcgcg_paddledouble_set_new_widget().getAlias(), stringRes); 3200 } 3201 3202 boolRes = getcgcg_paddlecontext_counts_widget().getButton().getSelection(); 3203 3204 3205 defBoolRes = false; 3206 3207 3208 if (boolRes != defBoolRes) { 3209 getConfig().put(getcgcg_paddlecontext_counts_widget().getAlias(), new Boolean (boolRes)); 3210 } 3211 3212 boolRes = getcgcg_paddletotal_context_counts_widget().getButton().getSelection(); 3213 3214 3215 defBoolRes = false; 3216 3217 3218 if (boolRes != defBoolRes) { 3219 getConfig().put(getcgcg_paddletotal_context_counts_widget().getAlias(), new Boolean (boolRes)); 3220 } 3221 3222 boolRes = getcgcg_paddlemethod_context_counts_widget().getButton().getSelection(); 3223 3224 3225 defBoolRes = false; 3226 3227 3228 if (boolRes != defBoolRes) { 3229 getConfig().put(getcgcg_paddlemethod_context_counts_widget().getAlias(), new Boolean (boolRes)); 3230 } 3231 3232 boolRes = getcgcg_paddleset_mass_widget().getButton().getSelection(); 3233 3234 3235 defBoolRes = false; 3236 3237 3238 if (boolRes != defBoolRes) { 3239 getConfig().put(getcgcg_paddleset_mass_widget().getAlias(), new Boolean (boolRes)); 3240 } 3241 3242 boolRes = getcgcg_paddlenumber_nodes_widget().getButton().getSelection(); 3243 3244 3245 defBoolRes = true; 3246 3247 3248 if (boolRes != defBoolRes) { 3249 getConfig().put(getcgcg_paddlenumber_nodes_widget().getAlias(), new Boolean (boolRes)); 3250 } 3251 3252 boolRes = getwstpenabled_widget().getButton().getSelection(); 3253 3254 3255 defBoolRes = true; 3256 3257 3258 if (boolRes != defBoolRes) { 3259 getConfig().put(getwstpenabled_widget().getAlias(), new Boolean (boolRes)); 3260 } 3261 3262 boolRes = getwsopenabled_widget().getButton().getSelection(); 3263 3264 3265 defBoolRes = false; 3266 3267 3268 if (boolRes != defBoolRes) { 3269 getConfig().put(getwsopenabled_widget().getAlias(), new Boolean (boolRes)); 3270 } 3271 3272 boolRes = getwjtpenabled_widget().getButton().getSelection(); 3273 3274 3275 defBoolRes = true; 3276 3277 3278 if (boolRes != defBoolRes) { 3279 getConfig().put(getwjtpenabled_widget().getAlias(), new Boolean (boolRes)); 3280 } 3281 3282 boolRes = getwjopenabled_widget().getButton().getSelection(); 3283 3284 3285 defBoolRes = false; 3286 3287 3288 if (boolRes != defBoolRes) { 3289 getConfig().put(getwjopenabled_widget().getAlias(), new Boolean (boolRes)); 3290 } 3291 3292 boolRes = getwjopwjop_smbenabled_widget().getButton().getSelection(); 3293 3294 3295 defBoolRes = false; 3296 3297 3298 if (boolRes != defBoolRes) { 3299 getConfig().put(getwjopwjop_smbenabled_widget().getAlias(), new Boolean (boolRes)); 3300 } 3301 3302 boolRes = getwjopwjop_smbinsert_null_checks_widget().getButton().getSelection(); 3303 3304 3305 defBoolRes = true; 3306 3307 3308 if (boolRes != defBoolRes) { 3309 getConfig().put(getwjopwjop_smbinsert_null_checks_widget().getAlias(), new Boolean (boolRes)); 3310 } 3311 3312 boolRes = getwjopwjop_smbinsert_redundant_casts_widget().getButton().getSelection(); 3313 3314 3315 defBoolRes = true; 3316 3317 3318 if (boolRes != defBoolRes) { 3319 getConfig().put(getwjopwjop_smbinsert_redundant_casts_widget().getAlias(), new Boolean (boolRes)); 3320 } 3321 3322 stringRes = getwjopwjop_smballowed_modifier_changes_widget().getSelectedAlias(); 3323 3324 3325 defStringRes = "unsafe"; 3326 3327 3328 if (!stringRes.equals(defStringRes)) { 3329 getConfig().put(getwjopwjop_smballowed_modifier_changes_widget().getAlias(), stringRes); 3330 } 3331 3332 boolRes = getwjopwjop_sienabled_widget().getButton().getSelection(); 3333 3334 3335 defBoolRes = true; 3336 3337 3338 if (boolRes != defBoolRes) { 3339 getConfig().put(getwjopwjop_sienabled_widget().getAlias(), new Boolean (boolRes)); 3340 } 3341 3342 boolRes = getwjopwjop_sirerun_jb_widget().getButton().getSelection(); 3343 3344 3345 defBoolRes = true; 3346 3347 3348 if (boolRes != defBoolRes) { 3349 getConfig().put(getwjopwjop_sirerun_jb_widget().getAlias(), new Boolean (boolRes)); 3350 } 3351 3352 boolRes = getwjopwjop_siinsert_null_checks_widget().getButton().getSelection(); 3353 3354 3355 defBoolRes = true; 3356 3357 3358 if (boolRes != defBoolRes) { 3359 getConfig().put(getwjopwjop_siinsert_null_checks_widget().getAlias(), new Boolean (boolRes)); 3360 } 3361 3362 boolRes = getwjopwjop_siinsert_redundant_casts_widget().getButton().getSelection(); 3363 3364 3365 defBoolRes = true; 3366 3367 3368 if (boolRes != defBoolRes) { 3369 getConfig().put(getwjopwjop_siinsert_redundant_casts_widget().getAlias(), new Boolean (boolRes)); 3370 } 3371 3372 stringRes = getwjopwjop_siexpansion_factor_widget().getText().getText(); 3373 3374 defStringRes = "3"; 3375 3376 3377 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 3378 getConfig().put(getwjopwjop_siexpansion_factor_widget().getAlias(), stringRes); 3379 } 3380 3381 stringRes = getwjopwjop_simax_container_size_widget().getText().getText(); 3382 3383 defStringRes = "5000"; 3384 3385 3386 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 3387 getConfig().put(getwjopwjop_simax_container_size_widget().getAlias(), stringRes); 3388 } 3389 3390 stringRes = getwjopwjop_simax_inlinee_size_widget().getText().getText(); 3391 3392 defStringRes = "20"; 3393 3394 3395 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 3396 getConfig().put(getwjopwjop_simax_inlinee_size_widget().getAlias(), stringRes); 3397 } 3398 3399 stringRes = getwjopwjop_siallowed_modifier_changes_widget().getSelectedAlias(); 3400 3401 3402 defStringRes = "unsafe"; 3403 3404 3405 if (!stringRes.equals(defStringRes)) { 3406 getConfig().put(getwjopwjop_siallowed_modifier_changes_widget().getAlias(), stringRes); 3407 } 3408 3409 boolRes = getwjapenabled_widget().getButton().getSelection(); 3410 3411 3412 defBoolRes = true; 3413 3414 3415 if (boolRes != defBoolRes) { 3416 getConfig().put(getwjapenabled_widget().getAlias(), new Boolean (boolRes)); 3417 } 3418 3419 boolRes = getwjapwjap_raenabled_widget().getButton().getSelection(); 3420 3421 3422 defBoolRes = false; 3423 3424 3425 if (boolRes != defBoolRes) { 3426 getConfig().put(getwjapwjap_raenabled_widget().getAlias(), new Boolean (boolRes)); 3427 } 3428 3429 boolRes = getwjapwjap_umtenabled_widget().getButton().getSelection(); 3430 3431 3432 defBoolRes = false; 3433 3434 3435 if (boolRes != defBoolRes) { 3436 getConfig().put(getwjapwjap_umtenabled_widget().getAlias(), new Boolean (boolRes)); 3437 } 3438 3439 boolRes = getwjapwjap_uftenabled_widget().getButton().getSelection(); 3440 3441 3442 defBoolRes = false; 3443 3444 3445 if (boolRes != defBoolRes) { 3446 getConfig().put(getwjapwjap_uftenabled_widget().getAlias(), new Boolean (boolRes)); 3447 } 3448 3449 boolRes = getwjapwjap_tqtenabled_widget().getButton().getSelection(); 3450 3451 3452 defBoolRes = false; 3453 3454 3455 if (boolRes != defBoolRes) { 3456 getConfig().put(getwjapwjap_tqtenabled_widget().getAlias(), new Boolean (boolRes)); 3457 } 3458 3459 boolRes = getwjapwjap_cggenabled_widget().getButton().getSelection(); 3460 3461 3462 defBoolRes = false; 3463 3464 3465 if (boolRes != defBoolRes) { 3466 getConfig().put(getwjapwjap_cggenabled_widget().getAlias(), new Boolean (boolRes)); 3467 } 3468 3469 boolRes = getwjapwjap_cggshow_lib_meths_widget().getButton().getSelection(); 3470 3471 3472 defBoolRes = false; 3473 3474 3475 if (boolRes != defBoolRes) { 3476 getConfig().put(getwjapwjap_cggshow_lib_meths_widget().getAlias(), new Boolean (boolRes)); 3477 } 3478 3479 boolRes = getwjapwjap_purityenabled_widget().getButton().getSelection(); 3480 3481 3482 defBoolRes = false; 3483 3484 3485 if (boolRes != defBoolRes) { 3486 getConfig().put(getwjapwjap_purityenabled_widget().getAlias(), new Boolean (boolRes)); 3487 } 3488 3489 boolRes = getwjapwjap_puritydump_summaries_widget().getButton().getSelection(); 3490 3491 3492 defBoolRes = true; 3493 3494 3495 if (boolRes != defBoolRes) { 3496 getConfig().put(getwjapwjap_puritydump_summaries_widget().getAlias(), new Boolean (boolRes)); 3497 } 3498 3499 boolRes = getwjapwjap_puritydump_cg_widget().getButton().getSelection(); 3500 3501 3502 defBoolRes = false; 3503 3504 3505 if (boolRes != defBoolRes) { 3506 getConfig().put(getwjapwjap_puritydump_cg_widget().getAlias(), new Boolean (boolRes)); 3507 } 3508 3509 boolRes = getwjapwjap_puritydump_intra_widget().getButton().getSelection(); 3510 3511 3512 defBoolRes = false; 3513 3514 3515 if (boolRes != defBoolRes) { 3516 getConfig().put(getwjapwjap_puritydump_intra_widget().getAlias(), new Boolean (boolRes)); 3517 } 3518 3519 boolRes = getwjapwjap_purityprint_widget().getButton().getSelection(); 3520 3521 3522 defBoolRes = true; 3523 3524 3525 if (boolRes != defBoolRes) { 3526 getConfig().put(getwjapwjap_purityprint_widget().getAlias(), new Boolean (boolRes)); 3527 } 3528 3529 boolRes = getwjapwjap_purityverbose_widget().getButton().getSelection(); 3530 3531 3532 defBoolRes = false; 3533 3534 3535 if (boolRes != defBoolRes) { 3536 getConfig().put(getwjapwjap_purityverbose_widget().getAlias(), new Boolean (boolRes)); 3537 } 3538 3539 boolRes = getshimpleenabled_widget().getButton().getSelection(); 3540 3541 3542 defBoolRes = true; 3543 3544 3545 if (boolRes != defBoolRes) { 3546 getConfig().put(getshimpleenabled_widget().getAlias(), new Boolean (boolRes)); 3547 } 3548 3549 boolRes = getshimplenode_elim_opt_widget().getButton().getSelection(); 3550 3551 3552 defBoolRes = true; 3553 3554 3555 if (boolRes != defBoolRes) { 3556 getConfig().put(getshimplenode_elim_opt_widget().getAlias(), new Boolean (boolRes)); 3557 } 3558 3559 boolRes = getshimplestandard_local_names_widget().getButton().getSelection(); 3560 3561 3562 defBoolRes = false; 3563 3564 3565 if (boolRes != defBoolRes) { 3566 getConfig().put(getshimplestandard_local_names_widget().getAlias(), new Boolean (boolRes)); 3567 } 3568 3569 boolRes = getshimpleextended_widget().getButton().getSelection(); 3570 3571 3572 defBoolRes = false; 3573 3574 3575 if (boolRes != defBoolRes) { 3576 getConfig().put(getshimpleextended_widget().getAlias(), new Boolean (boolRes)); 3577 } 3578 3579 boolRes = getshimpledebug_widget().getButton().getSelection(); 3580 3581 3582 defBoolRes = false; 3583 3584 3585 if (boolRes != defBoolRes) { 3586 getConfig().put(getshimpledebug_widget().getAlias(), new Boolean (boolRes)); 3587 } 3588 3589 boolRes = getstpenabled_widget().getButton().getSelection(); 3590 3591 3592 defBoolRes = true; 3593 3594 3595 if (boolRes != defBoolRes) { 3596 getConfig().put(getstpenabled_widget().getAlias(), new Boolean (boolRes)); 3597 } 3598 3599 boolRes = getsopenabled_widget().getButton().getSelection(); 3600 3601 3602 defBoolRes = false; 3603 3604 3605 if (boolRes != defBoolRes) { 3606 getConfig().put(getsopenabled_widget().getAlias(), new Boolean (boolRes)); 3607 } 3608 3609 boolRes = getsopsop_cpfenabled_widget().getButton().getSelection(); 3610 3611 3612 defBoolRes = true; 3613 3614 3615 if (boolRes != defBoolRes) { 3616 getConfig().put(getsopsop_cpfenabled_widget().getAlias(), new Boolean (boolRes)); 3617 } 3618 3619 boolRes = getsopsop_cpfprune_cfg_widget().getButton().getSelection(); 3620 3621 3622 defBoolRes = true; 3623 3624 3625 if (boolRes != defBoolRes) { 3626 getConfig().put(getsopsop_cpfprune_cfg_widget().getAlias(), new Boolean (boolRes)); 3627 } 3628 3629 boolRes = getjtpenabled_widget().getButton().getSelection(); 3630 3631 3632 defBoolRes = true; 3633 3634 3635 if (boolRes != defBoolRes) { 3636 getConfig().put(getjtpenabled_widget().getAlias(), new Boolean (boolRes)); 3637 } 3638 3639 boolRes = getjopenabled_widget().getButton().getSelection(); 3640 3641 3642 defBoolRes = false; 3643 3644 3645 if (boolRes != defBoolRes) { 3646 getConfig().put(getjopenabled_widget().getAlias(), new Boolean (boolRes)); 3647 } 3648 3649 boolRes = getjopjop_cseenabled_widget().getButton().getSelection(); 3650 3651 3652 defBoolRes = false; 3653 3654 3655 if (boolRes != defBoolRes) { 3656 getConfig().put(getjopjop_cseenabled_widget().getAlias(), new Boolean (boolRes)); 3657 } 3658 3659 boolRes = getjopjop_csenaive_side_effect_widget().getButton().getSelection(); 3660 3661 3662 defBoolRes = false; 3663 3664 3665 if (boolRes != defBoolRes) { 3666 getConfig().put(getjopjop_csenaive_side_effect_widget().getAlias(), new Boolean (boolRes)); 3667 } 3668 3669 boolRes = getjopjop_bcmenabled_widget().getButton().getSelection(); 3670 3671 3672 defBoolRes = false; 3673 3674 3675 if (boolRes != defBoolRes) { 3676 getConfig().put(getjopjop_bcmenabled_widget().getAlias(), new Boolean (boolRes)); 3677 } 3678 3679 boolRes = getjopjop_bcmnaive_side_effect_widget().getButton().getSelection(); 3680 3681 3682 defBoolRes = false; 3683 3684 3685 if (boolRes != defBoolRes) { 3686 getConfig().put(getjopjop_bcmnaive_side_effect_widget().getAlias(), new Boolean (boolRes)); 3687 } 3688 3689 boolRes = getjopjop_lcmenabled_widget().getButton().getSelection(); 3690 3691 3692 defBoolRes = false; 3693 3694 3695 if (boolRes != defBoolRes) { 3696 getConfig().put(getjopjop_lcmenabled_widget().getAlias(), new Boolean (boolRes)); 3697 } 3698 3699 boolRes = getjopjop_lcmunroll_widget().getButton().getSelection(); 3700 3701 3702 defBoolRes = true; 3703 3704 3705 if (boolRes != defBoolRes) { 3706 getConfig().put(getjopjop_lcmunroll_widget().getAlias(), new Boolean (boolRes)); 3707 } 3708 3709 boolRes = getjopjop_lcmnaive_side_effect_widget().getButton().getSelection(); 3710 3711 3712 defBoolRes = false; 3713 3714 3715 if (boolRes != defBoolRes) { 3716 getConfig().put(getjopjop_lcmnaive_side_effect_widget().getAlias(), new Boolean (boolRes)); 3717 } 3718 3719 stringRes = getjopjop_lcmsafety_widget().getSelectedAlias(); 3720 3721 3722 defStringRes = "safe"; 3723 3724 3725 if (!stringRes.equals(defStringRes)) { 3726 getConfig().put(getjopjop_lcmsafety_widget().getAlias(), stringRes); 3727 } 3728 3729 boolRes = getjopjop_cpenabled_widget().getButton().getSelection(); 3730 3731 3732 defBoolRes = true; 3733 3734 3735 if (boolRes != defBoolRes) { 3736 getConfig().put(getjopjop_cpenabled_widget().getAlias(), new Boolean (boolRes)); 3737 } 3738 3739 boolRes = getjopjop_cponly_regular_locals_widget().getButton().getSelection(); 3740 3741 3742 defBoolRes = false; 3743 3744 3745 if (boolRes != defBoolRes) { 3746 getConfig().put(getjopjop_cponly_regular_locals_widget().getAlias(), new Boolean (boolRes)); 3747 } 3748 3749 boolRes = getjopjop_cponly_stack_locals_widget().getButton().getSelection(); 3750 3751 3752 defBoolRes = false; 3753 3754 3755 if (boolRes != defBoolRes) { 3756 getConfig().put(getjopjop_cponly_stack_locals_widget().getAlias(), new Boolean (boolRes)); 3757 } 3758 3759 boolRes = getjopjop_cpfenabled_widget().getButton().getSelection(); 3760 3761 3762 defBoolRes = true; 3763 3764 3765 if (boolRes != defBoolRes) { 3766 getConfig().put(getjopjop_cpfenabled_widget().getAlias(), new Boolean (boolRes)); 3767 } 3768 3769 boolRes = getjopjop_cbfenabled_widget().getButton().getSelection(); 3770 3771 3772 defBoolRes = true; 3773 3774 3775 if (boolRes != defBoolRes) { 3776 getConfig().put(getjopjop_cbfenabled_widget().getAlias(), new Boolean (boolRes)); 3777 } 3778 3779 boolRes = getjopjop_daeenabled_widget().getButton().getSelection(); 3780 3781 3782 defBoolRes = true; 3783 3784 3785 if (boolRes != defBoolRes) { 3786 getConfig().put(getjopjop_daeenabled_widget().getAlias(), new Boolean (boolRes)); 3787 } 3788 3789 boolRes = getjopjop_daeonly_tag_widget().getButton().getSelection(); 3790 3791 3792 defBoolRes = false; 3793 3794 3795 if (boolRes != defBoolRes) { 3796 getConfig().put(getjopjop_daeonly_tag_widget().getAlias(), new Boolean (boolRes)); 3797 } 3798 3799 boolRes = getjopjop_daeonly_stack_locals_widget().getButton().getSelection(); 3800 3801 3802 defBoolRes = false; 3803 3804 3805 if (boolRes != defBoolRes) { 3806 getConfig().put(getjopjop_daeonly_stack_locals_widget().getAlias(), new Boolean (boolRes)); 3807 } 3808 3809 boolRes = getjopjop_uce1enabled_widget().getButton().getSelection(); 3810 3811 3812 defBoolRes = true; 3813 3814 3815 if (boolRes != defBoolRes) { 3816 getConfig().put(getjopjop_uce1enabled_widget().getAlias(), new Boolean (boolRes)); 3817 } 3818 3819 boolRes = getjopjop_uce1remove_unreachable_traps_widget().getButton().getSelection(); 3820 3821 3822 defBoolRes = false; 3823 3824 3825 if (boolRes != defBoolRes) { 3826 getConfig().put(getjopjop_uce1remove_unreachable_traps_widget().getAlias(), new Boolean (boolRes)); 3827 } 3828 3829 boolRes = getjopjop_ubf1enabled_widget().getButton().getSelection(); 3830 3831 3832 defBoolRes = true; 3833 3834 3835 if (boolRes != defBoolRes) { 3836 getConfig().put(getjopjop_ubf1enabled_widget().getAlias(), new Boolean (boolRes)); 3837 } 3838 3839 boolRes = getjopjop_uce2enabled_widget().getButton().getSelection(); 3840 3841 3842 defBoolRes = true; 3843 3844 3845 if (boolRes != defBoolRes) { 3846 getConfig().put(getjopjop_uce2enabled_widget().getAlias(), new Boolean (boolRes)); 3847 } 3848 3849 boolRes = getjopjop_uce2remove_unreachable_traps_widget().getButton().getSelection(); 3850 3851 3852 defBoolRes = false; 3853 3854 3855 if (boolRes != defBoolRes) { 3856 getConfig().put(getjopjop_uce2remove_unreachable_traps_widget().getAlias(), new Boolean (boolRes)); 3857 } 3858 3859 boolRes = getjopjop_ubf2enabled_widget().getButton().getSelection(); 3860 3861 3862 defBoolRes = true; 3863 3864 3865 if (boolRes != defBoolRes) { 3866 getConfig().put(getjopjop_ubf2enabled_widget().getAlias(), new Boolean (boolRes)); 3867 } 3868 3869 boolRes = getjopjop_uleenabled_widget().getButton().getSelection(); 3870 3871 3872 defBoolRes = true; 3873 3874 3875 if (boolRes != defBoolRes) { 3876 getConfig().put(getjopjop_uleenabled_widget().getAlias(), new Boolean (boolRes)); 3877 } 3878 3879 boolRes = getjapenabled_widget().getButton().getSelection(); 3880 3881 3882 defBoolRes = true; 3883 3884 3885 if (boolRes != defBoolRes) { 3886 getConfig().put(getjapenabled_widget().getAlias(), new Boolean (boolRes)); 3887 } 3888 3889 boolRes = getjapjap_npcenabled_widget().getButton().getSelection(); 3890 3891 3892 defBoolRes = false; 3893 3894 3895 if (boolRes != defBoolRes) { 3896 getConfig().put(getjapjap_npcenabled_widget().getAlias(), new Boolean (boolRes)); 3897 } 3898 3899 boolRes = getjapjap_npconly_array_ref_widget().getButton().getSelection(); 3900 3901 3902 defBoolRes = false; 3903 3904 3905 if (boolRes != defBoolRes) { 3906 getConfig().put(getjapjap_npconly_array_ref_widget().getAlias(), new Boolean (boolRes)); 3907 } 3908 3909 boolRes = getjapjap_npcprofiling_widget().getButton().getSelection(); 3910 3911 3912 defBoolRes = false; 3913 3914 3915 if (boolRes != defBoolRes) { 3916 getConfig().put(getjapjap_npcprofiling_widget().getAlias(), new Boolean (boolRes)); 3917 } 3918 3919 boolRes = getjapjap_npcolorerenabled_widget().getButton().getSelection(); 3920 3921 3922 defBoolRes = false; 3923 3924 3925 if (boolRes != defBoolRes) { 3926 getConfig().put(getjapjap_npcolorerenabled_widget().getAlias(), new Boolean (boolRes)); 3927 } 3928 3929 boolRes = getjapjap_abcenabled_widget().getButton().getSelection(); 3930 3931 3932 defBoolRes = false; 3933 3934 3935 if (boolRes != defBoolRes) { 3936 getConfig().put(getjapjap_abcenabled_widget().getAlias(), new Boolean (boolRes)); 3937 } 3938 3939 boolRes = getjapjap_abcwith_all_widget().getButton().getSelection(); 3940 3941 3942 defBoolRes = false; 3943 3944 3945 if (boolRes != defBoolRes) { 3946 getConfig().put(getjapjap_abcwith_all_widget().getAlias(), new Boolean (boolRes)); 3947 } 3948 3949 boolRes = getjapjap_abcwith_cse_widget().getButton().getSelection(); 3950 3951 3952 defBoolRes = false; 3953 3954 3955 if (boolRes != defBoolRes) { 3956 getConfig().put(getjapjap_abcwith_cse_widget().getAlias(), new Boolean (boolRes)); 3957 } 3958 3959 boolRes = getjapjap_abcwith_arrayref_widget().getButton().getSelection(); 3960 3961 3962 defBoolRes = false; 3963 3964 3965 if (boolRes != defBoolRes) { 3966 getConfig().put(getjapjap_abcwith_arrayref_widget().getAlias(), new Boolean (boolRes)); 3967 } 3968 3969 boolRes = getjapjap_abcwith_fieldref_widget().getButton().getSelection(); 3970 3971 3972 defBoolRes = false; 3973 3974 3975 if (boolRes != defBoolRes) { 3976 getConfig().put(getjapjap_abcwith_fieldref_widget().getAlias(), new Boolean (boolRes)); 3977 } 3978 3979 boolRes = getjapjap_abcwith_classfield_widget().getButton().getSelection(); 3980 3981 3982 defBoolRes = false; 3983 3984 3985 if (boolRes != defBoolRes) { 3986 getConfig().put(getjapjap_abcwith_classfield_widget().getAlias(), new Boolean (boolRes)); 3987 } 3988 3989 boolRes = getjapjap_abcwith_rectarray_widget().getButton().getSelection(); 3990 3991 3992 defBoolRes = false; 3993 3994 3995 if (boolRes != defBoolRes) { 3996 getConfig().put(getjapjap_abcwith_rectarray_widget().getAlias(), new Boolean (boolRes)); 3997 } 3998 3999 boolRes = getjapjap_abcprofiling_widget().getButton().getSelection(); 4000 4001 4002 defBoolRes = false; 4003 4004 4005 if (boolRes != defBoolRes) { 4006 getConfig().put(getjapjap_abcprofiling_widget().getAlias(), new Boolean (boolRes)); 4007 } 4008 4009 boolRes = getjapjap_abcadd_color_tags_widget().getButton().getSelection(); 4010 4011 4012 defBoolRes = false; 4013 4014 4015 if (boolRes != defBoolRes) { 4016 getConfig().put(getjapjap_abcadd_color_tags_widget().getAlias(), new Boolean (boolRes)); 4017 } 4018 4019 boolRes = getjapjap_profilingenabled_widget().getButton().getSelection(); 4020 4021 4022 defBoolRes = false; 4023 4024 4025 if (boolRes != defBoolRes) { 4026 getConfig().put(getjapjap_profilingenabled_widget().getAlias(), new Boolean (boolRes)); 4027 } 4028 4029 boolRes = getjapjap_profilingnotmainentry_widget().getButton().getSelection(); 4030 4031 4032 defBoolRes = false; 4033 4034 4035 if (boolRes != defBoolRes) { 4036 getConfig().put(getjapjap_profilingnotmainentry_widget().getAlias(), new Boolean (boolRes)); 4037 } 4038 4039 boolRes = getjapjap_seaenabled_widget().getButton().getSelection(); 4040 4041 4042 defBoolRes = false; 4043 4044 4045 if (boolRes != defBoolRes) { 4046 getConfig().put(getjapjap_seaenabled_widget().getAlias(), new Boolean (boolRes)); 4047 } 4048 4049 boolRes = getjapjap_seanaive_widget().getButton().getSelection(); 4050 4051 4052 defBoolRes = false; 4053 4054 4055 if (boolRes != defBoolRes) { 4056 getConfig().put(getjapjap_seanaive_widget().getAlias(), new Boolean (boolRes)); 4057 } 4058 4059 boolRes = getjapjap_fieldrwenabled_widget().getButton().getSelection(); 4060 4061 4062 defBoolRes = false; 4063 4064 4065 if (boolRes != defBoolRes) { 4066 getConfig().put(getjapjap_fieldrwenabled_widget().getAlias(), new Boolean (boolRes)); 4067 } 4068 4069 stringRes = getjapjap_fieldrwthreshold_widget().getText().getText(); 4070 4071 defStringRes = "100"; 4072 4073 4074 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 4075 getConfig().put(getjapjap_fieldrwthreshold_widget().getAlias(), stringRes); 4076 } 4077 4078 boolRes = getjapjap_cgtaggerenabled_widget().getButton().getSelection(); 4079 4080 4081 defBoolRes = false; 4082 4083 4084 if (boolRes != defBoolRes) { 4085 getConfig().put(getjapjap_cgtaggerenabled_widget().getAlias(), new Boolean (boolRes)); 4086 } 4087 4088 boolRes = getjapjap_parityenabled_widget().getButton().getSelection(); 4089 4090 4091 defBoolRes = false; 4092 4093 4094 if (boolRes != defBoolRes) { 4095 getConfig().put(getjapjap_parityenabled_widget().getAlias(), new Boolean (boolRes)); 4096 } 4097 4098 boolRes = getjapjap_patenabled_widget().getButton().getSelection(); 4099 4100 4101 defBoolRes = false; 4102 4103 4104 if (boolRes != defBoolRes) { 4105 getConfig().put(getjapjap_patenabled_widget().getAlias(), new Boolean (boolRes)); 4106 } 4107 4108 boolRes = getjapjap_lvtaggerenabled_widget().getButton().getSelection(); 4109 4110 4111 defBoolRes = false; 4112 4113 4114 if (boolRes != defBoolRes) { 4115 getConfig().put(getjapjap_lvtaggerenabled_widget().getAlias(), new Boolean (boolRes)); 4116 } 4117 4118 boolRes = getjapjap_rdtaggerenabled_widget().getButton().getSelection(); 4119 4120 4121 defBoolRes = false; 4122 4123 4124 if (boolRes != defBoolRes) { 4125 getConfig().put(getjapjap_rdtaggerenabled_widget().getAlias(), new Boolean (boolRes)); 4126 } 4127 4128 boolRes = getjapjap_cheenabled_widget().getButton().getSelection(); 4129 4130 4131 defBoolRes = false; 4132 4133 4134 if (boolRes != defBoolRes) { 4135 getConfig().put(getjapjap_cheenabled_widget().getAlias(), new Boolean (boolRes)); 4136 } 4137 4138 boolRes = getjapjap_umtenabled_widget().getButton().getSelection(); 4139 4140 4141 defBoolRes = false; 4142 4143 4144 if (boolRes != defBoolRes) { 4145 getConfig().put(getjapjap_umtenabled_widget().getAlias(), new Boolean (boolRes)); 4146 } 4147 4148 boolRes = getjapjap_litenabled_widget().getButton().getSelection(); 4149 4150 4151 defBoolRes = false; 4152 4153 4154 if (boolRes != defBoolRes) { 4155 getConfig().put(getjapjap_litenabled_widget().getAlias(), new Boolean (boolRes)); 4156 } 4157 4158 boolRes = getjapjap_aetenabled_widget().getButton().getSelection(); 4159 4160 4161 defBoolRes = false; 4162 4163 4164 if (boolRes != defBoolRes) { 4165 getConfig().put(getjapjap_aetenabled_widget().getAlias(), new Boolean (boolRes)); 4166 } 4167 4168 stringRes = getjapjap_aetkind_widget().getSelectedAlias(); 4169 4170 4171 defStringRes = "optimistic"; 4172 4173 4174 if (!stringRes.equals(defStringRes)) { 4175 getConfig().put(getjapjap_aetkind_widget().getAlias(), stringRes); 4176 } 4177 4178 boolRes = getjapjap_dmtenabled_widget().getButton().getSelection(); 4179 4180 4181 defBoolRes = false; 4182 4183 4184 if (boolRes != defBoolRes) { 4185 getConfig().put(getjapjap_dmtenabled_widget().getAlias(), new Boolean (boolRes)); 4186 } 4187 4188 boolRes = getgbenabled_widget().getButton().getSelection(); 4189 4190 4191 defBoolRes = true; 4192 4193 4194 if (boolRes != defBoolRes) { 4195 getConfig().put(getgbenabled_widget().getAlias(), new Boolean (boolRes)); 4196 } 4197 4198 boolRes = getgbgb_a1enabled_widget().getButton().getSelection(); 4199 4200 4201 defBoolRes = true; 4202 4203 4204 if (boolRes != defBoolRes) { 4205 getConfig().put(getgbgb_a1enabled_widget().getAlias(), new Boolean (boolRes)); 4206 } 4207 4208 boolRes = getgbgb_a1only_stack_locals_widget().getButton().getSelection(); 4209 4210 4211 defBoolRes = true; 4212 4213 4214 if (boolRes != defBoolRes) { 4215 getConfig().put(getgbgb_a1only_stack_locals_widget().getAlias(), new Boolean (boolRes)); 4216 } 4217 4218 boolRes = getgbgb_cfenabled_widget().getButton().getSelection(); 4219 4220 4221 defBoolRes = true; 4222 4223 4224 if (boolRes != defBoolRes) { 4225 getConfig().put(getgbgb_cfenabled_widget().getAlias(), new Boolean (boolRes)); 4226 } 4227 4228 boolRes = getgbgb_a2enabled_widget().getButton().getSelection(); 4229 4230 4231 defBoolRes = true; 4232 4233 4234 if (boolRes != defBoolRes) { 4235 getConfig().put(getgbgb_a2enabled_widget().getAlias(), new Boolean (boolRes)); 4236 } 4237 4238 boolRes = getgbgb_a2only_stack_locals_widget().getButton().getSelection(); 4239 4240 4241 defBoolRes = true; 4242 4243 4244 if (boolRes != defBoolRes) { 4245 getConfig().put(getgbgb_a2only_stack_locals_widget().getAlias(), new Boolean (boolRes)); 4246 } 4247 4248 boolRes = getgbgb_uleenabled_widget().getButton().getSelection(); 4249 4250 4251 defBoolRes = true; 4252 4253 4254 if (boolRes != defBoolRes) { 4255 getConfig().put(getgbgb_uleenabled_widget().getAlias(), new Boolean (boolRes)); 4256 } 4257 4258 boolRes = getgopenabled_widget().getButton().getSelection(); 4259 4260 4261 defBoolRes = false; 4262 4263 4264 if (boolRes != defBoolRes) { 4265 getConfig().put(getgopenabled_widget().getAlias(), new Boolean (boolRes)); 4266 } 4267 4268 boolRes = getbbenabled_widget().getButton().getSelection(); 4269 4270 4271 defBoolRes = true; 4272 4273 4274 if (boolRes != defBoolRes) { 4275 getConfig().put(getbbenabled_widget().getAlias(), new Boolean (boolRes)); 4276 } 4277 4278 boolRes = getbbbb_lsoenabled_widget().getButton().getSelection(); 4279 4280 4281 defBoolRes = true; 4282 4283 4284 if (boolRes != defBoolRes) { 4285 getConfig().put(getbbbb_lsoenabled_widget().getAlias(), new Boolean (boolRes)); 4286 } 4287 4288 boolRes = getbbbb_lsodebug_widget().getButton().getSelection(); 4289 4290 4291 defBoolRes = false; 4292 4293 4294 if (boolRes != defBoolRes) { 4295 getConfig().put(getbbbb_lsodebug_widget().getAlias(), new Boolean (boolRes)); 4296 } 4297 4298 boolRes = getbbbb_lsointer_widget().getButton().getSelection(); 4299 4300 4301 defBoolRes = false; 4302 4303 4304 if (boolRes != defBoolRes) { 4305 getConfig().put(getbbbb_lsointer_widget().getAlias(), new Boolean (boolRes)); 4306 } 4307 4308 boolRes = getbbbb_lsosl_widget().getButton().getSelection(); 4309 4310 4311 defBoolRes = true; 4312 4313 4314 if (boolRes != defBoolRes) { 4315 getConfig().put(getbbbb_lsosl_widget().getAlias(), new Boolean (boolRes)); 4316 } 4317 4318 boolRes = getbbbb_lsosl2_widget().getButton().getSelection(); 4319 4320 4321 defBoolRes = false; 4322 4323 4324 if (boolRes != defBoolRes) { 4325 getConfig().put(getbbbb_lsosl2_widget().getAlias(), new Boolean (boolRes)); 4326 } 4327 4328 boolRes = getbbbb_lsosll_widget().getButton().getSelection(); 4329 4330 4331 defBoolRes = true; 4332 4333 4334 if (boolRes != defBoolRes) { 4335 getConfig().put(getbbbb_lsosll_widget().getAlias(), new Boolean (boolRes)); 4336 } 4337 4338 boolRes = getbbbb_lsosll2_widget().getButton().getSelection(); 4339 4340 4341 defBoolRes = false; 4342 4343 4344 if (boolRes != defBoolRes) { 4345 getConfig().put(getbbbb_lsosll2_widget().getAlias(), new Boolean (boolRes)); 4346 } 4347 4348 boolRes = getbbbb_phoenabled_widget().getButton().getSelection(); 4349 4350 4351 defBoolRes = true; 4352 4353 4354 if (boolRes != defBoolRes) { 4355 getConfig().put(getbbbb_phoenabled_widget().getAlias(), new Boolean (boolRes)); 4356 } 4357 4358 boolRes = getbbbb_uleenabled_widget().getButton().getSelection(); 4359 4360 4361 defBoolRes = true; 4362 4363 4364 if (boolRes != defBoolRes) { 4365 getConfig().put(getbbbb_uleenabled_widget().getAlias(), new Boolean (boolRes)); 4366 } 4367 4368 boolRes = getbbbb_lpenabled_widget().getButton().getSelection(); 4369 4370 4371 defBoolRes = true; 4372 4373 4374 if (boolRes != defBoolRes) { 4375 getConfig().put(getbbbb_lpenabled_widget().getAlias(), new Boolean (boolRes)); 4376 } 4377 4378 boolRes = getbbbb_lpunsplit_original_locals_widget().getButton().getSelection(); 4379 4380 4381 defBoolRes = false; 4382 4383 4384 if (boolRes != defBoolRes) { 4385 getConfig().put(getbbbb_lpunsplit_original_locals_widget().getAlias(), new Boolean (boolRes)); 4386 } 4387 4388 boolRes = getbopenabled_widget().getButton().getSelection(); 4389 4390 4391 defBoolRes = false; 4392 4393 4394 if (boolRes != defBoolRes) { 4395 getConfig().put(getbopenabled_widget().getAlias(), new Boolean (boolRes)); 4396 } 4397 4398 boolRes = gettagenabled_widget().getButton().getSelection(); 4399 4400 4401 defBoolRes = true; 4402 4403 4404 if (boolRes != defBoolRes) { 4405 getConfig().put(gettagenabled_widget().getAlias(), new Boolean (boolRes)); 4406 } 4407 4408 boolRes = gettagtag_lnenabled_widget().getButton().getSelection(); 4409 4410 4411 defBoolRes = true; 4412 4413 4414 if (boolRes != defBoolRes) { 4415 getConfig().put(gettagtag_lnenabled_widget().getAlias(), new Boolean (boolRes)); 4416 } 4417 4418 boolRes = gettagtag_anenabled_widget().getButton().getSelection(); 4419 4420 4421 defBoolRes = false; 4422 4423 4424 if (boolRes != defBoolRes) { 4425 getConfig().put(gettagtag_anenabled_widget().getAlias(), new Boolean (boolRes)); 4426 } 4427 4428 boolRes = gettagtag_depenabled_widget().getButton().getSelection(); 4429 4430 4431 defBoolRes = false; 4432 4433 4434 if (boolRes != defBoolRes) { 4435 getConfig().put(gettagtag_depenabled_widget().getAlias(), new Boolean (boolRes)); 4436 } 4437 4438 boolRes = gettagtag_fieldrwenabled_widget().getButton().getSelection(); 4439 4440 4441 defBoolRes = false; 4442 4443 4444 if (boolRes != defBoolRes) { 4445 getConfig().put(gettagtag_fieldrwenabled_widget().getAlias(), new Boolean (boolRes)); 4446 } 4447 4448 boolRes = getdbenabled_widget().getButton().getSelection(); 4449 4450 4451 defBoolRes = true; 4452 4453 4454 if (boolRes != defBoolRes) { 4455 getConfig().put(getdbenabled_widget().getAlias(), new Boolean (boolRes)); 4456 } 4457 4458 boolRes = getdbdb_transformationsenabled_widget().getButton().getSelection(); 4459 4460 4461 defBoolRes = true; 4462 4463 4464 if (boolRes != defBoolRes) { 4465 getConfig().put(getdbdb_transformationsenabled_widget().getAlias(), new Boolean (boolRes)); 4466 } 4467 4468 boolRes = getdbdb_renamerenabled_widget().getButton().getSelection(); 4469 4470 4471 defBoolRes = false; 4472 4473 4474 if (boolRes != defBoolRes) { 4475 getConfig().put(getdbdb_renamerenabled_widget().getAlias(), new Boolean (boolRes)); 4476 } 4477 4478 boolRes = getdbdb_renamerremove_fully_qualified_widget().getButton().getSelection(); 4479 4480 4481 defBoolRes = false; 4482 4483 4484 if (boolRes != defBoolRes) { 4485 getConfig().put(getdbdb_renamerremove_fully_qualified_widget().getAlias(), new Boolean (boolRes)); 4486 } 4487 4488 boolRes = getdbdb_deobfuscateenabled_widget().getButton().getSelection(); 4489 4490 4491 defBoolRes = true; 4492 4493 4494 if (boolRes != defBoolRes) { 4495 getConfig().put(getdbdb_deobfuscateenabled_widget().getAlias(), new Boolean (boolRes)); 4496 } 4497 4498 boolRes = getdbdb_force_recompileenabled_widget().getButton().getSelection(); 4499 4500 4501 defBoolRes = true; 4502 4503 4504 if (boolRes != defBoolRes) { 4505 getConfig().put(getdbdb_force_recompileenabled_widget().getAlias(), new Boolean (boolRes)); 4506 } 4507 4508 boolRes = getApplication_Mode_Optionsinclude_all_widget().getButton().getSelection(); 4509 4510 4511 defBoolRes = false; 4512 4513 4514 if (boolRes != defBoolRes) { 4515 getConfig().put(getApplication_Mode_Optionsinclude_all_widget().getAlias(), new Boolean (boolRes)); 4516 } 4517 4518 stringRes = getApplication_Mode_Optionsinclude_widget().getText().getText(); 4519 4520 defStringRes = ""; 4521 4522 4523 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 4524 getConfig().put(getApplication_Mode_Optionsinclude_widget().getAlias(), stringRes); 4525 } 4526 4527 stringRes = getApplication_Mode_Optionsexclude_widget().getText().getText(); 4528 4529 defStringRes = ""; 4530 4531 4532 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 4533 getConfig().put(getApplication_Mode_Optionsexclude_widget().getAlias(), stringRes); 4534 } 4535 4536 stringRes = getApplication_Mode_Optionsdynamic_class_widget().getText().getText(); 4537 4538 defStringRes = ""; 4539 4540 4541 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 4542 getConfig().put(getApplication_Mode_Optionsdynamic_class_widget().getAlias(), stringRes); 4543 } 4544 4545 stringRes = getApplication_Mode_Optionsdynamic_dir_widget().getText().getText(); 4546 4547 defStringRes = ""; 4548 4549 4550 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 4551 getConfig().put(getApplication_Mode_Optionsdynamic_dir_widget().getAlias(), stringRes); 4552 } 4553 4554 stringRes = getApplication_Mode_Optionsdynamic_package_widget().getText().getText(); 4555 4556 defStringRes = ""; 4557 4558 4559 if ( (!(stringRes.equals(defStringRes))) && (stringRes != null) && (stringRes.length() != 0)) { 4560 getConfig().put(getApplication_Mode_Optionsdynamic_package_widget().getAlias(), stringRes); 4561 } 4562 4563 boolRes = getInput_Attribute_Optionskeep_line_number_widget().getButton().getSelection(); 4564 4565 4566 defBoolRes = false; 4567 4568 4569 if (boolRes != defBoolRes) { 4570 getConfig().put(getInput_Attribute_Optionskeep_line_number_widget().getAlias(), new Boolean (boolRes)); 4571 } 4572 4573 boolRes = getInput_Attribute_Optionskeep_offset_widget().getButton().getSelection(); 4574 4575 4576 defBoolRes = false; 4577 4578 4579 if (boolRes != defBoolRes) { 4580 getConfig().put(getInput_Attribute_Optionskeep_offset_widget().getAlias(), new Boolean (boolRes)); 4581 } 4582 4583 boolRes = getAnnotation_Optionsannot_purity_widget().getButton().getSelection(); 4584 4585 4586 defBoolRes = false; 4587 4588 4589 if (boolRes != defBoolRes) { 4590 getConfig().put(getAnnotation_Optionsannot_purity_widget().getAlias(), new Boolean (boolRes)); 4591 } 4592 4593 boolRes = getAnnotation_Optionsannot_nullpointer_widget().getButton().getSelection(); 4594 4595 4596 defBoolRes = false; 4597 4598 4599 if (boolRes != defBoolRes) { 4600 getConfig().put(getAnnotation_Optionsannot_nullpointer_widget().getAlias(), new Boolean (boolRes)); 4601 } 4602 4603 boolRes = getAnnotation_Optionsannot_arraybounds_widget().getButton().getSelection(); 4604 4605 4606 defBoolRes = false; 4607 4608 4609 if (boolRes != defBoolRes) { 4610 getConfig().put(getAnnotation_Optionsannot_arraybounds_widget().getAlias(), new Boolean (boolRes)); 4611 } 4612 4613 boolRes = getAnnotation_Optionsannot_side_effect_widget().getButton().getSelection(); 4614 4615 4616 defBoolRes = false; 4617 4618 4619 if (boolRes != defBoolRes) { 4620 getConfig().put(getAnnotation_Optionsannot_side_effect_widget().getAlias(), new Boolean (boolRes)); 4621 } 4622 4623 boolRes = getAnnotation_Optionsannot_fieldrw_widget().getButton().getSelection(); 4624 4625 4626 defBoolRes = false; 4627 4628 4629 if (boolRes != defBoolRes) { 4630 getConfig().put(getAnnotation_Optionsannot_fieldrw_widget().getAlias(), new Boolean (boolRes)); 4631 } 4632 4633 boolRes = getMiscellaneous_Optionstime_widget().getButton().getSelection(); 4634 4635 4636 defBoolRes = false; 4637 4638 4639 if (boolRes != defBoolRes) { 4640 getConfig().put(getMiscellaneous_Optionstime_widget().getAlias(), new Boolean (boolRes)); 4641 } 4642 4643 boolRes = getMiscellaneous_Optionssubtract_gc_widget().getButton().getSelection(); 4644 4645 4646 defBoolRes = false; 4647 4648 4649 if (boolRes != defBoolRes) { 4650 getConfig().put(getMiscellaneous_Optionssubtract_gc_widget().getAlias(), new Boolean (boolRes)); 4651 } 4652 4653 4654 setSootMainClass(getSootMainClassWidget().getText().getText()); 4655 } 4656 4657 protected HashMap savePressed() { 4658 4659 createNewConfig(); 4660 4661 return getConfig(); 4662 } 4663 4664 4665 4666 4671 protected SootOption getInitialInput() { 4672 SootOption root = new SootOption("", ""); 4673 SootOption parent; 4674 SootOption subParent; 4675 SootOption subSectParent; 4676 4677 4678 4679 SootOption General_Options_branch = new SootOption("General Options", "General_Options"); 4680 root.addChild(General_Options_branch); 4681 parent = General_Options_branch; 4682 4683 SootOption Input_Options_branch = new SootOption("Input Options", "Input_Options"); 4684 root.addChild(Input_Options_branch); 4685 parent = Input_Options_branch; 4686 4687 SootOption Output_Options_branch = new SootOption("Output Options", "Output_Options"); 4688 root.addChild(Output_Options_branch); 4689 parent = Output_Options_branch; 4690 4691 SootOption Processing_Options_branch = new SootOption("Processing Options", "Processing_Options"); 4692 root.addChild(Processing_Options_branch); 4693 parent = Processing_Options_branch; 4694 4695 SootOption Phase_Options_branch = new SootOption("Phase Options", "p"); 4696 root.addChild(Phase_Options_branch); 4697 4698 parent = Phase_Options_branch; 4699 4700 4701 4702 SootOption jb_branch = new SootOption("Jimple Body Creation", "jb"); 4705 parent.addChild(jb_branch); 4706 subParent = jb_branch; 4707 4708 4709 4710 SootOption jb_jb_ls_branch = new SootOption("Local Splitter", "jbjb_ls"); 4711 subParent.addChild(jb_jb_ls_branch); 4712 4713 4714 4715 4716 4717 subSectParent = jb_jb_ls_branch; 4718 4719 4720 SootOption jb_jb_a_branch = new SootOption("Jimple Local Aggregator", "jbjb_a"); 4721 subParent.addChild(jb_jb_a_branch); 4722 4723 4724 4725 4726 4727 subSectParent = jb_jb_a_branch; 4728 4729 4730 SootOption jb_jb_ule_branch = new SootOption("Unused Local Eliminator", "jbjb_ule"); 4731 subParent.addChild(jb_jb_ule_branch); 4732 4733 4734 4735 4736 4737 subSectParent = jb_jb_ule_branch; 4738 4739 4740 SootOption jb_jb_tr_branch = new SootOption("Type Assigner", "jbjb_tr"); 4741 subParent.addChild(jb_jb_tr_branch); 4742 4743 4744 4745 4746 4747 subSectParent = jb_jb_tr_branch; 4748 4749 4750 SootOption jb_jb_ulp_branch = new SootOption("Unsplit-originals Local Packer", "jbjb_ulp"); 4751 subParent.addChild(jb_jb_ulp_branch); 4752 4753 4754 4755 4756 4757 subSectParent = jb_jb_ulp_branch; 4758 4759 4760 SootOption jb_jb_lns_branch = new SootOption("Local Name Standardizer", "jbjb_lns"); 4761 subParent.addChild(jb_jb_lns_branch); 4762 4763 4764 4765 4766 4767 subSectParent = jb_jb_lns_branch; 4768 4769 4770 SootOption jb_jb_cp_branch = new SootOption("Copy Propagator", "jbjb_cp"); 4771 subParent.addChild(jb_jb_cp_branch); 4772 4773 4774 4775 4776 4777 subSectParent = jb_jb_cp_branch; 4778 4779 4780 SootOption jb_jb_dae_branch = new SootOption("Dead Assignment Eliminator", "jbjb_dae"); 4781 subParent.addChild(jb_jb_dae_branch); 4782 4783 4784 4785 4786 4787 subSectParent = jb_jb_dae_branch; 4788 4789 4790 SootOption jb_jb_cp_ule_branch = new SootOption("Post-copy propagation Unused Local Eliminator", "jbjb_cp_ule"); 4791 subParent.addChild(jb_jb_cp_ule_branch); 4792 4793 4794 4795 4796 4797 subSectParent = jb_jb_cp_ule_branch; 4798 4799 4800 SootOption jb_jb_lp_branch = new SootOption("Local Packer", "jbjb_lp"); 4801 subParent.addChild(jb_jb_lp_branch); 4802 4803 4804 4805 4806 4807 subSectParent = jb_jb_lp_branch; 4808 4809 4810 SootOption jb_jb_ne_branch = new SootOption("Nop Eliminator", "jbjb_ne"); 4811 subParent.addChild(jb_jb_ne_branch); 4812 4813 4814 4815 4816 4817 subSectParent = jb_jb_ne_branch; 4818 4819 4820 SootOption jb_jb_uce_branch = new SootOption("Unreachable Code Eliminator", "jbjb_uce"); 4821 subParent.addChild(jb_jb_uce_branch); 4822 4823 4824 4825 4826 4827 subSectParent = jb_jb_uce_branch; 4828 4829 4830 SootOption jb_jb_tt_branch = new SootOption("Trap Tightener", "jbjb_tt"); 4831 subParent.addChild(jb_jb_tt_branch); 4832 4833 4834 4835 4836 4837 subSectParent = jb_jb_tt_branch; 4838 4839 4840 SootOption jj_branch = new SootOption("Java To Jimple Body Creation", "jj"); 4842 parent.addChild(jj_branch); 4843 subParent = jj_branch; 4844 4845 4846 4847 SootOption jj_jj_ls_branch = new SootOption("Local Splitter", "jjjj_ls"); 4848 subParent.addChild(jj_jj_ls_branch); 4849 4850 4851 4852 4853 4854 subSectParent = jj_jj_ls_branch; 4855 4856 4857 SootOption jj_jj_a_branch = new SootOption("Jimple Local Aggregator", "jjjj_a"); 4858 subParent.addChild(jj_jj_a_branch); 4859 4860 4861 4862 4863 4864 subSectParent = jj_jj_a_branch; 4865 4866 4867 SootOption jj_jj_ule_branch = new SootOption("Unused Local Eliminator", "jjjj_ule"); 4868 subParent.addChild(jj_jj_ule_branch); 4869 4870 4871 4872 4873 4874 subSectParent = jj_jj_ule_branch; 4875 4876 4877 SootOption jj_jj_tr_branch = new SootOption("Type Assigner", "jjjj_tr"); 4878 subParent.addChild(jj_jj_tr_branch); 4879 4880 4881 4882 4883 4884 subSectParent = jj_jj_tr_branch; 4885 4886 4887 SootOption jj_jj_ulp_branch = new SootOption("Unsplit-originals Local Packer", "jjjj_ulp"); 4888 subParent.addChild(jj_jj_ulp_branch); 4889 4890 4891 4892 4893 4894 subSectParent = jj_jj_ulp_branch; 4895 4896 4897 SootOption jj_jj_lns_branch = new SootOption("Local Name Standardizer", "jjjj_lns"); 4898 subParent.addChild(jj_jj_lns_branch); 4899 4900 4901 4902 4903 4904 subSectParent = jj_jj_lns_branch; 4905 4906 4907 SootOption jj_jj_cp_branch = new SootOption("Copy Propagator", "jjjj_cp"); 4908 subParent.addChild(jj_jj_cp_branch); 4909 4910 4911 4912 4913 4914 subSectParent = jj_jj_cp_branch; 4915 4916 4917 SootOption jj_jj_dae_branch = new SootOption("Dead Assignment Eliminator", "jjjj_dae"); 4918 subParent.addChild(jj_jj_dae_branch); 4919 4920 4921 4922 4923 4924 subSectParent = jj_jj_dae_branch; 4925 4926 4927 SootOption jj_jj_cp_ule_branch = new SootOption("Post-copy propagation Unused Local Eliminator", "jjjj_cp_ule"); 4928 subParent.addChild(jj_jj_cp_ule_branch); 4929 4930 4931 4932 4933 4934 subSectParent = jj_jj_cp_ule_branch; 4935 4936 4937 SootOption jj_jj_lp_branch = new SootOption("Local Packer", "jjjj_lp"); 4938 subParent.addChild(jj_jj_lp_branch); 4939 4940 4941 4942 4943 4944 subSectParent = jj_jj_lp_branch; 4945 4946 4947 SootOption jj_jj_ne_branch = new SootOption("Nop Eliminator", "jjjj_ne"); 4948 subParent.addChild(jj_jj_ne_branch); 4949 4950 4951 4952 4953 4954 subSectParent = jj_jj_ne_branch; 4955 4956 4957 SootOption jj_jj_uce_branch = new SootOption("Unreachable Code Eliminator", "jjjj_uce"); 4958 subParent.addChild(jj_jj_uce_branch); 4959 4960 4961 4962 4963 4964 subSectParent = jj_jj_uce_branch; 4965 4966 4967 SootOption cg_branch = new SootOption("Call Graph Constructor", "cg"); 4969 parent.addChild(cg_branch); 4970 subParent = cg_branch; 4971 4972 4973 4974 SootOption cg_cg_cha_branch = new SootOption("Class Hierarchy Analysis", "cgcg_cha"); 4975 subParent.addChild(cg_cg_cha_branch); 4976 4977 4978 4979 4980 4981 subSectParent = cg_cg_cha_branch; 4982 4983 4984 SootOption cg_cg_spark_branch = new SootOption("Spark", "cgcg_spark"); 4985 subParent.addChild(cg_cg_spark_branch); 4986 4987 4988 4989 4990 4991 subSectParent = cg_cg_spark_branch; 4992 4993 4994 SootOption cg_Spark_General_Options_branch = new SootOption("Spark General Options", "cgSpark_General_Options"); 4995 4996 subSectParent.addChild(cg_Spark_General_Options_branch); 4997 4998 SootOption cg_Spark_Pointer_Assignment_Graph_Building_Options_branch = new SootOption("Spark Pointer Assignment Graph Building Options", "cgSpark_Pointer_Assignment_Graph_Building_Options"); 4999 5000 subSectParent.addChild(cg_Spark_Pointer_Assignment_Graph_Building_Options_branch); 5001 5002 SootOption cg_Spark_Pointer_Assignment_Graph_Simplification_Options_branch = new SootOption("Spark Pointer Assignment Graph Simplification Options", "cgSpark_Pointer_Assignment_Graph_Simplification_Options"); 5003 5004 subSectParent.addChild(cg_Spark_Pointer_Assignment_Graph_Simplification_Options_branch); 5005 5006 SootOption cg_Spark_Points_To_Set_Flowing_Options_branch = new SootOption("Spark Points-To Set Flowing Options", "cgSpark_Points_To_Set_Flowing_Options"); 5007 5008 subSectParent.addChild(cg_Spark_Points_To_Set_Flowing_Options_branch); 5009 5010 SootOption cg_Spark_Output_Options_branch = new SootOption("Spark Output Options", "cgSpark_Output_Options"); 5011 5012 subSectParent.addChild(cg_Spark_Output_Options_branch); 5013 5014 SootOption cg_cg_paddle_branch = new SootOption("Paddle", "cgcg_paddle"); 5015 subParent.addChild(cg_cg_paddle_branch); 5016 5017 5018 5019 5020 5021 subSectParent = cg_cg_paddle_branch; 5022 5023 5024 SootOption cg_Paddle_General_Options_branch = new SootOption("Paddle General Options", "cgPaddle_General_Options"); 5025 5026 subSectParent.addChild(cg_Paddle_General_Options_branch); 5027 5028 SootOption cg_Paddle_Context_Sensitivity_Options_branch = new SootOption("Paddle Context Sensitivity Options", "cgPaddle_Context_Sensitivity_Options"); 5029 5030 subSectParent.addChild(cg_Paddle_Context_Sensitivity_Options_branch); 5031 5032 SootOption cg_Paddle_Pointer_Assignment_Graph_Building_Options_branch = new SootOption("Paddle Pointer Assignment Graph Building Options", "cgPaddle_Pointer_Assignment_Graph_Building_Options"); 5033 5034 subSectParent.addChild(cg_Paddle_Pointer_Assignment_Graph_Building_Options_branch); 5035 5036 SootOption cg_Paddle_Points_To_Set_Flowing_Options_branch = new SootOption("Paddle Points-To Set Flowing Options", "cgPaddle_Points_To_Set_Flowing_Options"); 5037 5038 subSectParent.addChild(cg_Paddle_Points_To_Set_Flowing_Options_branch); 5039 5040 SootOption cg_Paddle_Output_Options_branch = new SootOption("Paddle Output Options", "cgPaddle_Output_Options"); 5041 5042 subSectParent.addChild(cg_Paddle_Output_Options_branch); 5043 5044 SootOption wstp_branch = new SootOption("Whole Shimple Transformation Pack", "wstp"); 5046 parent.addChild(wstp_branch); 5047 subParent = wstp_branch; 5048 5049 5050 5051 SootOption wsop_branch = new SootOption("Whole Shimple Optimization Pack", "wsop"); 5053 parent.addChild(wsop_branch); 5054 subParent = wsop_branch; 5055 5056 5057 5058 SootOption wjtp_branch = new SootOption("Whole-Jimple Transformation Pack", "wjtp"); 5060 parent.addChild(wjtp_branch); 5061 subParent = wjtp_branch; 5062 5063 5064 5065 SootOption wjop_branch = new SootOption("Whole-Jimple Optimization Pack", "wjop"); 5067 parent.addChild(wjop_branch); 5068 subParent = wjop_branch; 5069 5070 5071 5072 SootOption wjop_wjop_smb_branch = new SootOption("Static Method Binder", "wjopwjop_smb"); 5073 subParent.addChild(wjop_wjop_smb_branch); 5074 5075 5076 5077 5078 5079 subSectParent = wjop_wjop_smb_branch; 5080 5081 5082 SootOption wjop_wjop_si_branch = new SootOption("Static Inliner", "wjopwjop_si"); 5083 subParent.addChild(wjop_wjop_si_branch); 5084 5085 5086 5087 5088 5089 subSectParent = wjop_wjop_si_branch; 5090 5091 5092 SootOption wjap_branch = new SootOption("Whole-Jimple Annotation Pack", "wjap"); 5094 parent.addChild(wjap_branch); 5095 subParent = wjap_branch; 5096 5097 5098 5099 SootOption wjap_wjap_ra_branch = new SootOption("Rectangular Array Finder", "wjapwjap_ra"); 5100 subParent.addChild(wjap_wjap_ra_branch); 5101 5102 5103 5104 5105 5106 subSectParent = wjap_wjap_ra_branch; 5107 5108 5109 SootOption wjap_wjap_umt_branch = new SootOption("Unreachable Method Tagger", "wjapwjap_umt"); 5110 subParent.addChild(wjap_wjap_umt_branch); 5111 5112 5113 5114 5115 5116 subSectParent = wjap_wjap_umt_branch; 5117 5118 5119 SootOption wjap_wjap_uft_branch = new SootOption("Unreachable Fields Tagger", "wjapwjap_uft"); 5120 subParent.addChild(wjap_wjap_uft_branch); 5121 5122 5123 5124 5125 5126 subSectParent = wjap_wjap_uft_branch; 5127 5128 5129 SootOption wjap_wjap_tqt_branch = new SootOption("Tightest Qualifiers Tagger", "wjapwjap_tqt"); 5130 subParent.addChild(wjap_wjap_tqt_branch); 5131 5132 5133 5134 5135 5136 subSectParent = wjap_wjap_tqt_branch; 5137 5138 5139 SootOption wjap_wjap_cgg_branch = new SootOption("Call Graph Grapher", "wjapwjap_cgg"); 5140 subParent.addChild(wjap_wjap_cgg_branch); 5141 5142 5143 5144 5145 5146 subSectParent = wjap_wjap_cgg_branch; 5147 5148 5149 SootOption wjap_wjap_purity_branch = new SootOption("Purity Analysis [AM]", "wjapwjap_purity"); 5150 subParent.addChild(wjap_wjap_purity_branch); 5151 5152 5153 5154 5155 5156 subSectParent = wjap_wjap_purity_branch; 5157 5158 5159 SootOption shimple_branch = new SootOption("Shimple Control", "shimple"); 5161 parent.addChild(shimple_branch); 5162 subParent = shimple_branch; 5163 5164 5165 5166 SootOption stp_branch = new SootOption("Shimple Transformation Pack", "stp"); 5168 parent.addChild(stp_branch); 5169 subParent = stp_branch; 5170 5171 5172 5173 SootOption sop_branch = new SootOption("Shimple Optimization Pack", "sop"); 5175 parent.addChild(sop_branch); 5176 subParent = sop_branch; 5177 5178 5179 5180 SootOption sop_sop_cpf_branch = new SootOption("Shimple Constant Propagator and Folder", "sopsop_cpf"); 5181 subParent.addChild(sop_sop_cpf_branch); 5182 5183 5184 5185 5186 5187 subSectParent = sop_sop_cpf_branch; 5188 5189 5190 SootOption jtp_branch = new SootOption("Jimple Transformation Pack", "jtp"); 5192 parent.addChild(jtp_branch); 5193 subParent = jtp_branch; 5194 5195 5196 5197 SootOption jop_branch = new SootOption("Jimple Optimization Pack", "jop"); 5199 parent.addChild(jop_branch); 5200 subParent = jop_branch; 5201 5202 5203 5204 SootOption jop_jop_cse_branch = new SootOption("Common Subexpression Eliminator", "jopjop_cse"); 5205 subParent.addChild(jop_jop_cse_branch); 5206 5207 5208 5209 5210 5211 subSectParent = jop_jop_cse_branch; 5212 5213 5214 SootOption jop_jop_bcm_branch = new SootOption("Busy Code Motion", "jopjop_bcm"); 5215 subParent.addChild(jop_jop_bcm_branch); 5216 5217 5218 5219 5220 5221 subSectParent = jop_jop_bcm_branch; 5222 5223 5224 SootOption jop_jop_lcm_branch = new SootOption("Lazy Code Motion", "jopjop_lcm"); 5225 subParent.addChild(jop_jop_lcm_branch); 5226 5227 5228 5229 5230 5231 subSectParent = jop_jop_lcm_branch; 5232 5233 5234 SootOption jop_jop_cp_branch = new SootOption("Copy Propagator", "jopjop_cp"); 5235 subParent.addChild(jop_jop_cp_branch); 5236 5237 5238 5239 5240 5241 subSectParent = jop_jop_cp_branch; 5242 5243 5244 SootOption jop_jop_cpf_branch = new SootOption("Jimple Constant Propagator and Folder", "jopjop_cpf"); 5245 subParent.addChild(jop_jop_cpf_branch); 5246 5247 5248 5249 5250 5251 subSectParent = jop_jop_cpf_branch; 5252 5253 5254 SootOption jop_jop_cbf_branch = new SootOption("Conditional Branch Folder", "jopjop_cbf"); 5255 subParent.addChild(jop_jop_cbf_branch); 5256 5257 5258 5259 5260 5261 subSectParent = jop_jop_cbf_branch; 5262 5263 5264 SootOption jop_jop_dae_branch = new SootOption("Dead Assignment Eliminator", "jopjop_dae"); 5265 subParent.addChild(jop_jop_dae_branch); 5266 5267 5268 5269 5270 5271 subSectParent = jop_jop_dae_branch; 5272 5273 5274 SootOption jop_jop_uce1_branch = new SootOption("Unreachable Code Eliminator 1", "jopjop_uce1"); 5275 subParent.addChild(jop_jop_uce1_branch); 5276 5277 5278 5279 5280 5281 subSectParent = jop_jop_uce1_branch; 5282 5283 5284 SootOption jop_jop_ubf1_branch = new SootOption("Unconditional Branch Folder 1", "jopjop_ubf1"); 5285 subParent.addChild(jop_jop_ubf1_branch); 5286 5287 5288 5289 5290 5291 subSectParent = jop_jop_ubf1_branch; 5292 5293 5294 SootOption jop_jop_uce2_branch = new SootOption("Unreachable Code Eliminator 2", "jopjop_uce2"); 5295 subParent.addChild(jop_jop_uce2_branch); 5296 5297 5298 5299 5300 5301 subSectParent = jop_jop_uce2_branch; 5302 5303 5304 SootOption jop_jop_ubf2_branch = new SootOption("Unconditional Branch Folder 2", "jopjop_ubf2"); 5305 subParent.addChild(jop_jop_ubf2_branch); 5306 5307 5308 5309 5310 5311 subSectParent = jop_jop_ubf2_branch; 5312 5313 5314 SootOption jop_jop_ule_branch = new SootOption("Unused Local Eliminator", "jopjop_ule"); 5315 subParent.addChild(jop_jop_ule_branch); 5316 5317 5318 5319 5320 5321 subSectParent = jop_jop_ule_branch; 5322 5323 5324 SootOption jap_branch = new SootOption("Jimple Annotation Pack", "jap"); 5326 parent.addChild(jap_branch); 5327 subParent = jap_branch; 5328 5329 5330 5331 SootOption jap_jap_npc_branch = new SootOption("Null Pointer Checker", "japjap_npc"); 5332 subParent.addChild(jap_jap_npc_branch); 5333 5334 5335 5336 5337 5338 subSectParent = jap_jap_npc_branch; 5339 5340 5341 SootOption jap_jap_npcolorer_branch = new SootOption("Null Pointer Colourer", "japjap_npcolorer"); 5342 subParent.addChild(jap_jap_npcolorer_branch); 5343 5344 5345 5346 5347 5348 subSectParent = jap_jap_npcolorer_branch; 5349 5350 5351 SootOption jap_jap_abc_branch = new SootOption("Array Bound Checker", "japjap_abc"); 5352 subParent.addChild(jap_jap_abc_branch); 5353 5354 5355 5356 5357 5358 subSectParent = jap_jap_abc_branch; 5359 5360 5361 SootOption jap_jap_profiling_branch = new SootOption("Profiling Generator", "japjap_profiling"); 5362 subParent.addChild(jap_jap_profiling_branch); 5363 5364 5365 5366 5367 5368 subSectParent = jap_jap_profiling_branch; 5369 5370 5371 SootOption jap_jap_sea_branch = new SootOption("Side Effect tagger", "japjap_sea"); 5372 subParent.addChild(jap_jap_sea_branch); 5373 5374 5375 5376 5377 5378 subSectParent = jap_jap_sea_branch; 5379 5380 5381 SootOption jap_jap_fieldrw_branch = new SootOption("Field Read/Write Tagger", "japjap_fieldrw"); 5382 subParent.addChild(jap_jap_fieldrw_branch); 5383 5384 5385 5386 5387 5388 subSectParent = jap_jap_fieldrw_branch; 5389 5390 5391 SootOption jap_jap_cgtagger_branch = new SootOption("Call Graph Tagger", "japjap_cgtagger"); 5392 subParent.addChild(jap_jap_cgtagger_branch); 5393 5394 5395 5396 5397 5398 subSectParent = jap_jap_cgtagger_branch; 5399 5400 5401 SootOption jap_jap_parity_branch = new SootOption("Parity Tagger", "japjap_parity"); 5402 subParent.addChild(jap_jap_parity_branch); 5403 5404 5405 5406 5407 5408 subSectParent = jap_jap_parity_branch; 5409 5410 5411 SootOption jap_jap_pat_branch = new SootOption("Parameter Alias Tagger", "japjap_pat"); 5412 subParent.addChild(jap_jap_pat_branch); 5413 5414 5415 5416 5417 5418 subSectParent = jap_jap_pat_branch; 5419 5420 5421 SootOption jap_jap_lvtagger_branch = new SootOption("Live Variables Tagger", "japjap_lvtagger"); 5422 subParent.addChild(jap_jap_lvtagger_branch); 5423 5424 5425 5426 5427 5428 subSectParent = jap_jap_lvtagger_branch; 5429 5430 5431 SootOption jap_jap_rdtagger_branch = new SootOption("Reaching Defs Tagger", "japjap_rdtagger"); 5432 subParent.addChild(jap_jap_rdtagger_branch); 5433 5434 5435 5436 5437 5438 subSectParent = jap_jap_rdtagger_branch; 5439 5440 5441 SootOption jap_jap_che_branch = new SootOption("Cast Elimination Check Tagger", "japjap_che"); 5442 subParent.addChild(jap_jap_che_branch); 5443 5444 5445 5446 5447 5448 subSectParent = jap_jap_che_branch; 5449 5450 5451 SootOption jap_jap_umt_branch = new SootOption("Unreachable Method Transformer", "japjap_umt"); 5452 subParent.addChild(jap_jap_umt_branch); 5453 5454 5455 5456 5457 5458 subSectParent = jap_jap_umt_branch; 5459 5460 5461 SootOption jap_jap_lit_branch = new SootOption("Loop Invariant Tagger", "japjap_lit"); 5462 subParent.addChild(jap_jap_lit_branch); 5463 5464 5465 5466 5467 5468 subSectParent = jap_jap_lit_branch; 5469 5470 5471 SootOption jap_jap_aet_branch = new SootOption("Available Expressions Tagger", "japjap_aet"); 5472 subParent.addChild(jap_jap_aet_branch); 5473 5474 5475 5476 5477 5478 subSectParent = jap_jap_aet_branch; 5479 5480 5481 SootOption jap_jap_dmt_branch = new SootOption("Dominators Tagger", "japjap_dmt"); 5482 subParent.addChild(jap_jap_dmt_branch); 5483 5484 5485 5486 5487 5488 subSectParent = jap_jap_dmt_branch; 5489 5490 5491 SootOption gb_branch = new SootOption("Grimp Body Creation", "gb"); 5493 parent.addChild(gb_branch); 5494 subParent = gb_branch; 5495 5496 5497 5498 SootOption gb_gb_a1_branch = new SootOption("Grimp Pre-folding Aggregator", "gbgb_a1"); 5499 subParent.addChild(gb_gb_a1_branch); 5500 5501 5502 5503 5504 5505 subSectParent = gb_gb_a1_branch; 5506 5507 5508 SootOption gb_gb_cf_branch = new SootOption("Grimp Constructor Folder", "gbgb_cf"); 5509 subParent.addChild(gb_gb_cf_branch); 5510 5511 5512 5513 5514 5515 subSectParent = gb_gb_cf_branch; 5516 5517 5518 SootOption gb_gb_a2_branch = new SootOption("Grimp Post-folding Aggregator", "gbgb_a2"); 5519 subParent.addChild(gb_gb_a2_branch); 5520 5521 5522 5523 5524 5525 subSectParent = gb_gb_a2_branch; 5526 5527 5528 SootOption gb_gb_ule_branch = new SootOption("Grimp Unused Local Eliminator", "gbgb_ule"); 5529 subParent.addChild(gb_gb_ule_branch); 5530 5531 5532 5533 5534 5535 subSectParent = gb_gb_ule_branch; 5536 5537 5538 SootOption gop_branch = new SootOption("Grimp Optimization", "gop"); 5540 parent.addChild(gop_branch); 5541 subParent = gop_branch; 5542 5543 5544 5545 SootOption bb_branch = new SootOption("Baf Body Creation", "bb"); 5547 parent.addChild(bb_branch); 5548 subParent = bb_branch; 5549 5550 5551 5552 SootOption bb_bb_lso_branch = new SootOption("Load Store Optimizer", "bbbb_lso"); 5553 subParent.addChild(bb_bb_lso_branch); 5554 5555 5556 5557 5558 5559 subSectParent = bb_bb_lso_branch; 5560 5561 5562 SootOption bb_bb_pho_branch = new SootOption("Peephole Optimizer", "bbbb_pho"); 5563 subParent.addChild(bb_bb_pho_branch); 5564 5565 5566 5567 5568 5569 subSectParent = bb_bb_pho_branch; 5570 5571 5572 SootOption bb_bb_ule_branch = new SootOption("Unused Local Eliminator", "bbbb_ule"); 5573 subParent.addChild(bb_bb_ule_branch); 5574 5575 5576 5577 5578 5579 subSectParent = bb_bb_ule_branch; 5580 5581 5582 SootOption bb_bb_lp_branch = new SootOption("Local Packer", "bbbb_lp"); 5583 subParent.addChild(bb_bb_lp_branch); 5584 5585 5586 5587 5588 5589 subSectParent = bb_bb_lp_branch; 5590 5591 5592 SootOption bop_branch = new SootOption("Baf Optimization", "bop"); 5594 parent.addChild(bop_branch); 5595 subParent = bop_branch; 5596 5597 5598 5599 SootOption tag_branch = new SootOption("Tag Aggregator", "tag"); 5601 parent.addChild(tag_branch); 5602 subParent = tag_branch; 5603 5604 5605 5606 SootOption tag_tag_ln_branch = new SootOption("Line Number Tag Aggregator", "tagtag_ln"); 5607 subParent.addChild(tag_tag_ln_branch); 5608 5609 5610 5611 5612 5613 subSectParent = tag_tag_ln_branch; 5614 5615 5616 SootOption tag_tag_an_branch = new SootOption("Array Bounds and Null Pointer Check Tag Aggregator", "tagtag_an"); 5617 subParent.addChild(tag_tag_an_branch); 5618 5619 5620 5621 5622 5623 subSectParent = tag_tag_an_branch; 5624 5625 5626 SootOption tag_tag_dep_branch = new SootOption("Dependence Tag Aggregator", "tagtag_dep"); 5627 subParent.addChild(tag_tag_dep_branch); 5628 5629 5630 5631 5632 5633 subSectParent = tag_tag_dep_branch; 5634 5635 5636 SootOption tag_tag_fieldrw_branch = new SootOption("Field Read/Write Tag Aggregator", "tagtag_fieldrw"); 5637 subParent.addChild(tag_tag_fieldrw_branch); 5638 5639 5640 5641 5642 5643 subSectParent = tag_tag_fieldrw_branch; 5644 5645 5646 SootOption db_branch = new SootOption("Dava Body Creation", "db"); 5648 parent.addChild(db_branch); 5649 subParent = db_branch; 5650 5651 5652 5653 SootOption db_db_transformations_branch = new SootOption("Transformations", "dbdb_transformations"); 5654 subParent.addChild(db_db_transformations_branch); 5655 5656 5657 5658 5659 5660 subSectParent = db_db_transformations_branch; 5661 5662 5663 SootOption db_db_renamer_branch = new SootOption("Renamer", "dbdb_renamer"); 5664 subParent.addChild(db_db_renamer_branch); 5665 5666 5667 5668 5669 5670 subSectParent = db_db_renamer_branch; 5671 5672 5673 SootOption db_db_deobfuscate_branch = new SootOption("De-obfuscate", "dbdb_deobfuscate"); 5674 subParent.addChild(db_db_deobfuscate_branch); 5675 5676 5677 5678 5679 5680 subSectParent = db_db_deobfuscate_branch; 5681 5682 5683 SootOption db_db_force_recompile_branch = new SootOption("Force Recompilability", "dbdb_force_recompile"); 5684 subParent.addChild(db_db_force_recompile_branch); 5685 5686 5687 5688 5689 5690 subSectParent = db_db_force_recompile_branch; 5691 5692 5693 SootOption Application_Mode_Options_branch = new SootOption("Application Mode Options", "Application_Mode_Options"); 5694 root.addChild(Application_Mode_Options_branch); 5695 parent = Application_Mode_Options_branch; 5696 5697 SootOption Input_Attribute_Options_branch = new SootOption("Input Attribute Options", "Input_Attribute_Options"); 5698 root.addChild(Input_Attribute_Options_branch); 5699 parent = Input_Attribute_Options_branch; 5700 5701 SootOption Annotation_Options_branch = new SootOption("Annotation Options", "Annotation_Options"); 5702 root.addChild(Annotation_Options_branch); 5703 parent = Annotation_Options_branch; 5704 5705 SootOption Miscellaneous_Options_branch = new SootOption("Miscellaneous Options", "Miscellaneous_Options"); 5706 root.addChild(Miscellaneous_Options_branch); 5707 parent = Miscellaneous_Options_branch; 5708 5709 5710 addOtherBranches(root); 5711 return root; 5712 5713 } 5714 5715 5716 5717 5718 private BooleanOptionWidget General_Optionshelp_widget; 5719 5720 private void setGeneral_Optionshelp_widget(BooleanOptionWidget widget) { 5721 General_Optionshelp_widget = widget; 5722 } 5723 5724 public BooleanOptionWidget getGeneral_Optionshelp_widget() { 5725 return General_Optionshelp_widget; 5726 } 5727 5728 private BooleanOptionWidget General_Optionsphase_list_widget; 5729 5730 private void setGeneral_Optionsphase_list_widget(BooleanOptionWidget widget) { 5731 General_Optionsphase_list_widget = widget; 5732 } 5733 5734 public BooleanOptionWidget getGeneral_Optionsphase_list_widget() { 5735 return General_Optionsphase_list_widget; 5736 } 5737 5738 private BooleanOptionWidget General_Optionsversion_widget; 5739 5740 private void setGeneral_Optionsversion_widget(BooleanOptionWidget widget) { 5741 General_Optionsversion_widget = widget; 5742 } 5743 5744 public BooleanOptionWidget getGeneral_Optionsversion_widget() { 5745 return General_Optionsversion_widget; 5746 } 5747 5748 private BooleanOptionWidget General_Optionsverbose_widget; 5749 5750 private void setGeneral_Optionsverbose_widget(BooleanOptionWidget widget) { 5751 General_Optionsverbose_widget = widget; 5752 } 5753 5754 public BooleanOptionWidget getGeneral_Optionsverbose_widget() { 5755 return General_Optionsverbose_widget; 5756 } 5757 5758 private BooleanOptionWidget General_Optionsinteractive_mode_widget; 5759 5760 private void setGeneral_Optionsinteractive_mode_widget(BooleanOptionWidget widget) { 5761 General_Optionsinteractive_mode_widget = widget; 5762 } 5763 5764 public BooleanOptionWidget getGeneral_Optionsinteractive_mode_widget() { 5765 return General_Optionsinteractive_mode_widget; 5766 } 5767 5768 private BooleanOptionWidget General_Optionsapp_widget; 5769 5770 private void setGeneral_Optionsapp_widget(BooleanOptionWidget widget) { 5771 General_Optionsapp_widget = widget; 5772 } 5773 5774 public BooleanOptionWidget getGeneral_Optionsapp_widget() { 5775 return General_Optionsapp_widget; 5776 } 5777 5778 private BooleanOptionWidget General_Optionswhole_program_widget; 5779 5780 private void setGeneral_Optionswhole_program_widget(BooleanOptionWidget widget) { 5781 General_Optionswhole_program_widget = widget; 5782 } 5783 5784 public BooleanOptionWidget getGeneral_Optionswhole_program_widget() { 5785 return General_Optionswhole_program_widget; 5786 } 5787 5788 private BooleanOptionWidget General_Optionswhole_shimple_widget; 5789 5790 private void setGeneral_Optionswhole_shimple_widget(BooleanOptionWidget widget) { 5791 General_Optionswhole_shimple_widget = widget; 5792 } 5793 5794 public BooleanOptionWidget getGeneral_Optionswhole_shimple_widget() { 5795 return General_Optionswhole_shimple_widget; 5796 } 5797 5798 private BooleanOptionWidget General_Optionsvalidate_widget; 5799 5800 private void setGeneral_Optionsvalidate_widget(BooleanOptionWidget widget) { 5801 General_Optionsvalidate_widget = widget; 5802 } 5803 5804 public BooleanOptionWidget getGeneral_Optionsvalidate_widget() { 5805 return General_Optionsvalidate_widget; 5806 } 5807 5808 private BooleanOptionWidget General_Optionsdebug_widget; 5809 5810 private void setGeneral_Optionsdebug_widget(BooleanOptionWidget widget) { 5811 General_Optionsdebug_widget = widget; 5812 } 5813 5814 public BooleanOptionWidget getGeneral_Optionsdebug_widget() { 5815 return General_Optionsdebug_widget; 5816 } 5817 5818 private BooleanOptionWidget General_Optionsdebug_resolver_widget; 5819 5820 private void setGeneral_Optionsdebug_resolver_widget(BooleanOptionWidget widget) { 5821 General_Optionsdebug_resolver_widget = widget; 5822 } 5823 5824 public BooleanOptionWidget getGeneral_Optionsdebug_resolver_widget() { 5825 return General_Optionsdebug_resolver_widget; 5826 } 5827 5828 5829 private ListOptionWidget General_Optionsphase_help_widget; 5830 5831 private void setGeneral_Optionsphase_help_widget(ListOptionWidget widget) { 5832 General_Optionsphase_help_widget = widget; 5833 } 5834 5835 public ListOptionWidget getGeneral_Optionsphase_help_widget() { 5836 return General_Optionsphase_help_widget; 5837 } 5838 5839 5840 private BooleanOptionWidget Input_Optionsast_metrics_widget; 5841 5842 private void setInput_Optionsast_metrics_widget(BooleanOptionWidget widget) { 5843 Input_Optionsast_metrics_widget = widget; 5844 } 5845 5846 public BooleanOptionWidget getInput_Optionsast_metrics_widget() { 5847 return Input_Optionsast_metrics_widget; 5848 } 5849 5850 private BooleanOptionWidget Input_Optionsfull_resolver_widget; 5851 5852 private void setInput_Optionsfull_resolver_widget(BooleanOptionWidget widget) { 5853 Input_Optionsfull_resolver_widget = widget; 5854 } 5855 5856 public BooleanOptionWidget getInput_Optionsfull_resolver_widget() { 5857 return Input_Optionsfull_resolver_widget; 5858 } 5859 5860 private BooleanOptionWidget Input_Optionsallow_phantom_refs_widget; 5861 5862 private void setInput_Optionsallow_phantom_refs_widget(BooleanOptionWidget widget) { 5863 Input_Optionsallow_phantom_refs_widget = widget; 5864 } 5865 5866 public BooleanOptionWidget getInput_Optionsallow_phantom_refs_widget() { 5867 return Input_Optionsallow_phantom_refs_widget; 5868 } 5869 5870 private BooleanOptionWidget Input_Optionsuse_old_type_assigner_widget; 5871 5872 private void setInput_Optionsuse_old_type_assigner_widget(BooleanOptionWidget widget) { 5873 Input_Optionsuse_old_type_assigner_widget = widget; 5874 } 5875 5876 public BooleanOptionWidget getInput_Optionsuse_old_type_assigner_widget() { 5877 return Input_Optionsuse_old_type_assigner_widget; 5878 } 5879 5880 5881 private ListOptionWidget Input_Optionsprocess_dir_widget; 5882 5883 private void setInput_Optionsprocess_dir_widget(ListOptionWidget widget) { 5884 Input_Optionsprocess_dir_widget = widget; 5885 } 5886 5887 public ListOptionWidget getInput_Optionsprocess_dir_widget() { 5888 return Input_Optionsprocess_dir_widget; 5889 } 5890 5891 5892 5893 private StringOptionWidget Input_Optionssoot_classpath_widget; 5894 5895 private void setInput_Optionssoot_classpath_widget(StringOptionWidget widget) { 5896 Input_Optionssoot_classpath_widget = widget; 5897 } 5898 5899 public StringOptionWidget getInput_Optionssoot_classpath_widget() { 5900 return Input_Optionssoot_classpath_widget; 5901 } 5902 5903 5904 5905 private StringOptionWidget Input_Optionsmain_class_widget; 5906 5907 private void setInput_Optionsmain_class_widget(StringOptionWidget widget) { 5908 Input_Optionsmain_class_widget = widget; 5909 } 5910 5911 public StringOptionWidget getInput_Optionsmain_class_widget() { 5912 return Input_Optionsmain_class_widget; 5913 } 5914 5915 5916 5917 private MultiOptionWidget Input_Optionssrc_prec_widget; 5918 5919 private void setInput_Optionssrc_prec_widget(MultiOptionWidget widget) { 5920 Input_Optionssrc_prec_widget = widget; 5921 } 5922 5923 public MultiOptionWidget getInput_Optionssrc_prec_widget() { 5924 return Input_Optionssrc_prec_widget; 5925 } 5926 5927 5928 private BooleanOptionWidget Output_Optionsoutput_jar_widget; 5929 5930 private void setOutput_Optionsoutput_jar_widget(BooleanOptionWidget widget) { 5931 Output_Optionsoutput_jar_widget = widget; 5932 } 5933 5934 public BooleanOptionWidget getOutput_Optionsoutput_jar_widget() { 5935 return Output_Optionsoutput_jar_widget; 5936 } 5937 5938 private BooleanOptionWidget Output_Optionsxml_attributes_widget; 5939 5940 private void setOutput_Optionsxml_attributes_widget(BooleanOptionWidget widget) { 5941 Output_Optionsxml_attributes_widget = widget; 5942 } 5943 5944 public BooleanOptionWidget getOutput_Optionsxml_attributes_widget() { 5945 return Output_Optionsxml_attributes_widget; 5946 } 5947 5948 private BooleanOptionWidget Output_Optionsprint_tags_in_output_widget; 5949 5950 private void setOutput_Optionsprint_tags_in_output_widget(BooleanOptionWidget widget) { 5951 Output_Optionsprint_tags_in_output_widget = widget; 5952 } 5953 5954 public BooleanOptionWidget getOutput_Optionsprint_tags_in_output_widget() { 5955 return Output_Optionsprint_tags_in_output_widget; 5956 } 5957 5958 private BooleanOptionWidget Output_Optionsno_output_source_file_attribute_widget; 5959 5960 private void setOutput_Optionsno_output_source_file_attribute_widget(BooleanOptionWidget widget) { 5961 Output_Optionsno_output_source_file_attribute_widget = widget; 5962 } 5963 5964 public BooleanOptionWidget getOutput_Optionsno_output_source_file_attribute_widget() { 5965 return Output_Optionsno_output_source_file_attribute_widget; 5966 } 5967 5968 private BooleanOptionWidget Output_Optionsno_output_inner_classes_attribute_widget; 5969 5970 private void setOutput_Optionsno_output_inner_classes_attribute_widget(BooleanOptionWidget widget) { 5971 Output_Optionsno_output_inner_classes_attribute_widget = widget; 5972 } 5973 5974 public BooleanOptionWidget getOutput_Optionsno_output_inner_classes_attribute_widget() { 5975 return Output_Optionsno_output_inner_classes_attribute_widget; 5976 } 5977 5978 private BooleanOptionWidget Output_Optionsshow_exception_dests_widget; 5979 5980 private void setOutput_Optionsshow_exception_dests_widget(BooleanOptionWidget widget) { 5981 Output_Optionsshow_exception_dests_widget = widget; 5982 } 5983 5984 public BooleanOptionWidget getOutput_Optionsshow_exception_dests_widget() { 5985 return Output_Optionsshow_exception_dests_widget; 5986 } 5987 5988 private BooleanOptionWidget Output_Optionsgzip_widget; 5989 5990 private void setOutput_Optionsgzip_widget(BooleanOptionWidget widget) { 5991 Output_Optionsgzip_widget = widget; 5992 } 5993 5994 public BooleanOptionWidget getOutput_Optionsgzip_widget() { 5995 return Output_Optionsgzip_widget; 5996 } 5997 5998 5999 private ListOptionWidget Output_Optionsdump_body_widget; 6000 6001 private void setOutput_Optionsdump_body_widget(ListOptionWidget widget) { 6002 Output_Optionsdump_body_widget = widget; 6003 } 6004 6005 public ListOptionWidget getOutput_Optionsdump_body_widget() { 6006 return Output_Optionsdump_body_widget; 6007 } 6008 6009 6010 6011 private ListOptionWidget Output_Optionsdump_cfg_widget; 6012 6013 private void setOutput_Optionsdump_cfg_widget(ListOptionWidget widget) { 6014 Output_Optionsdump_cfg_widget = widget; 6015 } 6016 6017 public ListOptionWidget getOutput_Optionsdump_cfg_widget() { 6018 return Output_Optionsdump_cfg_widget; 6019 } 6020 6021 6022 6023 private StringOptionWidget Output_Optionsoutput_dir_widget; 6024 6025 private void setOutput_Optionsoutput_dir_widget(StringOptionWidget widget) { 6026 Output_Optionsoutput_dir_widget = widget; 6027 } 6028 6029 public StringOptionWidget getOutput_Optionsoutput_dir_widget() { 6030 return Output_Optionsoutput_dir_widget; 6031 } 6032 6033 6034 6035 private MultiOptionWidget Output_Optionsoutput_format_widget; 6036 6037 private void setOutput_Optionsoutput_format_widget(MultiOptionWidget widget) { 6038 Output_Optionsoutput_format_widget = widget; 6039 } 6040 6041 public MultiOptionWidget getOutput_Optionsoutput_format_widget() { 6042 return Output_Optionsoutput_format_widget; 6043 } 6044 6045 6046 private BooleanOptionWidget Processing_Optionsoptimize_widget; 6047 6048 private void setProcessing_Optionsoptimize_widget(BooleanOptionWidget widget) { 6049 Processing_Optionsoptimize_widget = widget; 6050 } 6051 6052 public BooleanOptionWidget getProcessing_Optionsoptimize_widget() { 6053 return Processing_Optionsoptimize_widget; 6054 } 6055 6056 private BooleanOptionWidget Processing_Optionswhole_optimize_widget; 6057 6058 private void setProcessing_Optionswhole_optimize_widget(BooleanOptionWidget widget) { 6059 Processing_Optionswhole_optimize_widget = widget; 6060 } 6061 6062 public BooleanOptionWidget getProcessing_Optionswhole_optimize_widget() { 6063 return Processing_Optionswhole_optimize_widget; 6064 } 6065 6066 private BooleanOptionWidget Processing_Optionsvia_grimp_widget; 6067 6068 private void setProcessing_Optionsvia_grimp_widget(BooleanOptionWidget widget) { 6069 Processing_Optionsvia_grimp_widget = widget; 6070 } 6071 6072 public BooleanOptionWidget getProcessing_Optionsvia_grimp_widget() { 6073 return Processing_Optionsvia_grimp_widget; 6074 } 6075 6076 private BooleanOptionWidget Processing_Optionsvia_shimple_widget; 6077 6078 private void setProcessing_Optionsvia_shimple_widget(BooleanOptionWidget widget) { 6079 Processing_Optionsvia_shimple_widget = widget; 6080 } 6081 6082 public BooleanOptionWidget getProcessing_Optionsvia_shimple_widget() { 6083 return Processing_Optionsvia_shimple_widget; 6084 } 6085 6086 private BooleanOptionWidget Processing_Optionsomit_excepting_unit_edges_widget; 6087 6088 private void setProcessing_Optionsomit_excepting_unit_edges_widget(BooleanOptionWidget widget) { 6089 Processing_Optionsomit_excepting_unit_edges_widget = widget; 6090 } 6091 6092 public BooleanOptionWidget getProcessing_Optionsomit_excepting_unit_edges_widget() { 6093 return Processing_Optionsomit_excepting_unit_edges_widget; 6094 } 6095 6096 private BooleanOptionWidget Processing_Optionstrim_cfgs_widget; 6097 6098 private void setProcessing_Optionstrim_cfgs_widget(BooleanOptionWidget widget) { 6099 Processing_Optionstrim_cfgs_widget = widget; 6100 } 6101 6102 public BooleanOptionWidget getProcessing_Optionstrim_cfgs_widget() { 6103 return Processing_Optionstrim_cfgs_widget; 6104 } 6105 6106 6107 private MultiOptionWidget Processing_Optionsthrow_analysis_widget; 6108 6109 private void setProcessing_Optionsthrow_analysis_widget(MultiOptionWidget widget) { 6110 Processing_Optionsthrow_analysis_widget = widget; 6111 } 6112 6113 public MultiOptionWidget getProcessing_Optionsthrow_analysis_widget() { 6114 return Processing_Optionsthrow_analysis_widget; 6115 } 6116 6117 6118 private BooleanOptionWidget jbenabled_widget; 6119 6120 private void setjbenabled_widget(BooleanOptionWidget widget) { 6121 jbenabled_widget = widget; 6122 } 6123 6124 public BooleanOptionWidget getjbenabled_widget() { 6125 return jbenabled_widget; 6126 } 6127 6128 private BooleanOptionWidget jbuse_original_names_widget; 6129 6130 private void setjbuse_original_names_widget(BooleanOptionWidget widget) { 6131 jbuse_original_names_widget = widget; 6132 } 6133 6134 public BooleanOptionWidget getjbuse_original_names_widget() { 6135 return jbuse_original_names_widget; 6136 } 6137 6138 private BooleanOptionWidget jbjb_lsenabled_widget; 6139 6140 private void setjbjb_lsenabled_widget(BooleanOptionWidget widget) { 6141 jbjb_lsenabled_widget = widget; 6142 } 6143 6144 public BooleanOptionWidget getjbjb_lsenabled_widget() { 6145 return jbjb_lsenabled_widget; 6146 } 6147 6148 private BooleanOptionWidget jbjb_aenabled_widget; 6149 6150 private void setjbjb_aenabled_widget(BooleanOptionWidget widget) { 6151 jbjb_aenabled_widget = widget; 6152 } 6153 6154 public BooleanOptionWidget getjbjb_aenabled_widget() { 6155 return jbjb_aenabled_widget; 6156 } 6157 6158 private BooleanOptionWidget jbjb_aonly_stack_locals_widget; 6159 6160 private void setjbjb_aonly_stack_locals_widget(BooleanOptionWidget widget) { 6161 jbjb_aonly_stack_locals_widget = widget; 6162 } 6163 6164 public BooleanOptionWidget getjbjb_aonly_stack_locals_widget() { 6165 return jbjb_aonly_stack_locals_widget; 6166 } 6167 6168 private BooleanOptionWidget jbjb_uleenabled_widget; 6169 6170 private void setjbjb_uleenabled_widget(BooleanOptionWidget widget) { 6171 jbjb_uleenabled_widget = widget; 6172 } 6173 6174 public BooleanOptionWidget getjbjb_uleenabled_widget() { 6175 return jbjb_uleenabled_widget; 6176 } 6177 6178 private BooleanOptionWidget jbjb_trenabled_widget; 6179 6180 private void setjbjb_trenabled_widget(BooleanOptionWidget widget) { 6181 jbjb_trenabled_widget = widget; 6182 } 6183 6184 public BooleanOptionWidget getjbjb_trenabled_widget() { 6185 return jbjb_trenabled_widget; 6186 } 6187 6188 private BooleanOptionWidget jbjb_ulpenabled_widget; 6189 6190 private void setjbjb_ulpenabled_widget(BooleanOptionWidget widget) { 6191 jbjb_ulpenabled_widget = widget; 6192 } 6193 6194 public BooleanOptionWidget getjbjb_ulpenabled_widget() { 6195 return jbjb_ulpenabled_widget; 6196 } 6197 6198 private BooleanOptionWidget jbjb_ulpunsplit_original_locals_widget; 6199 6200 private void setjbjb_ulpunsplit_original_locals_widget(BooleanOptionWidget widget) { 6201 jbjb_ulpunsplit_original_locals_widget = widget; 6202 } 6203 6204 public BooleanOptionWidget getjbjb_ulpunsplit_original_locals_widget() { 6205 return jbjb_ulpunsplit_original_locals_widget; 6206 } 6207 6208 private BooleanOptionWidget jbjb_lnsenabled_widget; 6209 6210 private void setjbjb_lnsenabled_widget(BooleanOptionWidget widget) { 6211 jbjb_lnsenabled_widget = widget; 6212 } 6213 6214 public BooleanOptionWidget getjbjb_lnsenabled_widget() { 6215 return jbjb_lnsenabled_widget; 6216 } 6217 6218 private BooleanOptionWidget jbjb_lnsonly_stack_locals_widget; 6219 6220 private void setjbjb_lnsonly_stack_locals_widget(BooleanOptionWidget widget) { 6221 jbjb_lnsonly_stack_locals_widget = widget; 6222 } 6223 6224 public BooleanOptionWidget getjbjb_lnsonly_stack_locals_widget() { 6225 return jbjb_lnsonly_stack_locals_widget; 6226 } 6227 6228 private BooleanOptionWidget jbjb_cpenabled_widget; 6229 6230 private void setjbjb_cpenabled_widget(BooleanOptionWidget widget) { 6231 jbjb_cpenabled_widget = widget; 6232 } 6233 6234 public BooleanOptionWidget getjbjb_cpenabled_widget() { 6235 return jbjb_cpenabled_widget; 6236 } 6237 6238 private BooleanOptionWidget jbjb_cponly_regular_locals_widget; 6239 6240 private void setjbjb_cponly_regular_locals_widget(BooleanOptionWidget widget) { 6241 jbjb_cponly_regular_locals_widget = widget; 6242 } 6243 6244 public BooleanOptionWidget getjbjb_cponly_regular_locals_widget() { 6245 return jbjb_cponly_regular_locals_widget; 6246 } 6247 6248 private BooleanOptionWidget jbjb_cponly_stack_locals_widget; 6249 6250 private void setjbjb_cponly_stack_locals_widget(BooleanOptionWidget widget) { 6251 jbjb_cponly_stack_locals_widget = widget; 6252 } 6253 6254 public BooleanOptionWidget getjbjb_cponly_stack_locals_widget() { 6255 return jbjb_cponly_stack_locals_widget; 6256 } 6257 6258 private BooleanOptionWidget jbjb_daeenabled_widget; 6259 6260 private void setjbjb_daeenabled_widget(BooleanOptionWidget widget) { 6261 jbjb_daeenabled_widget = widget; 6262 } 6263 6264 public BooleanOptionWidget getjbjb_daeenabled_widget() { 6265 return jbjb_daeenabled_widget; 6266 } 6267 6268 private BooleanOptionWidget jbjb_daeonly_stack_locals_widget; 6269 6270 private void setjbjb_daeonly_stack_locals_widget(BooleanOptionWidget widget) { 6271 jbjb_daeonly_stack_locals_widget = widget; 6272 } 6273 6274 public BooleanOptionWidget getjbjb_daeonly_stack_locals_widget() { 6275 return jbjb_daeonly_stack_locals_widget; 6276 } 6277 6278 private BooleanOptionWidget jbjb_cp_uleenabled_widget; 6279 6280 private void setjbjb_cp_uleenabled_widget(BooleanOptionWidget widget) { 6281 jbjb_cp_uleenabled_widget = widget; 6282 } 6283 6284 public BooleanOptionWidget getjbjb_cp_uleenabled_widget() { 6285 return jbjb_cp_uleenabled_widget; 6286 } 6287 6288 private BooleanOptionWidget jbjb_lpenabled_widget; 6289 6290 private void setjbjb_lpenabled_widget(BooleanOptionWidget widget) { 6291 jbjb_lpenabled_widget = widget; 6292 } 6293 6294 public BooleanOptionWidget getjbjb_lpenabled_widget() { 6295 return jbjb_lpenabled_widget; 6296 } 6297 6298 private BooleanOptionWidget jbjb_lpunsplit_original_locals_widget; 6299 6300 private void setjbjb_lpunsplit_original_locals_widget(BooleanOptionWidget widget) { 6301 jbjb_lpunsplit_original_locals_widget = widget; 6302 } 6303 6304 public BooleanOptionWidget getjbjb_lpunsplit_original_locals_widget() { 6305 return jbjb_lpunsplit_original_locals_widget; 6306 } 6307 6308 private BooleanOptionWidget jbjb_neenabled_widget; 6309 6310 private void setjbjb_neenabled_widget(BooleanOptionWidget widget) { 6311 jbjb_neenabled_widget = widget; 6312 } 6313 6314 public BooleanOptionWidget getjbjb_neenabled_widget() { 6315 return jbjb_neenabled_widget; 6316 } 6317 6318 private BooleanOptionWidget jbjb_uceenabled_widget; 6319 6320 private void setjbjb_uceenabled_widget(BooleanOptionWidget widget) { 6321 jbjb_uceenabled_widget = widget; 6322 } 6323 6324 public BooleanOptionWidget getjbjb_uceenabled_widget() { 6325 return jbjb_uceenabled_widget; 6326 } 6327 6328 private BooleanOptionWidget jbjb_uceremove_unreachable_traps_widget; 6329 6330 private void setjbjb_uceremove_unreachable_traps_widget(BooleanOptionWidget widget) { 6331 jbjb_uceremove_unreachable_traps_widget = widget; 6332 } 6333 6334 public BooleanOptionWidget getjbjb_uceremove_unreachable_traps_widget() { 6335 return jbjb_uceremove_unreachable_traps_widget; 6336 } 6337 6338 private BooleanOptionWidget jbjb_ttenabled_widget; 6339 6340 private void setjbjb_ttenabled_widget(BooleanOptionWidget widget) { 6341 jbjb_ttenabled_widget = widget; 6342 } 6343 6344 public BooleanOptionWidget getjbjb_ttenabled_widget() { 6345 return jbjb_ttenabled_widget; 6346 } 6347 6348 private BooleanOptionWidget jjenabled_widget; 6349 6350 private void setjjenabled_widget(BooleanOptionWidget widget) { 6351 jjenabled_widget = widget; 6352 } 6353 6354 public BooleanOptionWidget getjjenabled_widget() { 6355 return jjenabled_widget; 6356 } 6357 6358 private BooleanOptionWidget jjuse_original_names_widget; 6359 6360 private void setjjuse_original_names_widget(BooleanOptionWidget widget) { 6361 jjuse_original_names_widget = widget; 6362 } 6363 6364 public BooleanOptionWidget getjjuse_original_names_widget() { 6365 return jjuse_original_names_widget; 6366 } 6367 6368 private BooleanOptionWidget jjjj_lsenabled_widget; 6369 6370 private void setjjjj_lsenabled_widget(BooleanOptionWidget widget) { 6371 jjjj_lsenabled_widget = widget; 6372 } 6373 6374 public BooleanOptionWidget getjjjj_lsenabled_widget() { 6375 return jjjj_lsenabled_widget; 6376 } 6377 6378 private BooleanOptionWidget jjjj_aenabled_widget; 6379 6380 private void setjjjj_aenabled_widget(BooleanOptionWidget widget) { 6381 jjjj_aenabled_widget = widget; 6382 } 6383 6384 public BooleanOptionWidget getjjjj_aenabled_widget() { 6385 return jjjj_aenabled_widget; 6386 } 6387 6388 private BooleanOptionWidget jjjj_aonly_stack_locals_widget; 6389 6390 private void setjjjj_aonly_stack_locals_widget(BooleanOptionWidget widget) { 6391 jjjj_aonly_stack_locals_widget = widget; 6392 } 6393 6394 public BooleanOptionWidget getjjjj_aonly_stack_locals_widget() { 6395 return jjjj_aonly_stack_locals_widget; 6396 } 6397 6398 private BooleanOptionWidget jjjj_uleenabled_widget; 6399 6400 private void setjjjj_uleenabled_widget(BooleanOptionWidget widget) { 6401 jjjj_uleenabled_widget = widget; 6402 } 6403 6404 public BooleanOptionWidget getjjjj_uleenabled_widget() { 6405 return jjjj_uleenabled_widget; 6406 } 6407 6408 private BooleanOptionWidget jjjj_trenabled_widget; 6409 6410 private void setjjjj_trenabled_widget(BooleanOptionWidget widget) { 6411 jjjj_trenabled_widget = widget; 6412 } 6413 6414 public BooleanOptionWidget getjjjj_trenabled_widget() { 6415 return jjjj_trenabled_widget; 6416 } 6417 6418 private BooleanOptionWidget jjjj_ulpenabled_widget; 6419 6420 private void setjjjj_ulpenabled_widget(BooleanOptionWidget widget) { 6421 jjjj_ulpenabled_widget = widget; 6422 } 6423 6424 public BooleanOptionWidget getjjjj_ulpenabled_widget() { 6425 return jjjj_ulpenabled_widget; 6426 } 6427 6428 private BooleanOptionWidget jjjj_ulpunsplit_original_locals_widget; 6429 6430 private void setjjjj_ulpunsplit_original_locals_widget(BooleanOptionWidget widget) { 6431 jjjj_ulpunsplit_original_locals_widget = widget; 6432 } 6433 6434 public BooleanOptionWidget getjjjj_ulpunsplit_original_locals_widget() { 6435 return jjjj_ulpunsplit_original_locals_widget; 6436 } 6437 6438 private BooleanOptionWidget jjjj_lnsenabled_widget; 6439 6440 private void setjjjj_lnsenabled_widget(BooleanOptionWidget widget) { 6441 jjjj_lnsenabled_widget = widget; 6442 } 6443 6444 public BooleanOptionWidget getjjjj_lnsenabled_widget() { 6445 return jjjj_lnsenabled_widget; 6446 } 6447 6448 private BooleanOptionWidget jjjj_lnsonly_stack_locals_widget; 6449 6450 private void setjjjj_lnsonly_stack_locals_widget(BooleanOptionWidget widget) { 6451 jjjj_lnsonly_stack_locals_widget = widget; 6452 } 6453 6454 public BooleanOptionWidget getjjjj_lnsonly_stack_locals_widget() { 6455 return jjjj_lnsonly_stack_locals_widget; 6456 } 6457 6458 private BooleanOptionWidget jjjj_cpenabled_widget; 6459 6460 private void setjjjj_cpenabled_widget(BooleanOptionWidget widget) { 6461 jjjj_cpenabled_widget = widget; 6462 } 6463 6464 public BooleanOptionWidget getjjjj_cpenabled_widget() { 6465 return jjjj_cpenabled_widget; 6466 } 6467 6468 private BooleanOptionWidget jjjj_cponly_regular_locals_widget; 6469 6470 private void setjjjj_cponly_regular_locals_widget(BooleanOptionWidget widget) { 6471 jjjj_cponly_regular_locals_widget = widget; 6472 } 6473 6474 public BooleanOptionWidget getjjjj_cponly_regular_locals_widget() { 6475 return jjjj_cponly_regular_locals_widget; 6476 } 6477 6478 private BooleanOptionWidget jjjj_cponly_stack_locals_widget; 6479 6480 private void setjjjj_cponly_stack_locals_widget(BooleanOptionWidget widget) { 6481 jjjj_cponly_stack_locals_widget = widget; 6482 } 6483 6484 public BooleanOptionWidget getjjjj_cponly_stack_locals_widget() { 6485 return jjjj_cponly_stack_locals_widget; 6486 } 6487 6488 private BooleanOptionWidget jjjj_daeenabled_widget; 6489 6490 private void setjjjj_daeenabled_widget(BooleanOptionWidget widget) { 6491 jjjj_daeenabled_widget = widget; 6492 } 6493 6494 public BooleanOptionWidget getjjjj_daeenabled_widget() { 6495 return jjjj_daeenabled_widget; 6496 } 6497 6498 private BooleanOptionWidget jjjj_daeonly_stack_locals_widget; 6499 6500 private void setjjjj_daeonly_stack_locals_widget(BooleanOptionWidget widget) { 6501 jjjj_daeonly_stack_locals_widget = widget; 6502 } 6503 6504 public BooleanOptionWidget getjjjj_daeonly_stack_locals_widget() { 6505 return jjjj_daeonly_stack_locals_widget; 6506 } 6507 6508 private BooleanOptionWidget jjjj_cp_uleenabled_widget; 6509 6510 private void setjjjj_cp_uleenabled_widget(BooleanOptionWidget widget) { 6511 jjjj_cp_uleenabled_widget = widget; 6512 } 6513 6514 public BooleanOptionWidget getjjjj_cp_uleenabled_widget() { 6515 return jjjj_cp_uleenabled_widget; 6516 } 6517 6518 private BooleanOptionWidget jjjj_lpenabled_widget; 6519 6520 private void setjjjj_lpenabled_widget(BooleanOptionWidget widget) { 6521 jjjj_lpenabled_widget = widget; 6522 } 6523 6524 public BooleanOptionWidget getjjjj_lpenabled_widget() { 6525 return jjjj_lpenabled_widget; 6526 } 6527 6528 private BooleanOptionWidget jjjj_lpunsplit_original_locals_widget; 6529 6530 private void setjjjj_lpunsplit_original_locals_widget(BooleanOptionWidget widget) { 6531 jjjj_lpunsplit_original_locals_widget = widget; 6532 } 6533 6534 public BooleanOptionWidget getjjjj_lpunsplit_original_locals_widget() { 6535 return jjjj_lpunsplit_original_locals_widget; 6536 } 6537 6538 private BooleanOptionWidget jjjj_neenabled_widget; 6539 6540 private void setjjjj_neenabled_widget(BooleanOptionWidget widget) { 6541 jjjj_neenabled_widget = widget; 6542 } 6543 6544 public BooleanOptionWidget getjjjj_neenabled_widget() { 6545 return jjjj_neenabled_widget; 6546 } 6547 6548 private BooleanOptionWidget jjjj_uceenabled_widget; 6549 6550 private void setjjjj_uceenabled_widget(BooleanOptionWidget widget) { 6551 jjjj_uceenabled_widget = widget; 6552 } 6553 6554 public BooleanOptionWidget getjjjj_uceenabled_widget() { 6555 return jjjj_uceenabled_widget; 6556 } 6557 6558 private BooleanOptionWidget cgenabled_widget; 6559 6560 private void setcgenabled_widget(BooleanOptionWidget widget) { 6561 cgenabled_widget = widget; 6562 } 6563 6564 public BooleanOptionWidget getcgenabled_widget() { 6565 return cgenabled_widget; 6566 } 6567 6568 private BooleanOptionWidget cgsafe_forname_widget; 6569 6570 private void setcgsafe_forname_widget(BooleanOptionWidget widget) { 6571 cgsafe_forname_widget = widget; 6572 } 6573 6574 public BooleanOptionWidget getcgsafe_forname_widget() { 6575 return cgsafe_forname_widget; 6576 } 6577 6578 private BooleanOptionWidget cgsafe_newinstance_widget; 6579 6580 private void setcgsafe_newinstance_widget(BooleanOptionWidget widget) { 6581 cgsafe_newinstance_widget = widget; 6582 } 6583 6584 public BooleanOptionWidget getcgsafe_newinstance_widget() { 6585 return cgsafe_newinstance_widget; 6586 } 6587 6588 private BooleanOptionWidget cgverbose_widget; 6589 6590 private void setcgverbose_widget(BooleanOptionWidget widget) { 6591 cgverbose_widget = widget; 6592 } 6593 6594 public BooleanOptionWidget getcgverbose_widget() { 6595 return cgverbose_widget; 6596 } 6597 6598 private BooleanOptionWidget cgall_reachable_widget; 6599 6600 private void setcgall_reachable_widget(BooleanOptionWidget widget) { 6601 cgall_reachable_widget = widget; 6602 } 6603 6604 public BooleanOptionWidget getcgall_reachable_widget() { 6605 return cgall_reachable_widget; 6606 } 6607 6608 private BooleanOptionWidget cgimplicit_entry_widget; 6609 6610 private void setcgimplicit_entry_widget(BooleanOptionWidget widget) { 6611 cgimplicit_entry_widget = widget; 6612 } 6613 6614 public BooleanOptionWidget getcgimplicit_entry_widget() { 6615 return cgimplicit_entry_widget; 6616 } 6617 6618 private BooleanOptionWidget cgtrim_clinit_widget; 6619 6620 private void setcgtrim_clinit_widget(BooleanOptionWidget widget) { 6621 cgtrim_clinit_widget = widget; 6622 } 6623 6624 public BooleanOptionWidget getcgtrim_clinit_widget() { 6625 return cgtrim_clinit_widget; 6626 } 6627 6628 6629 private StringOptionWidget cgjdkver_widget; 6630 6631 private void setcgjdkver_widget(StringOptionWidget widget) { 6632 cgjdkver_widget = widget; 6633 } 6634 6635 public StringOptionWidget getcgjdkver_widget() { 6636 return cgjdkver_widget; 6637 } 6638 6639 6640 private BooleanOptionWidget cgcg_chaenabled_widget; 6641 6642 private void setcgcg_chaenabled_widget(BooleanOptionWidget widget) { 6643 cgcg_chaenabled_widget = widget; 6644 } 6645 6646 public BooleanOptionWidget getcgcg_chaenabled_widget() { 6647 return cgcg_chaenabled_widget; 6648 } 6649 6650 private BooleanOptionWidget cgcg_chaverbose_widget; 6651 6652 private void setcgcg_chaverbose_widget(BooleanOptionWidget widget) { 6653 cgcg_chaverbose_widget = widget; 6654 } 6655 6656 public BooleanOptionWidget getcgcg_chaverbose_widget() { 6657 return cgcg_chaverbose_widget; 6658 } 6659 6660 private BooleanOptionWidget cgcg_sparkenabled_widget; 6661 6662 private void setcgcg_sparkenabled_widget(BooleanOptionWidget widget) { 6663 cgcg_sparkenabled_widget = widget; 6664 } 6665 6666 public BooleanOptionWidget getcgcg_sparkenabled_widget() { 6667 return cgcg_sparkenabled_widget; 6668 } 6669 6670 private BooleanOptionWidget cgcg_sparkverbose_widget; 6671 6672 private void setcgcg_sparkverbose_widget(BooleanOptionWidget widget) { 6673 cgcg_sparkverbose_widget = widget; 6674 } 6675 6676 public BooleanOptionWidget getcgcg_sparkverbose_widget() { 6677 return cgcg_sparkverbose_widget; 6678 } 6679 6680 private BooleanOptionWidget cgcg_sparkignore_types_widget; 6681 6682 private void setcgcg_sparkignore_types_widget(BooleanOptionWidget widget) { 6683 cgcg_sparkignore_types_widget = widget; 6684 } 6685 6686 public BooleanOptionWidget getcgcg_sparkignore_types_widget() { 6687 return cgcg_sparkignore_types_widget; 6688 } 6689 6690 private BooleanOptionWidget cgcg_sparkforce_gc_widget; 6691 6692 private void setcgcg_sparkforce_gc_widget(BooleanOptionWidget widget) { 6693 cgcg_sparkforce_gc_widget = widget; 6694 } 6695 6696 public BooleanOptionWidget getcgcg_sparkforce_gc_widget() { 6697 return cgcg_sparkforce_gc_widget; 6698 } 6699 6700 private BooleanOptionWidget cgcg_sparkpre_jimplify_widget; 6701 6702 private void setcgcg_sparkpre_jimplify_widget(BooleanOptionWidget widget) { 6703 cgcg_sparkpre_jimplify_widget = widget; 6704 } 6705 6706 public BooleanOptionWidget getcgcg_sparkpre_jimplify_widget() { 6707 return cgcg_sparkpre_jimplify_widget; 6708 } 6709 6710 private BooleanOptionWidget cgcg_sparkvta_widget; 6711 6712 private void setcgcg_sparkvta_widget(BooleanOptionWidget widget) { 6713 cgcg_sparkvta_widget = widget; 6714 } 6715 6716 public BooleanOptionWidget getcgcg_sparkvta_widget() { 6717 return cgcg_sparkvta_widget; 6718 } 6719 6720 private BooleanOptionWidget cgcg_sparkrta_widget; 6721 6722 private void setcgcg_sparkrta_widget(BooleanOptionWidget widget) { 6723 cgcg_sparkrta_widget = widget; 6724 } 6725 6726 public BooleanOptionWidget getcgcg_sparkrta_widget() { 6727 return cgcg_sparkrta_widget; 6728 } 6729 6730 private BooleanOptionWidget cgcg_sparkfield_based_widget; 6731 6732 private void setcgcg_sparkfield_based_widget(BooleanOptionWidget widget) { 6733 cgcg_sparkfield_based_widget = widget; 6734 } 6735 6736 public BooleanOptionWidget getcgcg_sparkfield_based_widget() { 6737 return cgcg_sparkfield_based_widget; 6738 } 6739 6740 private BooleanOptionWidget cgcg_sparktypes_for_sites_widget; 6741 6742 private void setcgcg_sparktypes_for_sites_widget(BooleanOptionWidget widget) { 6743 cgcg_sparktypes_for_sites_widget = widget; 6744 } 6745 6746 public BooleanOptionWidget getcgcg_sparktypes_for_sites_widget() { 6747 return cgcg_sparktypes_for_sites_widget; 6748 } 6749 6750 private BooleanOptionWidget cgcg_sparkmerge_stringbuffer_widget; 6751 6752 private void setcgcg_sparkmerge_stringbuffer_widget(BooleanOptionWidget widget) { 6753 cgcg_sparkmerge_stringbuffer_widget = widget; 6754 } 6755 6756 public BooleanOptionWidget getcgcg_sparkmerge_stringbuffer_widget() { 6757 return cgcg_sparkmerge_stringbuffer_widget; 6758 } 6759 6760 private BooleanOptionWidget cgcg_sparkstring_constants_widget; 6761 6762 private void setcgcg_sparkstring_constants_widget(BooleanOptionWidget widget) { 6763 cgcg_sparkstring_constants_widget = widget; 6764 } 6765 6766 public BooleanOptionWidget getcgcg_sparkstring_constants_widget() { 6767 return cgcg_sparkstring_constants_widget; 6768 } 6769 6770 private BooleanOptionWidget cgcg_sparksimulate_natives_widget; 6771 6772 private void setcgcg_sparksimulate_natives_widget(BooleanOptionWidget widget) { 6773 cgcg_sparksimulate_natives_widget = widget; 6774 } 6775 6776 public BooleanOptionWidget getcgcg_sparksimulate_natives_widget() { 6777 return cgcg_sparksimulate_natives_widget; 6778 } 6779 6780 private BooleanOptionWidget cgcg_sparksimple_edges_bidirectional_widget; 6781 6782 private void setcgcg_sparksimple_edges_bidirectional_widget(BooleanOptionWidget widget) { 6783 cgcg_sparksimple_edges_bidirectional_widget = widget; 6784 } 6785 6786 public BooleanOptionWidget getcgcg_sparksimple_edges_bidirectional_widget() { 6787 return cgcg_sparksimple_edges_bidirectional_widget; 6788 } 6789 6790 private BooleanOptionWidget cgcg_sparkon_fly_cg_widget; 6791 6792 private void setcgcg_sparkon_fly_cg_widget(BooleanOptionWidget widget) { 6793 cgcg_sparkon_fly_cg_widget = widget; 6794 } 6795 6796 public BooleanOptionWidget getcgcg_sparkon_fly_cg_widget() { 6797 return cgcg_sparkon_fly_cg_widget; 6798 } 6799 6800 private BooleanOptionWidget cgcg_sparksimplify_offline_widget; 6801 6802 private void setcgcg_sparksimplify_offline_widget(BooleanOptionWidget widget) { 6803 cgcg_sparksimplify_offline_widget = widget; 6804 } 6805 6806 public BooleanOptionWidget getcgcg_sparksimplify_offline_widget() { 6807 return cgcg_sparksimplify_offline_widget; 6808 } 6809 6810 private BooleanOptionWidget cgcg_sparksimplify_sccs_widget; 6811 6812 private void setcgcg_sparksimplify_sccs_widget(BooleanOptionWidget widget) { 6813 cgcg_sparksimplify_sccs_widget = widget; 6814 } 6815 6816 public BooleanOptionWidget getcgcg_sparksimplify_sccs_widget() { 6817 return cgcg_sparksimplify_sccs_widget; 6818 } 6819 6820 private BooleanOptionWidget cgcg_sparkignore_types_for_sccs_widget; 6821 6822 private void setcgcg_sparkignore_types_for_sccs_widget(BooleanOptionWidget widget) { 6823 cgcg_sparkignore_types_for_sccs_widget = widget; 6824 } 6825 6826 public BooleanOptionWidget getcgcg_sparkignore_types_for_sccs_widget() { 6827 return cgcg_sparkignore_types_for_sccs_widget; 6828 } 6829 6830 6831 private MultiOptionWidget cgcg_sparkpropagator_widget; 6832 6833 private void setcgcg_sparkpropagator_widget(MultiOptionWidget widget) { 6834 cgcg_sparkpropagator_widget = widget; 6835 } 6836 6837 public MultiOptionWidget getcgcg_sparkpropagator_widget() { 6838 return cgcg_sparkpropagator_widget; 6839 } 6840 6841 6842 6843 private MultiOptionWidget cgcg_sparkset_impl_widget; 6844 6845 private void setcgcg_sparkset_impl_widget(MultiOptionWidget widget) { 6846 cgcg_sparkset_impl_widget = widget; 6847 } 6848 6849 public MultiOptionWidget getcgcg_sparkset_impl_widget() { 6850 return cgcg_sparkset_impl_widget; 6851 } 6852 6853 6854 6855 private MultiOptionWidget cgcg_sparkdouble_set_old_widget; 6856 6857 private void setcgcg_sparkdouble_set_old_widget(MultiOptionWidget widget) { 6858 cgcg_sparkdouble_set_old_widget = widget; 6859 } 6860 6861 public MultiOptionWidget getcgcg_sparkdouble_set_old_widget() { 6862 return cgcg_sparkdouble_set_old_widget; 6863 } 6864 6865 6866 6867 private MultiOptionWidget cgcg_sparkdouble_set_new_widget; 6868 6869 private void setcgcg_sparkdouble_set_new_widget(MultiOptionWidget widget) { 6870 cgcg_sparkdouble_set_new_widget = widget; 6871 } 6872 6873 public MultiOptionWidget getcgcg_sparkdouble_set_new_widget() { 6874 return cgcg_sparkdouble_set_new_widget; 6875 } 6876 6877 6878 private BooleanOptionWidget cgcg_sparkdump_html_widget; 6879 6880 private void setcgcg_sparkdump_html_widget(BooleanOptionWidget widget) { 6881 cgcg_sparkdump_html_widget = widget; 6882 } 6883 6884 public BooleanOptionWidget getcgcg_sparkdump_html_widget() { 6885 return cgcg_sparkdump_html_widget; 6886 } 6887 6888 private BooleanOptionWidget cgcg_sparkdump_pag_widget; 6889 6890 private void setcgcg_sparkdump_pag_widget(BooleanOptionWidget widget) { 6891 cgcg_sparkdump_pag_widget = widget; 6892 } 6893 6894 public BooleanOptionWidget getcgcg_sparkdump_pag_widget() { 6895 return cgcg_sparkdump_pag_widget; 6896 } 6897 6898 private BooleanOptionWidget cgcg_sparkdump_solution_widget; 6899 6900 private void setcgcg_sparkdump_solution_widget(BooleanOptionWidget widget) { 6901 cgcg_sparkdump_solution_widget = widget; 6902 } 6903 6904 public BooleanOptionWidget getcgcg_sparkdump_solution_widget() { 6905 return cgcg_sparkdump_solution_widget; 6906 } 6907 6908 private BooleanOptionWidget cgcg_sparktopo_sort_widget; 6909 6910 private void setcgcg_sparktopo_sort_widget(BooleanOptionWidget widget) { 6911 cgcg_sparktopo_sort_widget = widget; 6912 } 6913 6914 public BooleanOptionWidget getcgcg_sparktopo_sort_widget() { 6915 return cgcg_sparktopo_sort_widget; 6916 } 6917 6918 private BooleanOptionWidget cgcg_sparkdump_types_widget; 6919 6920 private void setcgcg_sparkdump_types_widget(BooleanOptionWidget widget) { 6921 cgcg_sparkdump_types_widget = widget; 6922 } 6923 6924 public BooleanOptionWidget getcgcg_sparkdump_types_widget() { 6925 return cgcg_sparkdump_types_widget; 6926 } 6927 6928 private BooleanOptionWidget cgcg_sparkclass_method_var_widget; 6929 6930 private void setcgcg_sparkclass_method_var_widget(BooleanOptionWidget widget) { 6931 cgcg_sparkclass_method_var_widget = widget; 6932 } 6933 6934 public BooleanOptionWidget getcgcg_sparkclass_method_var_widget() { 6935 return cgcg_sparkclass_method_var_widget; 6936 } 6937 6938 private BooleanOptionWidget cgcg_sparkdump_answer_widget; 6939 6940 private void setcgcg_sparkdump_answer_widget(BooleanOptionWidget widget) { 6941 cgcg_sparkdump_answer_widget = widget; 6942 } 6943 6944 public BooleanOptionWidget getcgcg_sparkdump_answer_widget() { 6945 return cgcg_sparkdump_answer_widget; 6946 } 6947 6948 private BooleanOptionWidget cgcg_sparkadd_tags_widget; 6949 6950 private void setcgcg_sparkadd_tags_widget(BooleanOptionWidget widget) { 6951 cgcg_sparkadd_tags_widget = widget; 6952 } 6953 6954 public BooleanOptionWidget getcgcg_sparkadd_tags_widget() { 6955 return cgcg_sparkadd_tags_widget; 6956 } 6957 6958 private BooleanOptionWidget cgcg_sparkset_mass_widget; 6959 6960 private void setcgcg_sparkset_mass_widget(BooleanOptionWidget widget) { 6961 cgcg_sparkset_mass_widget = widget; 6962 } 6963 6964 public BooleanOptionWidget getcgcg_sparkset_mass_widget() { 6965 return cgcg_sparkset_mass_widget; 6966 } 6967 6968 private BooleanOptionWidget cgcg_paddleenabled_widget; 6969 6970 private void setcgcg_paddleenabled_widget(BooleanOptionWidget widget) { 6971 cgcg_paddleenabled_widget = widget; 6972 } 6973 6974 public BooleanOptionWidget getcgcg_paddleenabled_widget() { 6975 return cgcg_paddleenabled_widget; 6976 } 6977 6978 private BooleanOptionWidget cgcg_paddleverbose_widget; 6979 6980 private void setcgcg_paddleverbose_widget(BooleanOptionWidget widget) { 6981 cgcg_paddleverbose_widget = widget; 6982 } 6983 6984 public BooleanOptionWidget getcgcg_paddleverbose_widget() { 6985 return cgcg_paddleverbose_widget; 6986 } 6987 6988 private BooleanOptionWidget cgcg_paddlebdd_widget; 6989 6990 private void setcgcg_paddlebdd_widget(BooleanOptionWidget widget) { 6991 cgcg_paddlebdd_widget = widget; 6992 } 6993 6994 public BooleanOptionWidget getcgcg_paddlebdd_widget() { 6995 return cgcg_paddlebdd_widget; 6996 } 6997 6998 private BooleanOptionWidget cgcg_paddledynamic_order_widget; 6999 7000 private void setcgcg_paddledynamic_order_widget(BooleanOptionWidget widget) { 7001 cgcg_paddledynamic_order_widget = widget; 7002 } 7003 7004 public BooleanOptionWidget getcgcg_paddledynamic_order_widget() { 7005 return cgcg_paddledynamic_order_widget; 7006 } 7007 7008 private BooleanOptionWidget cgcg_paddleprofile_widget; 7009 7010 private void setcgcg_paddleprofile_widget(BooleanOptionWidget widget) { 7011 cgcg_paddleprofile_widget = widget; 7012 } 7013 7014 public BooleanOptionWidget getcgcg_paddleprofile_widget() { 7015 return cgcg_paddleprofile_widget; 7016 } 7017 7018 private BooleanOptionWidget cgcg_paddleignore_types_widget; 7019 7020 private void setcgcg_paddleignore_types_widget(BooleanOptionWidget widget) { 7021 cgcg_paddleignore_types_widget = widget; 7022 } 7023 7024 public BooleanOptionWidget getcgcg_paddleignore_types_widget() { 7025 return cgcg_paddleignore_types_widget; 7026 } 7027 7028 private BooleanOptionWidget cgcg_paddlepre_jimplify_widget; 7029 7030 private void setcgcg_paddlepre_jimplify_widget(BooleanOptionWidget widget) { 7031 cgcg_paddlepre_jimplify_widget = widget; 7032 } 7033 7034 public BooleanOptionWidget getcgcg_paddlepre_jimplify_widget() { 7035 return cgcg_paddlepre_jimplify_widget; 7036 } 7037 7038 7039 private StringOptionWidget cgcg_paddleorder_widget; 7040 7041 private void setcgcg_paddleorder_widget(StringOptionWidget widget) { 7042 cgcg_paddleorder_widget = widget; 7043 } 7044 7045 public StringOptionWidget getcgcg_paddleorder_widget() { 7046 return cgcg_paddleorder_widget; 7047 } 7048 7049 7050 7051 private MultiOptionWidget cgcg_paddleconf_widget; 7052 7053 private void setcgcg_paddleconf_widget(MultiOptionWidget widget) { 7054 cgcg_paddleconf_widget = widget; 7055 } 7056 7057 public MultiOptionWidget getcgcg_paddleconf_widget() { 7058 return cgcg_paddleconf_widget; 7059 } 7060 7061 7062 7063 private MultiOptionWidget cgcg_paddleq_widget; 7064 7065 private void setcgcg_paddleq_widget(MultiOptionWidget widget) { 7066 cgcg_paddleq_widget = widget; 7067 } 7068 7069 public MultiOptionWidget getcgcg_paddleq_widget() { 7070 return cgcg_paddleq_widget; 7071 } 7072 7073 7074 7075 private MultiOptionWidget cgcg_paddlebackend_widget; 7076 7077 private void setcgcg_paddlebackend_widget(MultiOptionWidget widget) { 7078 cgcg_paddlebackend_widget = widget; 7079 } 7080 7081 public MultiOptionWidget getcgcg_paddlebackend_widget() { 7082 return cgcg_paddlebackend_widget; 7083 } 7084 7085 7086 private BooleanOptionWidget cgcg_paddlecontext_heap_widget; 7087 7088 private void setcgcg_paddlecontext_heap_widget(BooleanOptionWidget widget) { 7089 cgcg_paddlecontext_heap_widget = widget; 7090 } 7091 7092 public BooleanOptionWidget getcgcg_paddlecontext_heap_widget() { 7093 return cgcg_paddlecontext_heap_widget; 7094 } 7095 7096 7097 private StringOptionWidget cgcg_paddlek_widget; 7098 7099 private void setcgcg_paddlek_widget(StringOptionWidget widget) { 7100 cgcg_paddlek_widget = widget; 7101 } 7102 7103 public StringOptionWidget getcgcg_paddlek_widget() { 7104 return cgcg_paddlek_widget; 7105 } 7106 7107 7108 7109 private MultiOptionWidget cgcg_paddlecontext_widget; 7110 7111 private void setcgcg_paddlecontext_widget(MultiOptionWidget widget) { 7112 cgcg_paddlecontext_widget = widget; 7113 } 7114 7115 public MultiOptionWidget getcgcg_paddlecontext_widget() { 7116 return cgcg_paddlecontext_widget; 7117 } 7118 7119 7120 private BooleanOptionWidget cgcg_paddlerta_widget; 7121 7122 private void setcgcg_paddlerta_widget(BooleanOptionWidget widget) { 7123 cgcg_paddlerta_widget = widget; 7124 } 7125 7126 public BooleanOptionWidget getcgcg_paddlerta_widget() { 7127 return cgcg_paddlerta_widget; 7128 } 7129 7130 private BooleanOptionWidget cgcg_paddlefield_based_widget; 7131 7132 private void setcgcg_paddlefield_based_widget(BooleanOptionWidget widget) { 7133 cgcg_paddlefield_based_widget = widget; 7134 } 7135 7136 public BooleanOptionWidget getcgcg_paddlefield_based_widget() { 7137 return cgcg_paddlefield_based_widget; 7138 } 7139 7140 private BooleanOptionWidget cgcg_paddletypes_for_sites_widget; 7141 7142 private void setcgcg_paddletypes_for_sites_widget(BooleanOptionWidget widget) { 7143 cgcg_paddletypes_for_sites_widget = widget; 7144 } 7145 7146 public BooleanOptionWidget getcgcg_paddletypes_for_sites_widget() { 7147 return cgcg_paddletypes_for_sites_widget; 7148 } 7149 7150 private BooleanOptionWidget cgcg_paddlemerge_stringbuffer_widget; 7151 7152 private void setcgcg_paddlemerge_stringbuffer_widget(BooleanOptionWidget widget) { 7153 cgcg_paddlemerge_stringbuffer_widget = widget; 7154 } 7155 7156 public BooleanOptionWidget getcgcg_paddlemerge_stringbuffer_widget() { 7157 return cgcg_paddlemerge_stringbuffer_widget; 7158 } 7159 7160 private BooleanOptionWidget cgcg_paddlestring_constants_widget; 7161 7162 private void setcgcg_paddlestring_constants_widget(BooleanOptionWidget widget) { 7163 cgcg_paddlestring_constants_widget = widget; 7164 } 7165 7166 public BooleanOptionWidget getcgcg_paddlestring_constants_widget() { 7167 return cgcg_paddlestring_constants_widget; 7168 } 7169 7170 private BooleanOptionWidget cgcg_paddlesimulate_natives_widget; 7171 7172 private void setcgcg_paddlesimulate_natives_widget(BooleanOptionWidget widget) { 7173 cgcg_paddlesimulate_natives_widget = widget; 7174 } 7175 7176 public BooleanOptionWidget getcgcg_paddlesimulate_natives_widget() { 7177 return cgcg_paddlesimulate_natives_widget; 7178 } 7179 7180 private BooleanOptionWidget cgcg_paddleglobal_nodes_in_natives_widget; 7181 7182 private void setcgcg_paddleglobal_nodes_in_natives_widget(BooleanOptionWidget widget) { 7183 cgcg_paddleglobal_nodes_in_natives_widget = widget; 7184 } 7185 7186 public BooleanOptionWidget getcgcg_paddleglobal_nodes_in_natives_widget() { 7187 return cgcg_paddleglobal_nodes_in_natives_widget; 7188 } 7189 7190 private BooleanOptionWidget cgcg_paddlesimple_edges_bidirectional_widget; 7191 7192 private void setcgcg_paddlesimple_edges_bidirectional_widget(BooleanOptionWidget widget) { 7193 cgcg_paddlesimple_edges_bidirectional_widget = widget; 7194 } 7195 7196 public BooleanOptionWidget getcgcg_paddlesimple_edges_bidirectional_widget() { 7197 return cgcg_paddlesimple_edges_bidirectional_widget; 7198 } 7199 7200 private BooleanOptionWidget cgcg_paddlethis_edges_widget; 7201 7202 private void setcgcg_paddlethis_edges_widget(BooleanOptionWidget widget) { 7203 cgcg_paddlethis_edges_widget = widget; 7204 } 7205 7206 public BooleanOptionWidget getcgcg_paddlethis_edges_widget() { 7207 return cgcg_paddlethis_edges_widget; 7208 } 7209 7210 private BooleanOptionWidget cgcg_paddleprecise_newinstance_widget; 7211 7212 private void setcgcg_paddleprecise_newinstance_widget(BooleanOptionWidget widget) { 7213 cgcg_paddleprecise_newinstance_widget = widget; 7214 } 7215 7216 public BooleanOptionWidget getcgcg_paddleprecise_newinstance_widget() { 7217 return cgcg_paddleprecise_newinstance_widget; 7218 } 7219 7220 7221 private MultiOptionWidget cgcg_paddlepropagator_widget; 7222 7223 private void setcgcg_paddlepropagator_widget(MultiOptionWidget widget) { 7224 cgcg_paddlepropagator_widget = widget; 7225 } 7226 7227 public MultiOptionWidget getcgcg_paddlepropagator_widget() { 7228 return cgcg_paddlepropagator_widget; 7229 } 7230 7231 7232 7233 private MultiOptionWidget cgcg_paddleset_impl_widget; 7234 7235 private void setcgcg_paddleset_impl_widget(MultiOptionWidget widget) { 7236 cgcg_paddleset_impl_widget = widget; 7237 } 7238 7239 public MultiOptionWidget getcgcg_paddleset_impl_widget() { 7240 return cgcg_paddleset_impl_widget; 7241 } 7242 7243 7244 7245 private MultiOptionWidget cgcg_paddledouble_set_old_widget; 7246 7247 private void setcgcg_paddledouble_set_old_widget(MultiOptionWidget widget) { 7248 cgcg_paddledouble_set_old_widget = widget; 7249 } 7250 7251 public MultiOptionWidget getcgcg_paddledouble_set_old_widget() { 7252 return cgcg_paddledouble_set_old_widget; 7253 } 7254 7255 7256 7257 private MultiOptionWidget cgcg_paddledouble_set_new_widget; 7258 7259 private void setcgcg_paddledouble_set_new_widget(MultiOptionWidget widget) { 7260 cgcg_paddledouble_set_new_widget = widget; 7261 } 7262 7263 public MultiOptionWidget getcgcg_paddledouble_set_new_widget() { 7264 return cgcg_paddledouble_set_new_widget; 7265 } 7266 7267 7268 private BooleanOptionWidget cgcg_paddlecontext_counts_widget; 7269 7270 private void setcgcg_paddlecontext_counts_widget(BooleanOptionWidget widget) { 7271 cgcg_paddlecontext_counts_widget = widget; 7272 } 7273 7274 public BooleanOptionWidget getcgcg_paddlecontext_counts_widget() { 7275 return cgcg_paddlecontext_counts_widget; 7276 } 7277 7278 private BooleanOptionWidget cgcg_paddletotal_context_counts_widget; 7279 7280 private void setcgcg_paddletotal_context_counts_widget(BooleanOptionWidget widget) { 7281 cgcg_paddletotal_context_counts_widget = widget; 7282 } 7283 7284 public BooleanOptionWidget getcgcg_paddletotal_context_counts_widget() { 7285 return cgcg_paddletotal_context_counts_widget; 7286 } 7287 7288 private BooleanOptionWidget cgcg_paddlemethod_context_counts_widget; 7289 7290 private void setcgcg_paddlemethod_context_counts_widget(BooleanOptionWidget widget) { 7291 cgcg_paddlemethod_context_counts_widget = widget; 7292 } 7293 7294 public BooleanOptionWidget getcgcg_paddlemethod_context_counts_widget() { 7295 return cgcg_paddlemethod_context_counts_widget; 7296 } 7297 7298 private BooleanOptionWidget cgcg_paddleset_mass_widget; 7299 7300 private void setcgcg_paddleset_mass_widget(BooleanOptionWidget widget) { 7301 cgcg_paddleset_mass_widget = widget; 7302 } 7303 7304 public BooleanOptionWidget getcgcg_paddleset_mass_widget() { 7305 return cgcg_paddleset_mass_widget; 7306 } 7307 7308 private BooleanOptionWidget cgcg_paddlenumber_nodes_widget; 7309 7310 private void setcgcg_paddlenumber_nodes_widget(BooleanOptionWidget widget) { 7311 cgcg_paddlenumber_nodes_widget = widget; 7312 } 7313 7314 public BooleanOptionWidget getcgcg_paddlenumber_nodes_widget() { 7315 return cgcg_paddlenumber_nodes_widget; 7316 } 7317 7318 private BooleanOptionWidget wstpenabled_widget; 7319 7320 private void setwstpenabled_widget(BooleanOptionWidget widget) { 7321 wstpenabled_widget = widget; 7322 } 7323 7324 public BooleanOptionWidget getwstpenabled_widget() { 7325 return wstpenabled_widget; 7326 } 7327 7328 private BooleanOptionWidget wsopenabled_widget; 7329 7330 private void setwsopenabled_widget(BooleanOptionWidget widget) { 7331 wsopenabled_widget = widget; 7332 } 7333 7334 public BooleanOptionWidget getwsopenabled_widget() { 7335 return wsopenabled_widget; 7336 } 7337 7338 private BooleanOptionWidget wjtpenabled_widget; 7339 7340 private void setwjtpenabled_widget(BooleanOptionWidget widget) { 7341 wjtpenabled_widget = widget; 7342 } 7343 7344 public BooleanOptionWidget getwjtpenabled_widget() { 7345 return wjtpenabled_widget; 7346 } 7347 7348 private BooleanOptionWidget wjopenabled_widget; 7349 7350 private void setwjopenabled_widget(BooleanOptionWidget widget) { 7351 wjopenabled_widget = widget; 7352 } 7353 7354 public BooleanOptionWidget getwjopenabled_widget() { 7355 return wjopenabled_widget; 7356 } 7357 7358 private BooleanOptionWidget wjopwjop_smbenabled_widget; 7359 7360 private void setwjopwjop_smbenabled_widget(BooleanOptionWidget widget) { 7361 wjopwjop_smbenabled_widget = widget; 7362 } 7363 7364 public BooleanOptionWidget getwjopwjop_smbenabled_widget() { 7365 return wjopwjop_smbenabled_widget; 7366 } 7367 7368 private BooleanOptionWidget wjopwjop_smbinsert_null_checks_widget; 7369 7370 private void setwjopwjop_smbinsert_null_checks_widget(BooleanOptionWidget widget) { 7371 wjopwjop_smbinsert_null_checks_widget = widget; 7372 } 7373 7374 public BooleanOptionWidget getwjopwjop_smbinsert_null_checks_widget() { 7375 return wjopwjop_smbinsert_null_checks_widget; 7376 } 7377 7378 private BooleanOptionWidget wjopwjop_smbinsert_redundant_casts_widget; 7379 7380 private void setwjopwjop_smbinsert_redundant_casts_widget(BooleanOptionWidget widget) { 7381 wjopwjop_smbinsert_redundant_casts_widget = widget; 7382 } 7383 7384 public BooleanOptionWidget getwjopwjop_smbinsert_redundant_casts_widget() { 7385 return wjopwjop_smbinsert_redundant_casts_widget; 7386 } 7387 7388 7389 private MultiOptionWidget wjopwjop_smballowed_modifier_changes_widget; 7390 7391 private void setwjopwjop_smballowed_modifier_changes_widget(MultiOptionWidget widget) { 7392 wjopwjop_smballowed_modifier_changes_widget = widget; 7393 } 7394 7395 public MultiOptionWidget getwjopwjop_smballowed_modifier_changes_widget() { 7396 return wjopwjop_smballowed_modifier_changes_widget; 7397 } 7398 7399 7400 private BooleanOptionWidget wjopwjop_sienabled_widget; 7401 7402 private void setwjopwjop_sienabled_widget(BooleanOptionWidget widget) { 7403 wjopwjop_sienabled_widget = widget; 7404 } 7405 7406 public BooleanOptionWidget getwjopwjop_sienabled_widget() { 7407 return wjopwjop_sienabled_widget; 7408 } 7409 7410 private BooleanOptionWidget wjopwjop_sirerun_jb_widget; 7411 7412 private void setwjopwjop_sirerun_jb_widget(BooleanOptionWidget widget) { 7413 wjopwjop_sirerun_jb_widget = widget; 7414 } 7415 7416 public BooleanOptionWidget getwjopwjop_sirerun_jb_widget() { 7417 return wjopwjop_sirerun_jb_widget; 7418 } 7419 7420 private BooleanOptionWidget wjopwjop_siinsert_null_checks_widget; 7421 7422 private void setwjopwjop_siinsert_null_checks_widget(BooleanOptionWidget widget) { 7423 wjopwjop_siinsert_null_checks_widget = widget; 7424 } 7425 7426 public BooleanOptionWidget getwjopwjop_siinsert_null_checks_widget() { 7427 return wjopwjop_siinsert_null_checks_widget; 7428 } 7429 7430 private BooleanOptionWidget wjopwjop_siinsert_redundant_casts_widget; 7431 7432 private void setwjopwjop_siinsert_redundant_casts_widget(BooleanOptionWidget widget) { 7433 wjopwjop_siinsert_redundant_casts_widget = widget; 7434 } 7435 7436 public BooleanOptionWidget getwjopwjop_siinsert_redundant_casts_widget() { 7437 return wjopwjop_siinsert_redundant_casts_widget; 7438 } 7439 7440 7441 private StringOptionWidget wjopwjop_siexpansion_factor_widget; 7442 7443 private void setwjopwjop_siexpansion_factor_widget(StringOptionWidget widget) { 7444 wjopwjop_siexpansion_factor_widget = widget; 7445 } 7446 7447 public StringOptionWidget getwjopwjop_siexpansion_factor_widget() { 7448 return wjopwjop_siexpansion_factor_widget; 7449 } 7450 7451 7452 7453 private StringOptionWidget wjopwjop_simax_container_size_widget; 7454 7455 private void setwjopwjop_simax_container_size_widget(StringOptionWidget widget) { 7456 wjopwjop_simax_container_size_widget = widget; 7457 } 7458 7459 public StringOptionWidget getwjopwjop_simax_container_size_widget() { 7460 return wjopwjop_simax_container_size_widget; 7461 } 7462 7463 7464 7465 private StringOptionWidget wjopwjop_simax_inlinee_size_widget; 7466 7467 private void setwjopwjop_simax_inlinee_size_widget(StringOptionWidget widget) { 7468 wjopwjop_simax_inlinee_size_widget = widget; 7469 } 7470 7471 public StringOptionWidget getwjopwjop_simax_inlinee_size_widget() { 7472 return wjopwjop_simax_inlinee_size_widget; 7473 } 7474 7475 7476 7477 private MultiOptionWidget wjopwjop_siallowed_modifier_changes_widget; 7478 7479 private void setwjopwjop_siallowed_modifier_changes_widget(MultiOptionWidget widget) { 7480 wjopwjop_siallowed_modifier_changes_widget = widget; 7481 } 7482 7483 public MultiOptionWidget getwjopwjop_siallowed_modifier_changes_widget() { 7484 return wjopwjop_siallowed_modifier_changes_widget; 7485 } 7486 7487 7488 private BooleanOptionWidget wjapenabled_widget; 7489 7490 private void setwjapenabled_widget(BooleanOptionWidget widget) { 7491 wjapenabled_widget = widget; 7492 } 7493 7494 public BooleanOptionWidget getwjapenabled_widget() { 7495 return wjapenabled_widget; 7496 } 7497 7498 private BooleanOptionWidget wjapwjap_raenabled_widget; 7499 7500 private void setwjapwjap_raenabled_widget(BooleanOptionWidget widget) { 7501 wjapwjap_raenabled_widget = widget; 7502 } 7503 7504 public BooleanOptionWidget getwjapwjap_raenabled_widget() { 7505 return wjapwjap_raenabled_widget; 7506 } 7507 7508 private BooleanOptionWidget wjapwjap_umtenabled_widget; 7509 7510 private void setwjapwjap_umtenabled_widget(BooleanOptionWidget widget) { 7511 wjapwjap_umtenabled_widget = widget; 7512 } 7513 7514 public BooleanOptionWidget getwjapwjap_umtenabled_widget() { 7515 return wjapwjap_umtenabled_widget; 7516 } 7517 7518 private BooleanOptionWidget wjapwjap_uftenabled_widget; 7519 7520 private void setwjapwjap_uftenabled_widget(BooleanOptionWidget widget) { 7521 wjapwjap_uftenabled_widget = widget; 7522 } 7523 7524 public BooleanOptionWidget getwjapwjap_uftenabled_widget() { 7525 return wjapwjap_uftenabled_widget; 7526 } 7527 7528 private BooleanOptionWidget wjapwjap_tqtenabled_widget; 7529 7530 private void setwjapwjap_tqtenabled_widget(BooleanOptionWidget widget) { 7531 wjapwjap_tqtenabled_widget = widget; 7532 } 7533 7534 public BooleanOptionWidget getwjapwjap_tqtenabled_widget() { 7535 return wjapwjap_tqtenabled_widget; 7536 } 7537 7538 private BooleanOptionWidget wjapwjap_cggenabled_widget; 7539 7540 private void setwjapwjap_cggenabled_widget(BooleanOptionWidget widget) { 7541 wjapwjap_cggenabled_widget = widget; 7542 } 7543 7544 public BooleanOptionWidget getwjapwjap_cggenabled_widget() { 7545 return wjapwjap_cggenabled_widget; 7546 } 7547 7548 private BooleanOptionWidget wjapwjap_cggshow_lib_meths_widget; 7549 7550 private void setwjapwjap_cggshow_lib_meths_widget(BooleanOptionWidget widget) { 7551 wjapwjap_cggshow_lib_meths_widget = widget; 7552 } 7553 7554 public BooleanOptionWidget getwjapwjap_cggshow_lib_meths_widget() { 7555 return wjapwjap_cggshow_lib_meths_widget; 7556 } 7557 7558 private BooleanOptionWidget wjapwjap_purityenabled_widget; 7559 7560 private void setwjapwjap_purityenabled_widget(BooleanOptionWidget widget) { 7561 wjapwjap_purityenabled_widget = widget; 7562 } 7563 7564 public BooleanOptionWidget getwjapwjap_purityenabled_widget() { 7565 return wjapwjap_purityenabled_widget; 7566 } 7567 7568 private BooleanOptionWidget wjapwjap_puritydump_summaries_widget; 7569 7570 private void setwjapwjap_puritydump_summaries_widget(BooleanOptionWidget widget) { 7571 wjapwjap_puritydump_summaries_widget = widget; 7572 } 7573 7574 public BooleanOptionWidget getwjapwjap_puritydump_summaries_widget() { 7575 return wjapwjap_puritydump_summaries_widget; 7576 } 7577 7578 private BooleanOptionWidget wjapwjap_puritydump_cg_widget; 7579 7580 private void setwjapwjap_puritydump_cg_widget(BooleanOptionWidget widget) { 7581 wjapwjap_puritydump_cg_widget = widget; 7582 } 7583 7584 public BooleanOptionWidget getwjapwjap_puritydump_cg_widget() { 7585 return wjapwjap_puritydump_cg_widget; 7586 } 7587 7588 private BooleanOptionWidget wjapwjap_puritydump_intra_widget; 7589 7590 private void setwjapwjap_puritydump_intra_widget(BooleanOptionWidget widget) { 7591 wjapwjap_puritydump_intra_widget = widget; 7592 } 7593 7594 public BooleanOptionWidget getwjapwjap_puritydump_intra_widget() { 7595 return wjapwjap_puritydump_intra_widget; 7596 } 7597 7598 private BooleanOptionWidget wjapwjap_purityprint_widget; 7599 7600 private void setwjapwjap_purityprint_widget(BooleanOptionWidget widget) { 7601 wjapwjap_purityprint_widget = widget; 7602 } 7603 7604 public BooleanOptionWidget getwjapwjap_purityprint_widget() { 7605 return wjapwjap_purityprint_widget; 7606 } 7607 7608 private BooleanOptionWidget wjapwjap_purityverbose_widget; 7609 7610 private void setwjapwjap_purityverbose_widget(BooleanOptionWidget widget) { 7611 wjapwjap_purityverbose_widget = widget; 7612 } 7613 7614 public BooleanOptionWidget getwjapwjap_purityverbose_widget() { 7615 return wjapwjap_purityverbose_widget; 7616 } 7617 7618 private BooleanOptionWidget shimpleenabled_widget; 7619 7620 private void setshimpleenabled_widget(BooleanOptionWidget widget) { 7621 shimpleenabled_widget = widget; 7622 } 7623 7624 public BooleanOptionWidget getshimpleenabled_widget() { 7625 return shimpleenabled_widget; 7626 } 7627 7628 private BooleanOptionWidget shimplenode_elim_opt_widget; 7629 7630 private void setshimplenode_elim_opt_widget(BooleanOptionWidget widget) { 7631 shimplenode_elim_opt_widget = widget; 7632 } 7633 7634 public BooleanOptionWidget getshimplenode_elim_opt_widget() { 7635 return shimplenode_elim_opt_widget; 7636 } 7637 7638 private BooleanOptionWidget shimplestandard_local_names_widget; 7639 7640 private void setshimplestandard_local_names_widget(BooleanOptionWidget widget) { 7641 shimplestandard_local_names_widget = widget; 7642 } 7643 7644 public BooleanOptionWidget getshimplestandard_local_names_widget() { 7645 return shimplestandard_local_names_widget; 7646 } 7647 7648 private BooleanOptionWidget shimpleextended_widget; 7649 7650 private void setshimpleextended_widget(BooleanOptionWidget widget) { 7651 shimpleextended_widget = widget; 7652 } 7653 7654 public BooleanOptionWidget getshimpleextended_widget() { 7655 return shimpleextended_widget; 7656 } 7657 7658 private BooleanOptionWidget shimpledebug_widget; 7659 7660 private void setshimpledebug_widget(BooleanOptionWidget widget) { 7661 shimpledebug_widget = widget; 7662 } 7663 7664 public BooleanOptionWidget getshimpledebug_widget() { 7665 return shimpledebug_widget; 7666 } 7667 7668 private BooleanOptionWidget stpenabled_widget; 7669 7670 private void setstpenabled_widget(BooleanOptionWidget widget) { 7671 stpenabled_widget = widget; 7672 } 7673 7674 public BooleanOptionWidget getstpenabled_widget() { 7675 return stpenabled_widget; 7676 } 7677 7678 private BooleanOptionWidget sopenabled_widget; 7679 7680 private void setsopenabled_widget(BooleanOptionWidget widget) { 7681 sopenabled_widget = widget; 7682 } 7683 7684 public BooleanOptionWidget getsopenabled_widget() { 7685 return sopenabled_widget; 7686 } 7687 7688 private BooleanOptionWidget sopsop_cpfenabled_widget; 7689 7690 private void setsopsop_cpfenabled_widget(BooleanOptionWidget widget) { 7691 sopsop_cpfenabled_widget = widget; 7692 } 7693 7694 public BooleanOptionWidget getsopsop_cpfenabled_widget() { 7695 return sopsop_cpfenabled_widget; 7696 } 7697 7698 private BooleanOptionWidget sopsop_cpfprune_cfg_widget; 7699 7700 private void setsopsop_cpfprune_cfg_widget(BooleanOptionWidget widget) { 7701 sopsop_cpfprune_cfg_widget = widget; 7702 } 7703 7704 public BooleanOptionWidget getsopsop_cpfprune_cfg_widget() { 7705 return sopsop_cpfprune_cfg_widget; 7706 } 7707 7708 private BooleanOptionWidget jtpenabled_widget; 7709 7710 private void setjtpenabled_widget(BooleanOptionWidget widget) { 7711 jtpenabled_widget = widget; 7712 } 7713 7714 public BooleanOptionWidget getjtpenabled_widget() { 7715 return jtpenabled_widget; 7716 } 7717 7718 private BooleanOptionWidget jopenabled_widget; 7719 7720 private void setjopenabled_widget(BooleanOptionWidget widget) { 7721 jopenabled_widget = widget; 7722 } 7723 7724 public BooleanOptionWidget getjopenabled_widget() { 7725 return jopenabled_widget; 7726 } 7727 7728 private BooleanOptionWidget jopjop_cseenabled_widget; 7729 7730 private void setjopjop_cseenabled_widget(BooleanOptionWidget widget) { 7731 jopjop_cseenabled_widget = widget; 7732 } 7733 7734 public BooleanOptionWidget getjopjop_cseenabled_widget() { 7735 return jopjop_cseenabled_widget; 7736 } 7737 7738 private BooleanOptionWidget jopjop_csenaive_side_effect_widget; 7739 7740 private void setjopjop_csenaive_side_effect_widget(BooleanOptionWidget widget) { 7741 jopjop_csenaive_side_effect_widget = widget; 7742 } 7743 7744 public BooleanOptionWidget getjopjop_csenaive_side_effect_widget() { 7745 return jopjop_csenaive_side_effect_widget; 7746 } 7747 7748 private BooleanOptionWidget jopjop_bcmenabled_widget; 7749 7750 private void setjopjop_bcmenabled_widget(BooleanOptionWidget widget) { 7751 jopjop_bcmenabled_widget = widget; 7752 } 7753 7754 public BooleanOptionWidget getjopjop_bcmenabled_widget() { 7755 return jopjop_bcmenabled_widget; 7756 } 7757 7758 private BooleanOptionWidget jopjop_bcmnaive_side_effect_widget; 7759 7760 private void setjopjop_bcmnaive_side_effect_widget(BooleanOptionWidget widget) { 7761 jopjop_bcmnaive_side_effect_widget = widget; 7762 } 7763 7764 public BooleanOptionWidget getjopjop_bcmnaive_side_effect_widget() { 7765 return jopjop_bcmnaive_side_effect_widget; 7766 } 7767 7768 private BooleanOptionWidget jopjop_lcmenabled_widget; 7769 7770 private void setjopjop_lcmenabled_widget(BooleanOptionWidget widget) { 7771 jopjop_lcmenabled_widget = widget; 7772 } 7773 7774 public BooleanOptionWidget getjopjop_lcmenabled_widget() { 7775 return jopjop_lcmenabled_widget; 7776 } 7777 7778 private BooleanOptionWidget jopjop_lcmunroll_widget; 7779 7780 private void setjopjop_lcmunroll_widget(BooleanOptionWidget widget) { 7781 jopjop_lcmunroll_widget = widget; 7782 } 7783 7784 public BooleanOptionWidget getjopjop_lcmunroll_widget() { 7785 return jopjop_lcmunroll_widget; 7786 } 7787 7788 private BooleanOptionWidget jopjop_lcmnaive_side_effect_widget; 7789 7790 private void setjopjop_lcmnaive_side_effect_widget(BooleanOptionWidget widget) { 7791 jopjop_lcmnaive_side_effect_widget = widget; 7792 } 7793 7794 public BooleanOptionWidget getjopjop_lcmnaive_side_effect_widget() { 7795 return jopjop_lcmnaive_side_effect_widget; 7796 } 7797 7798 7799 private MultiOptionWidget jopjop_lcmsafety_widget; 7800 7801 private void setjopjop_lcmsafety_widget(MultiOptionWidget widget) { 7802 jopjop_lcmsafety_widget = widget; 7803 } 7804 7805 public MultiOptionWidget getjopjop_lcmsafety_widget() { 7806 return jopjop_lcmsafety_widget; 7807 } 7808 7809 7810 private BooleanOptionWidget jopjop_cpenabled_widget; 7811 7812 private void setjopjop_cpenabled_widget(BooleanOptionWidget widget) { 7813 jopjop_cpenabled_widget = widget; 7814 } 7815 7816 public BooleanOptionWidget getjopjop_cpenabled_widget() { 7817 return jopjop_cpenabled_widget; 7818 } 7819 7820 private BooleanOptionWidget jopjop_cponly_regular_locals_widget; 7821 7822 private void setjopjop_cponly_regular_locals_widget(BooleanOptionWidget widget) { 7823 jopjop_cponly_regular_locals_widget = widget; 7824 } 7825 7826 public BooleanOptionWidget getjopjop_cponly_regular_locals_widget() { 7827 return jopjop_cponly_regular_locals_widget; 7828 } 7829 7830 private BooleanOptionWidget jopjop_cponly_stack_locals_widget; 7831 7832 private void setjopjop_cponly_stack_locals_widget(BooleanOptionWidget widget) { 7833 jopjop_cponly_stack_locals_widget = widget; 7834 } 7835 7836 public BooleanOptionWidget getjopjop_cponly_stack_locals_widget() { 7837 return jopjop_cponly_stack_locals_widget; 7838 } 7839 7840 private BooleanOptionWidget jopjop_cpfenabled_widget; 7841 7842 private void setjopjop_cpfenabled_widget(BooleanOptionWidget widget) { 7843 jopjop_cpfenabled_widget = widget; 7844 } 7845 7846 public BooleanOptionWidget getjopjop_cpfenabled_widget() { 7847 return jopjop_cpfenabled_widget; 7848 } 7849 7850 private BooleanOptionWidget jopjop_cbfenabled_widget; 7851 7852 private void setjopjop_cbfenabled_widget(BooleanOptionWidget widget) { 7853 jopjop_cbfenabled_widget = widget; 7854 } 7855 7856 public BooleanOptionWidget getjopjop_cbfenabled_widget() { 7857 return jopjop_cbfenabled_widget; 7858 } 7859 7860 private BooleanOptionWidget jopjop_daeenabled_widget; 7861 7862 private void setjopjop_daeenabled_widget(BooleanOptionWidget widget) { 7863 jopjop_daeenabled_widget = widget; 7864 } 7865 7866 public BooleanOptionWidget getjopjop_daeenabled_widget() { 7867 return jopjop_daeenabled_widget; 7868 } 7869 7870 private BooleanOptionWidget jopjop_daeonly_tag_widget; 7871 7872 private void setjopjop_daeonly_tag_widget(BooleanOptionWidget widget) { 7873 jopjop_daeonly_tag_widget = widget; 7874 } 7875 7876 public BooleanOptionWidget getjopjop_daeonly_tag_widget() { 7877 return jopjop_daeonly_tag_widget; 7878 } 7879 7880 private BooleanOptionWidget jopjop_daeonly_stack_locals_widget; 7881 7882 private void setjopjop_daeonly_stack_locals_widget(BooleanOptionWidget widget) { 7883 jopjop_daeonly_stack_locals_widget = widget; 7884 } 7885 7886 public BooleanOptionWidget getjopjop_daeonly_stack_locals_widget() { 7887 return jopjop_daeonly_stack_locals_widget; 7888 } 7889 7890 private BooleanOptionWidget jopjop_uce1enabled_widget; 7891 7892 private void setjopjop_uce1enabled_widget(BooleanOptionWidget widget) { 7893 jopjop_uce1enabled_widget = widget; 7894 } 7895 7896 public BooleanOptionWidget getjopjop_uce1enabled_widget() { 7897 return jopjop_uce1enabled_widget; 7898 } 7899 7900 private BooleanOptionWidget jopjop_uce1remove_unreachable_traps_widget; 7901 7902 private void setjopjop_uce1remove_unreachable_traps_widget(BooleanOptionWidget widget) { 7903 jopjop_uce1remove_unreachable_traps_widget = widget; 7904 } 7905 7906 public BooleanOptionWidget getjopjop_uce1remove_unreachable_traps_widget() { 7907 return jopjop_uce1remove_unreachable_traps_widget; 7908 } 7909 7910 private BooleanOptionWidget jopjop_ubf1enabled_widget; 7911 7912 private void setjopjop_ubf1enabled_widget(BooleanOptionWidget widget) { 7913 jopjop_ubf1enabled_widget = widget; 7914 } 7915 7916 public BooleanOptionWidget getjopjop_ubf1enabled_widget() { 7917 return jopjop_ubf1enabled_widget; 7918 } 7919 7920 private BooleanOptionWidget jopjop_uce2enabled_widget; 7921 7922 private void setjopjop_uce2enabled_widget(BooleanOptionWidget widget) { 7923 jopjop_uce2enabled_widget = widget; 7924 } 7925 7926 public BooleanOptionWidget getjopjop_uce2enabled_widget() { 7927 return jopjop_uce2enabled_widget; 7928 } 7929 7930 private BooleanOptionWidget jopjop_uce2remove_unreachable_traps_widget; 7931 7932 private void setjopjop_uce2remove_unreachable_traps_widget(BooleanOptionWidget widget) { 7933 jopjop_uce2remove_unreachable_traps_widget = widget; 7934 } 7935 7936 public BooleanOptionWidget getjopjop_uce2remove_unreachable_traps_widget() { 7937 return jopjop_uce2remove_unreachable_traps_widget; 7938 } 7939 7940 private BooleanOptionWidget jopjop_ubf2enabled_widget; 7941 7942 private void setjopjop_ubf2enabled_widget(BooleanOptionWidget widget) { 7943 jopjop_ubf2enabled_widget = widget; 7944 } 7945 7946 public BooleanOptionWidget getjopjop_ubf2enabled_widget() { 7947 return jopjop_ubf2enabled_widget; 7948 } 7949 7950 private BooleanOptionWidget jopjop_uleenabled_widget; 7951 7952 private void setjopjop_uleenabled_widget(BooleanOptionWidget widget) { 7953 jopjop_uleenabled_widget = widget; 7954 } 7955 7956 public BooleanOptionWidget getjopjop_uleenabled_widget() { 7957 return jopjop_uleenabled_widget; 7958 } 7959 7960 private BooleanOptionWidget japenabled_widget; 7961 7962 private void setjapenabled_widget(BooleanOptionWidget widget) { 7963 japenabled_widget = widget; 7964 } 7965 7966 public BooleanOptionWidget getjapenabled_widget() { 7967 return japenabled_widget; 7968 } 7969 7970 private BooleanOptionWidget japjap_npcenabled_widget; 7971 7972 private void setjapjap_npcenabled_widget(BooleanOptionWidget widget) { 7973 japjap_npcenabled_widget = widget; 7974 } 7975 7976 public BooleanOptionWidget getjapjap_npcenabled_widget() { 7977 return japjap_npcenabled_widget; 7978 } 7979 7980 private BooleanOptionWidget japjap_npconly_array_ref_widget; 7981 7982 private void setjapjap_npconly_array_ref_widget(BooleanOptionWidget widget) { 7983 japjap_npconly_array_ref_widget = widget; 7984 } 7985 7986 public BooleanOptionWidget getjapjap_npconly_array_ref_widget() { 7987 return japjap_npconly_array_ref_widget; 7988 } 7989 7990 private BooleanOptionWidget japjap_npcprofiling_widget; 7991 7992 private void setjapjap_npcprofiling_widget(BooleanOptionWidget widget) { 7993 japjap_npcprofiling_widget = widget; 7994 } 7995 7996 public BooleanOptionWidget getjapjap_npcprofiling_widget() { 7997 return japjap_npcprofiling_widget; 7998 } 7999 8000 private BooleanOptionWidget japjap_npcolorerenabled_widget; 8001 8002 private void setjapjap_npcolorerenabled_widget(BooleanOptionWidget widget) { 8003 japjap_npcolorerenabled_widget = widget; 8004 } 8005 8006 public BooleanOptionWidget getjapjap_npcolorerenabled_widget() { 8007 return japjap_npcolorerenabled_widget; 8008 } 8009 8010 private BooleanOptionWidget japjap_abcenabled_widget; 8011 8012 private void setjapjap_abcenabled_widget(BooleanOptionWidget widget) { 8013 japjap_abcenabled_widget = widget; 8014 } 8015 8016 public BooleanOptionWidget getjapjap_abcenabled_widget() { 8017 return japjap_abcenabled_widget; 8018 } 8019 8020 private BooleanOptionWidget japjap_abcwith_all_widget; 8021 8022 private void setjapjap_abcwith_all_widget(BooleanOptionWidget widget) { 8023 japjap_abcwith_all_widget = widget; 8024 } 8025 8026 public BooleanOptionWidget getjapjap_abcwith_all_widget() { 8027 return japjap_abcwith_all_widget; 8028 } 8029 8030 private BooleanOptionWidget japjap_abcwith_cse_widget; 8031 8032 private void setjapjap_abcwith_cse_widget(BooleanOptionWidget widget) { 8033 japjap_abcwith_cse_widget = widget; 8034 } 8035 8036 public BooleanOptionWidget getjapjap_abcwith_cse_widget() { 8037 return japjap_abcwith_cse_widget; 8038 } 8039 8040 private BooleanOptionWidget japjap_abcwith_arrayref_widget; 8041 8042 private void setjapjap_abcwith_arrayref_widget(BooleanOptionWidget widget) { 8043 japjap_abcwith_arrayref_widget = widget; 8044 } 8045 8046 public BooleanOptionWidget getjapjap_abcwith_arrayref_widget() { 8047 return japjap_abcwith_arrayref_widget; 8048 } 8049 8050 private BooleanOptionWidget japjap_abcwith_fieldref_widget; 8051 8052 private void setjapjap_abcwith_fieldref_widget(BooleanOptionWidget widget) { 8053 japjap_abcwith_fieldref_widget = widget; 8054 } 8055 8056 public BooleanOptionWidget getjapjap_abcwith_fieldref_widget() { 8057 return japjap_abcwith_fieldref_widget; 8058 } 8059 8060 private BooleanOptionWidget japjap_abcwith_classfield_widget; 8061 8062 private void setjapjap_abcwith_classfield_widget(BooleanOptionWidget widget) { 8063 japjap_abcwith_classfield_widget = widget; 8064 } 8065 8066 public BooleanOptionWidget getjapjap_abcwith_classfield_widget() { 8067 return japjap_abcwith_classfield_widget; 8068 } 8069 8070 private BooleanOptionWidget japjap_abcwith_rectarray_widget; 8071 8072 private void setjapjap_abcwith_rectarray_widget(BooleanOptionWidget widget) { 8073 japjap_abcwith_rectarray_widget = widget; 8074 } 8075 8076 public BooleanOptionWidget getjapjap_abcwith_rectarray_widget() { 8077 return japjap_abcwith_rectarray_widget; 8078 } 8079 8080 private BooleanOptionWidget japjap_abcprofiling_widget; 8081 8082 private void setjapjap_abcprofiling_widget(BooleanOptionWidget widget) { 8083 japjap_abcprofiling_widget = widget; 8084 } 8085 8086 public BooleanOptionWidget getjapjap_abcprofiling_widget() { 8087 return japjap_abcprofiling_widget; 8088 } 8089 8090 private BooleanOptionWidget japjap_abcadd_color_tags_widget; 8091 8092 private void setjapjap_abcadd_color_tags_widget(BooleanOptionWidget widget) { 8093 japjap_abcadd_color_tags_widget = widget; 8094 } 8095 8096 public BooleanOptionWidget getjapjap_abcadd_color_tags_widget() { 8097 return japjap_abcadd_color_tags_widget; 8098 } 8099 8100 private BooleanOptionWidget japjap_profilingenabled_widget; 8101 8102 private void setjapjap_profilingenabled_widget(BooleanOptionWidget widget) { 8103 japjap_profilingenabled_widget = widget; 8104 } 8105 8106 public BooleanOptionWidget getjapjap_profilingenabled_widget() { 8107 return japjap_profilingenabled_widget; 8108 } 8109 8110 private BooleanOptionWidget japjap_profilingnotmainentry_widget; 8111 8112 private void setjapjap_profilingnotmainentry_widget(BooleanOptionWidget widget) { 8113 japjap_profilingnotmainentry_widget = widget; 8114 } 8115 8116 public BooleanOptionWidget getjapjap_profilingnotmainentry_widget() { 8117 return japjap_profilingnotmainentry_widget; 8118 } 8119 8120 private BooleanOptionWidget japjap_seaenabled_widget; 8121 8122 private void setjapjap_seaenabled_widget(BooleanOptionWidget widget) { 8123 japjap_seaenabled_widget = widget; 8124 } 8125 8126 public BooleanOptionWidget getjapjap_seaenabled_widget() { 8127 return japjap_seaenabled_widget; 8128 } 8129 8130 private BooleanOptionWidget japjap_seanaive_widget; 8131 8132 private void setjapjap_seanaive_widget(BooleanOptionWidget widget) { 8133 japjap_seanaive_widget = widget; 8134 } 8135 8136 public BooleanOptionWidget getjapjap_seanaive_widget() { 8137 return japjap_seanaive_widget; 8138 } 8139 8140 private BooleanOptionWidget japjap_fieldrwenabled_widget; 8141 8142 private void setjapjap_fieldrwenabled_widget(BooleanOptionWidget widget) { 8143 japjap_fieldrwenabled_widget = widget; 8144 } 8145 8146 public BooleanOptionWidget getjapjap_fieldrwenabled_widget() { 8147 return japjap_fieldrwenabled_widget; 8148 } 8149 8150 8151 private StringOptionWidget japjap_fieldrwthreshold_widget; 8152 8153 private void setjapjap_fieldrwthreshold_widget(StringOptionWidget widget) { 8154 japjap_fieldrwthreshold_widget = widget; 8155 } 8156 8157 public StringOptionWidget getjapjap_fieldrwthreshold_widget() { 8158 return japjap_fieldrwthreshold_widget; 8159 } 8160 8161 8162 private BooleanOptionWidget japjap_cgtaggerenabled_widget; 8163 8164 private void setjapjap_cgtaggerenabled_widget(BooleanOptionWidget widget) { 8165 japjap_cgtaggerenabled_widget = widget; 8166 } 8167 8168 public BooleanOptionWidget getjapjap_cgtaggerenabled_widget() { 8169 return japjap_cgtaggerenabled_widget; 8170 } 8171 8172 private BooleanOptionWidget japjap_parityenabled_widget; 8173 8174 private void setjapjap_parityenabled_widget(BooleanOptionWidget widget) { 8175 japjap_parityenabled_widget = widget; 8176 } 8177 8178 public BooleanOptionWidget getjapjap_parityenabled_widget() { 8179 return japjap_parityenabled_widget; 8180 } 8181 8182 private BooleanOptionWidget japjap_patenabled_widget; 8183 8184 private void setjapjap_patenabled_widget(BooleanOptionWidget widget) { 8185 japjap_patenabled_widget = widget; 8186 } 8187 8188 public BooleanOptionWidget getjapjap_patenabled_widget() { 8189 return japjap_patenabled_widget; 8190 } 8191 8192 private BooleanOptionWidget japjap_lvtaggerenabled_widget; 8193 8194 private void setjapjap_lvtaggerenabled_widget(BooleanOptionWidget widget) { 8195 japjap_lvtaggerenabled_widget = widget; 8196 } 8197 8198 public BooleanOptionWidget getjapjap_lvtaggerenabled_widget() { 8199 return japjap_lvtaggerenabled_widget; 8200 } 8201 8202 private BooleanOptionWidget japjap_rdtaggerenabled_widget; 8203 8204 private void setjapjap_rdtaggerenabled_widget(BooleanOptionWidget widget) { 8205 japjap_rdtaggerenabled_widget = widget; 8206 } 8207 8208 public BooleanOptionWidget getjapjap_rdtaggerenabled_widget() { 8209 return japjap_rdtaggerenabled_widget; 8210 } 8211 8212 private BooleanOptionWidget japjap_cheenabled_widget; 8213 8214 private void setjapjap_cheenabled_widget(BooleanOptionWidget widget) { 8215 japjap_cheenabled_widget = widget; 8216 } 8217 8218 public BooleanOptionWidget getjapjap_cheenabled_widget() { 8219 return japjap_cheenabled_widget; 8220 } 8221 8222 private BooleanOptionWidget japjap_umtenabled_widget; 8223 8224 private void setjapjap_umtenabled_widget(BooleanOptionWidget widget) { 8225 japjap_umtenabled_widget = widget; 8226 } 8227 8228 public BooleanOptionWidget getjapjap_umtenabled_widget() { 8229 return japjap_umtenabled_widget; 8230 } 8231 8232 private BooleanOptionWidget japjap_litenabled_widget; 8233 8234 private void setjapjap_litenabled_widget(BooleanOptionWidget widget) { 8235 japjap_litenabled_widget = widget; 8236 } 8237 8238 public BooleanOptionWidget getjapjap_litenabled_widget() { 8239 return japjap_litenabled_widget; 8240 } 8241 8242 private BooleanOptionWidget japjap_aetenabled_widget; 8243 8244 private void setjapjap_aetenabled_widget(BooleanOptionWidget widget) { 8245 japjap_aetenabled_widget = widget; 8246 } 8247 8248 public BooleanOptionWidget getjapjap_aetenabled_widget() { 8249 return japjap_aetenabled_widget; 8250 } 8251 8252 8253 private MultiOptionWidget japjap_aetkind_widget; 8254 8255 private void setjapjap_aetkind_widget(MultiOptionWidget widget) { 8256 japjap_aetkind_widget = widget; 8257 } 8258 8259 public MultiOptionWidget getjapjap_aetkind_widget() { 8260 return japjap_aetkind_widget; 8261 } 8262 8263 8264 private BooleanOptionWidget japjap_dmtenabled_widget; 8265 8266 private void setjapjap_dmtenabled_widget(BooleanOptionWidget widget) { 8267 japjap_dmtenabled_widget = widget; 8268 } 8269 8270 public BooleanOptionWidget getjapjap_dmtenabled_widget() { 8271 return japjap_dmtenabled_widget; 8272 } 8273 8274 private BooleanOptionWidget gbenabled_widget; 8275 8276 private void setgbenabled_widget(BooleanOptionWidget widget) { 8277 gbenabled_widget = widget; 8278 } 8279 8280 public BooleanOptionWidget getgbenabled_widget() { 8281 return gbenabled_widget; 8282 } 8283 8284 private BooleanOptionWidget gbgb_a1enabled_widget; 8285 8286 private void setgbgb_a1enabled_widget(BooleanOptionWidget widget) { 8287 gbgb_a1enabled_widget = widget; 8288 } 8289 8290 public BooleanOptionWidget getgbgb_a1enabled_widget() { 8291 return gbgb_a1enabled_widget; 8292 } 8293 8294 private BooleanOptionWidget gbgb_a1only_stack_locals_widget; 8295 8296 private void setgbgb_a1only_stack_locals_widget(BooleanOptionWidget widget) { 8297 gbgb_a1only_stack_locals_widget = widget; 8298 } 8299 8300 public BooleanOptionWidget getgbgb_a1only_stack_locals_widget() { 8301 return gbgb_a1only_stack_locals_widget; 8302 } 8303 8304 private BooleanOptionWidget gbgb_cfenabled_widget; 8305 8306 private void setgbgb_cfenabled_widget(BooleanOptionWidget widget) { 8307 gbgb_cfenabled_widget = widget; 8308 } 8309 8310 public BooleanOptionWidget getgbgb_cfenabled_widget() { 8311 return gbgb_cfenabled_widget; 8312 } 8313 8314 private BooleanOptionWidget gbgb_a2enabled_widget; 8315 8316 private void setgbgb_a2enabled_widget(BooleanOptionWidget widget) { 8317 gbgb_a2enabled_widget = widget; 8318 } 8319 8320 public BooleanOptionWidget getgbgb_a2enabled_widget() { 8321 return gbgb_a2enabled_widget; 8322 } 8323 8324 private BooleanOptionWidget gbgb_a2only_stack_locals_widget; 8325 8326 private void setgbgb_a2only_stack_locals_widget(BooleanOptionWidget widget) { 8327 gbgb_a2only_stack_locals_widget = widget; 8328 } 8329 8330 public BooleanOptionWidget getgbgb_a2only_stack_locals_widget() { 8331 return gbgb_a2only_stack_locals_widget; 8332 } 8333 8334 private BooleanOptionWidget gbgb_uleenabled_widget; 8335 8336 private void setgbgb_uleenabled_widget(BooleanOptionWidget widget) { 8337 gbgb_uleenabled_widget = widget; 8338 } 8339 8340 public BooleanOptionWidget getgbgb_uleenabled_widget() { 8341 return gbgb_uleenabled_widget; 8342 } 8343 8344 private BooleanOptionWidget gopenabled_widget; 8345 8346 private void setgopenabled_widget(BooleanOptionWidget widget) { 8347 gopenabled_widget = widget; 8348 } 8349 8350 public BooleanOptionWidget getgopenabled_widget() { 8351 return gopenabled_widget; 8352 } 8353 8354 private BooleanOptionWidget bbenabled_widget; 8355 8356 private void setbbenabled_widget(BooleanOptionWidget widget) { 8357 bbenabled_widget = widget; 8358 } 8359 8360 public BooleanOptionWidget getbbenabled_widget() { 8361 return bbenabled_widget; 8362 } 8363 8364 private BooleanOptionWidget bbbb_lsoenabled_widget; 8365 8366 private void setbbbb_lsoenabled_widget(BooleanOptionWidget widget) { 8367 bbbb_lsoenabled_widget = widget; 8368 } 8369 8370 public BooleanOptionWidget getbbbb_lsoenabled_widget() { 8371 return bbbb_lsoenabled_widget; 8372 } 8373 8374 private BooleanOptionWidget bbbb_lsodebug_widget; 8375 8376 private void setbbbb_lsodebug_widget(BooleanOptionWidget widget) { 8377 bbbb_lsodebug_widget = widget; 8378 } 8379 8380 public BooleanOptionWidget getbbbb_lsodebug_widget() { 8381 return bbbb_lsodebug_widget; 8382 } 8383 8384 private BooleanOptionWidget bbbb_lsointer_widget; 8385 8386 private void setbbbb_lsointer_widget(BooleanOptionWidget widget) { 8387 bbbb_lsointer_widget = widget; 8388 } 8389 8390 public BooleanOptionWidget getbbbb_lsointer_widget() { 8391 return bbbb_lsointer_widget; 8392 } 8393 8394 private BooleanOptionWidget bbbb_lsosl_widget; 8395 8396 private void setbbbb_lsosl_widget(BooleanOptionWidget widget) { 8397 bbbb_lsosl_widget = widget; 8398 } 8399 8400 public BooleanOptionWidget getbbbb_lsosl_widget() { 8401 return bbbb_lsosl_widget; 8402 } 8403 8404 private BooleanOptionWidget bbbb_lsosl2_widget; 8405 8406 private void setbbbb_lsosl2_widget(BooleanOptionWidget widget) { 8407 bbbb_lsosl2_widget = widget; 8408 } 8409 8410 public BooleanOptionWidget getbbbb_lsosl2_widget() { 8411 return bbbb_lsosl2_widget; 8412 } 8413 8414 private BooleanOptionWidget bbbb_lsosll_widget; 8415 8416 private void setbbbb_lsosll_widget(BooleanOptionWidget widget) { 8417 bbbb_lsosll_widget = widget; 8418 } 8419 8420 public BooleanOptionWidget getbbbb_lsosll_widget() { 8421 return bbbb_lsosll_widget; 8422 } 8423 8424 private BooleanOptionWidget bbbb_lsosll2_widget; 8425 8426 private void setbbbb_lsosll2_widget(BooleanOptionWidget widget) { 8427 bbbb_lsosll2_widget = widget; 8428 } 8429 8430 public BooleanOptionWidget getbbbb_lsosll2_widget() { 8431 return bbbb_lsosll2_widget; 8432 } 8433 8434 private BooleanOptionWidget bbbb_phoenabled_widget; 8435 8436 private void setbbbb_phoenabled_widget(BooleanOptionWidget widget) { 8437 bbbb_phoenabled_widget = widget; 8438 } 8439 8440 public BooleanOptionWidget getbbbb_phoenabled_widget() { 8441 return bbbb_phoenabled_widget; 8442 } 8443 8444 private BooleanOptionWidget bbbb_uleenabled_widget; 8445 8446 private void setbbbb_uleenabled_widget(BooleanOptionWidget widget) { 8447 bbbb_uleenabled_widget = widget; 8448 } 8449 8450 public BooleanOptionWidget getbbbb_uleenabled_widget() { 8451 return bbbb_uleenabled_widget; 8452 } 8453 8454 private BooleanOptionWidget bbbb_lpenabled_widget; 8455 8456 private void setbbbb_lpenabled_widget(BooleanOptionWidget widget) { 8457 bbbb_lpenabled_widget = widget; 8458 } 8459 8460 public BooleanOptionWidget getbbbb_lpenabled_widget() { 8461 return bbbb_lpenabled_widget; 8462 } 8463 8464 private BooleanOptionWidget bbbb_lpunsplit_original_locals_widget; 8465 8466 private void setbbbb_lpunsplit_original_locals_widget(BooleanOptionWidget widget) { 8467 bbbb_lpunsplit_original_locals_widget = widget; 8468 } 8469 8470 public BooleanOptionWidget getbbbb_lpunsplit_original_locals_widget() { 8471 return bbbb_lpunsplit_original_locals_widget; 8472 } 8473 8474 private BooleanOptionWidget bopenabled_widget; 8475 8476 private void setbopenabled_widget(BooleanOptionWidget widget) { 8477 bopenabled_widget = widget; 8478 } 8479 8480 public BooleanOptionWidget getbopenabled_widget() { 8481 return bopenabled_widget; 8482 } 8483 8484 private BooleanOptionWidget tagenabled_widget; 8485 8486 private void settagenabled_widget(BooleanOptionWidget widget) { 8487 tagenabled_widget = widget; 8488 } 8489 8490 public BooleanOptionWidget gettagenabled_widget() { 8491 return tagenabled_widget; 8492 } 8493 8494 private BooleanOptionWidget tagtag_lnenabled_widget; 8495 8496 private void settagtag_lnenabled_widget(BooleanOptionWidget widget) { 8497 tagtag_lnenabled_widget = widget; 8498 } 8499 8500 public BooleanOptionWidget gettagtag_lnenabled_widget() { 8501 return tagtag_lnenabled_widget; 8502 } 8503 8504 private BooleanOptionWidget tagtag_anenabled_widget; 8505 8506 private void settagtag_anenabled_widget(BooleanOptionWidget widget) { 8507 tagtag_anenabled_widget = widget; 8508 } 8509 8510 public BooleanOptionWidget gettagtag_anenabled_widget() { 8511 return tagtag_anenabled_widget; 8512 } 8513 8514 private BooleanOptionWidget tagtag_depenabled_widget; 8515 8516 private void settagtag_depenabled_widget(BooleanOptionWidget widget) { 8517 tagtag_depenabled_widget = widget; 8518 } 8519 8520 public BooleanOptionWidget gettagtag_depenabled_widget() { 8521 return tagtag_depenabled_widget; 8522 } 8523 8524 private BooleanOptionWidget tagtag_fieldrwenabled_widget; 8525 8526 private void settagtag_fieldrwenabled_widget(BooleanOptionWidget widget) { 8527 tagtag_fieldrwenabled_widget = widget; 8528 } 8529 8530 public BooleanOptionWidget gettagtag_fieldrwenabled_widget() { 8531 return tagtag_fieldrwenabled_widget; 8532 } 8533 8534 private BooleanOptionWidget dbenabled_widget; 8535 8536 private void setdbenabled_widget(BooleanOptionWidget widget) { 8537 dbenabled_widget = widget; 8538 } 8539 8540 public BooleanOptionWidget getdbenabled_widget() { 8541 return dbenabled_widget; 8542 } 8543 8544 private BooleanOptionWidget dbdb_transformationsenabled_widget; 8545 8546 private void setdbdb_transformationsenabled_widget(BooleanOptionWidget widget) { 8547 dbdb_transformationsenabled_widget = widget; 8548 } 8549 8550 public BooleanOptionWidget getdbdb_transformationsenabled_widget() { 8551 return dbdb_transformationsenabled_widget; 8552 } 8553 8554 private BooleanOptionWidget dbdb_renamerenabled_widget; 8555 8556 private void setdbdb_renamerenabled_widget(BooleanOptionWidget widget) { 8557 dbdb_renamerenabled_widget = widget; 8558 } 8559 8560 public BooleanOptionWidget getdbdb_renamerenabled_widget() { 8561 return dbdb_renamerenabled_widget; 8562 } 8563 8564 private BooleanOptionWidget dbdb_renamerremove_fully_qualified_widget; 8565 8566 private void setdbdb_renamerremove_fully_qualified_widget(BooleanOptionWidget widget) { 8567 dbdb_renamerremove_fully_qualified_widget = widget; 8568 } 8569 8570 public BooleanOptionWidget getdbdb_renamerremove_fully_qualified_widget() { 8571 return dbdb_renamerremove_fully_qualified_widget; 8572 } 8573 8574 private BooleanOptionWidget dbdb_deobfuscateenabled_widget; 8575 8576 private void setdbdb_deobfuscateenabled_widget(BooleanOptionWidget widget) { 8577 dbdb_deobfuscateenabled_widget = widget; 8578 } 8579 8580 public BooleanOptionWidget getdbdb_deobfuscateenabled_widget() { 8581 return dbdb_deobfuscateenabled_widget; 8582 } 8583 8584 private BooleanOptionWidget dbdb_force_recompileenabled_widget; 8585 8586 private void setdbdb_force_recompileenabled_widget(BooleanOptionWidget widget) { 8587 dbdb_force_recompileenabled_widget = widget; 8588 } 8589 8590 public BooleanOptionWidget getdbdb_force_recompileenabled_widget() { 8591 return dbdb_force_recompileenabled_widget; 8592 } 8593 8594 private BooleanOptionWidget Application_Mode_Optionsinclude_all_widget; 8595 8596 private void setApplication_Mode_Optionsinclude_all_widget(BooleanOptionWidget widget) { 8597 Application_Mode_Optionsinclude_all_widget = widget; 8598 } 8599 8600 public BooleanOptionWidget getApplication_Mode_Optionsinclude_all_widget() { 8601 return Application_Mode_Optionsinclude_all_widget; 8602 } 8603 8604 8605 private ListOptionWidget Application_Mode_Optionsinclude_widget; 8606 8607 private void setApplication_Mode_Optionsinclude_widget(ListOptionWidget widget) { 8608 Application_Mode_Optionsinclude_widget = widget; 8609 } 8610 8611 public ListOptionWidget getApplication_Mode_Optionsinclude_widget() { 8612 return Application_Mode_Optionsinclude_widget; 8613 } 8614 8615 8616 8617 private ListOptionWidget Application_Mode_Optionsexclude_widget; 8618 8619 private void setApplication_Mode_Optionsexclude_widget(ListOptionWidget widget) { 8620 Application_Mode_Optionsexclude_widget = widget; 8621 } 8622 8623 public ListOptionWidget getApplication_Mode_Optionsexclude_widget() { 8624 return Application_Mode_Optionsexclude_widget; 8625 } 8626 8627 8628 8629 private ListOptionWidget Application_Mode_Optionsdynamic_class_widget; 8630 8631 private void setApplication_Mode_Optionsdynamic_class_widget(ListOptionWidget widget) { 8632 Application_Mode_Optionsdynamic_class_widget = widget; 8633 } 8634 8635 public ListOptionWidget getApplication_Mode_Optionsdynamic_class_widget() { 8636 return Application_Mode_Optionsdynamic_class_widget; 8637 } 8638 8639 8640 8641 private ListOptionWidget Application_Mode_Optionsdynamic_dir_widget; 8642 8643 private void setApplication_Mode_Optionsdynamic_dir_widget(ListOptionWidget widget) { 8644 Application_Mode_Optionsdynamic_dir_widget = widget; 8645 } 8646 8647 public ListOptionWidget getApplication_Mode_Optionsdynamic_dir_widget() { 8648 return Application_Mode_Optionsdynamic_dir_widget; 8649 } 8650 8651 8652 8653 private ListOptionWidget Application_Mode_Optionsdynamic_package_widget; 8654 8655 private void setApplication_Mode_Optionsdynamic_package_widget(ListOptionWidget widget) { 8656 Application_Mode_Optionsdynamic_package_widget = widget; 8657 } 8658 8659 public ListOptionWidget getApplication_Mode_Optionsdynamic_package_widget() { 8660 return Application_Mode_Optionsdynamic_package_widget; 8661 } 8662 8663 8664 private BooleanOptionWidget Input_Attribute_Optionskeep_line_number_widget; 8665 8666 private void setInput_Attribute_Optionskeep_line_number_widget(BooleanOptionWidget widget) { 8667 Input_Attribute_Optionskeep_line_number_widget = widget; 8668 } 8669 8670 public BooleanOptionWidget getInput_Attribute_Optionskeep_line_number_widget() { 8671 return Input_Attribute_Optionskeep_line_number_widget; 8672 } 8673 8674 private BooleanOptionWidget Input_Attribute_Optionskeep_offset_widget; 8675 8676 private void setInput_Attribute_Optionskeep_offset_widget(BooleanOptionWidget widget) { 8677 Input_Attribute_Optionskeep_offset_widget = widget; 8678 } 8679 8680 public BooleanOptionWidget getInput_Attribute_Optionskeep_offset_widget() { 8681 return Input_Attribute_Optionskeep_offset_widget; 8682 } 8683 8684 private BooleanOptionWidget Annotation_Optionsannot_purity_widget; 8685 8686 private void setAnnotation_Optionsannot_purity_widget(BooleanOptionWidget widget) { 8687 Annotation_Optionsannot_purity_widget = widget; 8688 } 8689 8690 public BooleanOptionWidget getAnnotation_Optionsannot_purity_widget() { 8691 return Annotation_Optionsannot_purity_widget; 8692 } 8693 8694 private BooleanOptionWidget Annotation_Optionsannot_nullpointer_widget; 8695 8696 private void setAnnotation_Optionsannot_nullpointer_widget(BooleanOptionWidget widget) { 8697 Annotation_Optionsannot_nullpointer_widget = widget; 8698 } 8699 8700 public BooleanOptionWidget getAnnotation_Optionsannot_nullpointer_widget() { 8701 return Annotation_Optionsannot_nullpointer_widget; 8702 } 8703 8704 private BooleanOptionWidget Annotation_Optionsannot_arraybounds_widget; 8705 8706 private void setAnnotation_Optionsannot_arraybounds_widget(BooleanOptionWidget widget) { 8707 Annotation_Optionsannot_arraybounds_widget = widget; 8708 } 8709 8710 public BooleanOptionWidget getAnnotation_Optionsannot_arraybounds_widget() { 8711 return Annotation_Optionsannot_arraybounds_widget; 8712 } 8713 8714 private BooleanOptionWidget Annotation_Optionsannot_side_effect_widget; 8715 8716 private void setAnnotation_Optionsannot_side_effect_widget(BooleanOptionWidget widget) { 8717 Annotation_Optionsannot_side_effect_widget = widget; 8718 } 8719 8720 public BooleanOptionWidget getAnnotation_Optionsannot_side_effect_widget() { 8721 return Annotation_Optionsannot_side_effect_widget; 8722 } 8723 8724 private BooleanOptionWidget Annotation_Optionsannot_fieldrw_widget; 8725 8726 private void setAnnotation_Optionsannot_fieldrw_widget(BooleanOptionWidget widget) { 8727 Annotation_Optionsannot_fieldrw_widget = widget; 8728 } 8729 8730 public BooleanOptionWidget getAnnotation_Optionsannot_fieldrw_widget() { 8731 return Annotation_Optionsannot_fieldrw_widget; 8732 } 8733 8734 private BooleanOptionWidget Miscellaneous_Optionstime_widget; 8735 8736 private void setMiscellaneous_Optionstime_widget(BooleanOptionWidget widget) { 8737 Miscellaneous_Optionstime_widget = widget; 8738 } 8739 8740 public BooleanOptionWidget getMiscellaneous_Optionstime_widget() { 8741 return Miscellaneous_Optionstime_widget; 8742 } 8743 8744 private BooleanOptionWidget Miscellaneous_Optionssubtract_gc_widget; 8745 8746 private void setMiscellaneous_Optionssubtract_gc_widget(BooleanOptionWidget widget) { 8747 Miscellaneous_Optionssubtract_gc_widget = widget; 8748 } 8749 8750 public BooleanOptionWidget getMiscellaneous_Optionssubtract_gc_widget() { 8751 return Miscellaneous_Optionssubtract_gc_widget; 8752 } 8753 8754 8755 private Composite General_OptionsCreate(Composite parent) { 8756 String defKey; 8757 String defaultString; 8758 boolean defaultBool = false; 8759 String defaultArray; 8760 8761 Group editGroupGeneral_Options = new Group(parent, SWT.NONE); 8762 GridLayout layout = new GridLayout(); 8763 editGroupGeneral_Options.setLayout(layout); 8764 8765 editGroupGeneral_Options.setText("General Options"); 8766 8767 editGroupGeneral_Options.setData("id", "General_Options"); 8768 8769 String descGeneral_Options = ""; 8770 if (descGeneral_Options.length() > 0) { 8771 Label descLabelGeneral_Options = new Label(editGroupGeneral_Options, SWT.WRAP); 8772 descLabelGeneral_Options.setText(descGeneral_Options); 8773 } 8774 OptionData [] data; 8775 8776 8777 8778 8779 defKey = ""+" "+""+" "+"h"; 8780 defKey = defKey.trim(); 8781 8782 if (isInDefList(defKey)) { 8783 defaultBool = getBoolDef(defKey); 8784 } 8785 else { 8786 8787 defaultBool = false; 8788 8789 } 8790 8791 setGeneral_Optionshelp_widget(new BooleanOptionWidget(editGroupGeneral_Options, SWT.NONE, new OptionData("Help", "", "","h", "\nDisplay the textual help message and exit immediately without \nfurther processing. ", defaultBool))); 8792 8793 8794 8795 defKey = ""+" "+""+" "+"pl"; 8796 defKey = defKey.trim(); 8797 8798 if (isInDefList(defKey)) { 8799 defaultBool = getBoolDef(defKey); 8800 } 8801 else { 8802 8803 defaultBool = false; 8804 8805 } 8806 8807 setGeneral_Optionsphase_list_widget(new BooleanOptionWidget(editGroupGeneral_Options, SWT.NONE, new OptionData("Phase List", "", "","pl", "\nPrint a list of the available phases and sub-phases, then exit. \n", defaultBool))); 8808 8809 8810 8811 defKey = ""+" "+""+" "+"version"; 8812 defKey = defKey.trim(); 8813 8814 if (isInDefList(defKey)) { 8815 defaultBool = getBoolDef(defKey); 8816 } 8817 else { 8818 8819 defaultBool = false; 8820 8821 } 8822 8823 setGeneral_Optionsversion_widget(new BooleanOptionWidget(editGroupGeneral_Options, SWT.NONE, new OptionData("Version", "", "","version", "\nDisplay information about the version of Soot being run, then \nexit without further processing. ", defaultBool))); 8824 8825 8826 8827 defKey = ""+" "+""+" "+"v"; 8828 defKey = defKey.trim(); 8829 8830 if (isInDefList(defKey)) { 8831 defaultBool = getBoolDef(defKey); 8832 } 8833 else { 8834 8835 defaultBool = false; 8836 8837 } 8838 8839 setGeneral_Optionsverbose_widget(new BooleanOptionWidget(editGroupGeneral_Options, SWT.NONE, new OptionData("Verbose", "", "","v", "\nProvide detailed information about what Soot is doing as it \nruns. ", defaultBool))); 8840 8841 8842 8843 defKey = ""+" "+""+" "+"interactive-mode"; 8844 defKey = defKey.trim(); 8845 8846 if (isInDefList(defKey)) { 8847 defaultBool = getBoolDef(defKey); 8848 } 8849 else { 8850 8851 defaultBool = false; 8852 8853 } 8854 8855 setGeneral_Optionsinteractive_mode_widget(new BooleanOptionWidget(editGroupGeneral_Options, SWT.NONE, new OptionData("Interactive Mode", "", "","interactive-mode", "\nRuns interactively, with Soot providing detailed information as \nit iterates through intra-procedural analyses. ", defaultBool))); 8856 8857 8858 8859 defKey = ""+" "+""+" "+"app"; 8860 defKey = defKey.trim(); 8861 8862 if (isInDefList(defKey)) { 8863 defaultBool = getBoolDef(defKey); 8864 } 8865 else { 8866 8867 defaultBool = false; 8868 8869 } 8870 8871 setGeneral_Optionsapp_widget(new BooleanOptionWidget(editGroupGeneral_Options, SWT.NONE, new OptionData("Application Mode", "", "","app", "\nRun in application mode, processing all classes referenced by \nargument classes.", defaultBool))); 8872 8873 8874 8875 defKey = ""+" "+""+" "+"w"; 8876 defKey = defKey.trim(); 8877 8878 if (isInDefList(defKey)) { 8879 defaultBool = getBoolDef(defKey); 8880 } 8881 else { 8882 8883 defaultBool = false; 8884 8885 } 8886 8887 setGeneral_Optionswhole_program_widget(new BooleanOptionWidget(editGroupGeneral_Options, SWT.NONE, new OptionData("Whole-Program Mode", "", "","w", "\nRun in whole program mode, taking into consideration the whole \nprogram when performing analyses and transformations. Soot uses \nthe Call Graph Constructor to build a call graph for the \nprogram, then applies enabled transformations in the \nWhole-Jimple Transformation, Whole-Jimple Optimization, and \nWhole-Jimple Annotation packs before applying enabled \nintraprocedural transformations. Note that the Whole-Jimple \nOptimization pack is normally disabled (and thus not applied by \nwhole program mode), unless you also specify the Whole Program \nOptimize option.", defaultBool))); 8888 8889 8890 8891 defKey = ""+" "+""+" "+"ws"; 8892 defKey = defKey.trim(); 8893 8894 if (isInDefList(defKey)) { 8895 defaultBool = getBoolDef(defKey); 8896 } 8897 else { 8898 8899 defaultBool = false; 8900 8901 } 8902 8903 setGeneral_Optionswhole_shimple_widget(new BooleanOptionWidget(editGroupGeneral_Options, SWT.NONE, new OptionData("Whole-Shimple Mode", "", "","ws", "\nRun in whole shimple mode, taking into consideration the whole \nprogram when performing Shimple analyses and transformations. \nSoot uses the Call Graph Constructor to build a call graph for \nthe program, then applies enabled transformations in the \nWhole-Shimple Transformation and Whole-Shimple Optimization \nbefore applying enabled intraprocedural transformations. Note \nthat the Whole-Shimple Optimization pack is normally disabled \n(and thus not applied by whole shimple mode), unless you also \nspecify the Whole Program Optimize option.", defaultBool))); 8904 8905 8906 8907 defKey = ""+" "+""+" "+"validate"; 8908 defKey = defKey.trim(); 8909 8910 if (isInDefList(defKey)) { 8911 defaultBool = getBoolDef(defKey); 8912 } 8913 else { 8914 8915 defaultBool = false; 8916 8917 } 8918 8919 setGeneral_Optionsvalidate_widget(new BooleanOptionWidget(editGroupGeneral_Options, SWT.NONE, new OptionData("Validate", "", "","validate", "\nCauses internal checks to be done on bodies in the various Soot \nIRs, to make sure the transformations have not done something \nstrange. This option may degrade Soot's performance. ", defaultBool))); 8920 8921 8922 8923 defKey = ""+" "+""+" "+"debug"; 8924 defKey = defKey.trim(); 8925 8926 if (isInDefList(defKey)) { 8927 defaultBool = getBoolDef(defKey); 8928 } 8929 else { 8930 8931 defaultBool = false; 8932 8933 } 8934 8935 setGeneral_Optionsdebug_widget(new BooleanOptionWidget(editGroupGeneral_Options, SWT.NONE, new OptionData("Debug", "", "","debug", "\nPrint various debugging information as Soot runs, particularly \nfrom the Baf Body Phase and the Jimple Annotation Pack Phase. ", defaultBool))); 8936 8937 8938 8939 defKey = ""+" "+""+" "+"debug-resolver"; 8940 defKey = defKey.trim(); 8941 8942 if (isInDefList(defKey)) { 8943 defaultBool = getBoolDef(defKey); 8944 } 8945 else { 8946 8947 defaultBool = false; 8948 8949 } 8950 8951 setGeneral_Optionsdebug_resolver_widget(new BooleanOptionWidget(editGroupGeneral_Options, SWT.NONE, new OptionData("Debug Resolver", "", "","debug-resolver", "\nPrint debugging information about class resolving. ", defaultBool))); 8952 8953 8954 8955 defKey = ""+" "+""+" "+"ph"; 8956 defKey = defKey.trim(); 8957 8958 if (isInDefList(defKey)) { 8959 defaultString = getArrayDef(defKey); 8960 } 8961 else { 8962 8963 defaultString = ""; 8964 8965 } 8966 8967 setGeneral_Optionsphase_help_widget(new ListOptionWidget(editGroupGeneral_Options, SWT.NONE, new OptionData("Phase Help", "", "","ph", "\nPrint a help message about the phase or sub-phase named PHASE, \nthen exit. To see the help message of more than one phase, \nspecify multiple phase-help options. ", defaultString))); 8968 8969 8970 8971 return editGroupGeneral_Options; 8972 } 8973 8974 8975 8976 private Composite Input_OptionsCreate(Composite parent) { 8977 String defKey; 8978 String defaultString; 8979 boolean defaultBool = false; 8980 String defaultArray; 8981 8982 Group editGroupInput_Options = new Group(parent, SWT.NONE); 8983 GridLayout layout = new GridLayout(); 8984 editGroupInput_Options.setLayout(layout); 8985 8986 editGroupInput_Options.setText("Input Options"); 8987 8988 editGroupInput_Options.setData("id", "Input_Options"); 8989 8990 String descInput_Options = ""; 8991 if (descInput_Options.length() > 0) { 8992 Label descLabelInput_Options = new Label(editGroupInput_Options, SWT.WRAP); 8993 descLabelInput_Options.setText(descInput_Options); 8994 } 8995 OptionData [] data; 8996 8997 8998 8999 9000 defKey = ""+" "+""+" "+"ast-metrics"; 9001 defKey = defKey.trim(); 9002 9003 if (isInDefList(defKey)) { 9004 defaultBool = getBoolDef(defKey); 9005 } 9006 else { 9007 9008 defaultBool = false; 9009 9010 } 9011 9012 setInput_Optionsast_metrics_widget(new BooleanOptionWidget(editGroupInput_Options, SWT.NONE, new OptionData("Compute AST Metrics", "", "","ast-metrics", "\n If this flag is set and soot converts java to jimple then \nAST metrics will be computed. ", defaultBool))); 9013 9014 9015 9016 defKey = ""+" "+""+" "+"full-resolver"; 9017 defKey = defKey.trim(); 9018 9019 if (isInDefList(defKey)) { 9020 defaultBool = getBoolDef(defKey); 9021 } 9022 else { 9023 9024 defaultBool = false; 9025 9026 } 9027 9028 setInput_Optionsfull_resolver_widget(new BooleanOptionWidget(editGroupInput_Options, SWT.NONE, new OptionData("Force complete resolver", "", "","full-resolver", "\nNormally, Soot resolves only that application classes and any \nclasses that they refer to, along with any classes it needs for \nthe Jimple typing, but it does not transitively resolve \nreferences in these additional classes that were resolved only \nbecause they were referenced. This switch forces full transitive \nresolution of all references found in all classes that are \nresolved, regardless of why they were resolved. In \nwhole-program mode, class resolution is always fully transitive. \nTherefore, in whole-program mode, this switch has no effect, and \nclass resolution is always performed as if it were turned on. ", defaultBool))); 9029 9030 9031 9032 defKey = ""+" "+""+" "+"allow-phantom-refs"; 9033 defKey = defKey.trim(); 9034 9035 if (isInDefList(defKey)) { 9036 defaultBool = getBoolDef(defKey); 9037 } 9038 else { 9039 9040 defaultBool = false; 9041 9042 } 9043 9044 setInput_Optionsallow_phantom_refs_widget(new BooleanOptionWidget(editGroupInput_Options, SWT.NONE, new OptionData("Allow Phantom References", "", "","allow-phantom-refs", "\nAllow Soot to process a class even if it cannot find all \nclasses referenced by that class. This may cause Soot to produce \nincorrect results. ", defaultBool))); 9045 9046 9047 9048 defKey = ""+" "+""+" "+"use-old-type-assigner"; 9049 defKey = defKey.trim(); 9050 9051 if (isInDefList(defKey)) { 9052 defaultBool = getBoolDef(defKey); 9053 } 9054 else { 9055 9056 defaultBool = false; 9057 9058 } 9059 9060 setInput_Optionsuse_old_type_assigner_widget(new BooleanOptionWidget(editGroupInput_Options, SWT.NONE, new OptionData("Use old Type Assigner ", "", "","use-old-type-assigner", "\nDisable the reimplemented type assigner. This uses improved \ndata structures to provide a significant performance benefit, \nbut has not yet been thoroughly tested. ", defaultBool))); 9061 9062 9063 9064 data = new OptionData [] { 9065 9066 new OptionData("Class File", 9067 "c", 9068 "\nTry to resolve classes first from .class files found in the \nSoot classpath. Fall back to .jimple files only when unable to \nfind a .class file. ", 9069 9070 true), 9071 9072 new OptionData("Only Class File", 9073 "only-class", 9074 "\nTry to resolve classes first from .class files found in the \nSoot classpath. Do not try any other types of files even when \nunable to find a .class file. ", 9075 9076 false), 9077 9078 new OptionData("Jimple File", 9079 "J", 9080 "\nTry to resolve classes first from .jimple files found in the \nSoot classpath. Fall back to .class files only when unable to \nfind a .jimple file. ", 9081 9082 false), 9083 9084 new OptionData("Java File", 9085 "java", 9086 "\nTry to resolve classes first from .java files found in the Soot \nclasspath. Fall back to .class files only when unable to find a \n.java file. ", 9087 9088 false), 9089 9090 }; 9091 9092 9093 setInput_Optionssrc_prec_widget(new MultiOptionWidget(editGroupInput_Options, SWT.NONE, data, new OptionData("Input Source Precedence", "", "","src-prec", "\nSets FORMAT as Soot's preference for the type of source files \nto read when it looks for a class. "))); 9094 9095 defKey = ""+" "+""+" "+"src-prec"; 9096 defKey = defKey.trim(); 9097 9098 if (isInDefList(defKey)) { 9099 defaultString = getStringDef(defKey); 9100 9101 getInput_Optionssrc_prec_widget().setDef(defaultString); 9102 } 9103 9104 9105 9106 defKey = ""+" "+""+" "+"process-dir"; 9107 defKey = defKey.trim(); 9108 9109 if (isInDefList(defKey)) { 9110 defaultString = getArrayDef(defKey); 9111 } 9112 else { 9113 9114 defaultString = ""; 9115 9116 } 9117 9118 setInput_Optionsprocess_dir_widget(new ListOptionWidget(editGroupInput_Options, SWT.NONE, new OptionData("Process Directories", "", "","process-dir", "\nAdd all classes found in DIR to the set of argument classes \nwhich is analyzed and transformed by Soot. You can specify the \noption more than once, to add argument classes from multiple \ndirectories. If subdirectories of DIR contain .class or .jimple \nfiles, Soot assumes that the subdirectory names correspond to \ncomponents of the classes' package names. If DIR contains \nsubA/subB/MyClass.class, for instance, then Soot assumes MyClass \nis in package subA.subB.", defaultString))); 9119 9120 9121 defKey = ""+" "+""+" "+"cp"; 9122 defKey = defKey.trim(); 9123 9124 if (isInDefList(defKey)) { 9125 defaultString = getStringDef(defKey); 9126 } 9127 else { 9128 9129 defaultString = ""; 9130 9131 } 9132 9133 setInput_Optionssoot_classpath_widget(new StringOptionWidget(editGroupInput_Options, SWT.NONE, new OptionData("Soot Classpath", "", "","cp", "\nUse PATH as the list of directories in which Soot should search \nfor classes. PATH should be a series of directories, separated \nby the path separator character for your system. If no classpath \nis set on the command line, but the system property \nsoot.class.path has been set, Soot uses its value as the \nclasspath. If neither the command line nor the system properties \nspecify a Soot classpath, Soot falls back on a default classpath \nconsisting of the value of the system property java.class.path \nfollowed java.home/lib/rt.jar, where java.home stands for the \ncontents of the system property java.home and / stands for the \nsystem file separator.", defaultString))); 9134 9135 9136 defKey = ""+" "+""+" "+"main-class"; 9137 defKey = defKey.trim(); 9138 9139 if (isInDefList(defKey)) { 9140 defaultString = getStringDef(defKey); 9141 } 9142 else { 9143 9144 defaultString = ""; 9145 9146 } 9147 9148 setInput_Optionsmain_class_widget(new StringOptionWidget(editGroupInput_Options, SWT.NONE, new OptionData("Main Class", "", "","main-class", "\nBy default, the first class mentioned on the command-line is \ntreated as the main class (entry point) in whole-program \nanalysis. This option overrides this default. ", defaultString))); 9149 9150 9151 9152 return editGroupInput_Options; 9153 } 9154 9155 9156 9157 private Composite Output_OptionsCreate(Composite parent) { 9158 String defKey; 9159 String defaultString; 9160 boolean defaultBool = false; 9161 String defaultArray; 9162 9163 Group editGroupOutput_Options = new Group(parent, SWT.NONE); 9164 GridLayout layout = new GridLayout(); 9165 editGroupOutput_Options.setLayout(layout); 9166 9167 editGroupOutput_Options.setText("Output Options"); 9168 9169 editGroupOutput_Options.setData("id", "Output_Options"); 9170 9171 String descOutput_Options = ""; 9172 if (descOutput_Options.length() > 0) { 9173 Label descLabelOutput_Options = new Label(editGroupOutput_Options, SWT.WRAP); 9174 descLabelOutput_Options.setText(descOutput_Options); 9175 } 9176 OptionData [] data; 9177 9178 9179 9180 9181 defKey = ""+" "+""+" "+"outjar"; 9182 defKey = defKey.trim(); 9183 9184 if (isInDefList(defKey)) { 9185 defaultBool = getBoolDef(defKey); 9186 } 9187 else { 9188 9189 defaultBool = false; 9190 9191 } 9192 9193 setOutput_Optionsoutput_jar_widget(new BooleanOptionWidget(editGroupOutput_Options, SWT.NONE, new OptionData("Output Jar File", "", "","outjar", "\nSaves output files into a Jar file instead of a directory. The \noutput Jar file name should be specified using the Output \nDirectory (output-dir) option. Note that if the output Jar file \nexists before Soot runs, any files inside it will first be \nremoved. ", defaultBool))); 9194 9195 9196 9197 defKey = ""+" "+""+" "+"xml-attributes"; 9198 defKey = defKey.trim(); 9199 9200 if (isInDefList(defKey)) { 9201 defaultBool = getBoolDef(defKey); 9202 } 9203 else { 9204 9205 defaultBool = false; 9206 9207 } 9208 9209 setOutput_Optionsxml_attributes_widget(new BooleanOptionWidget(editGroupOutput_Options, SWT.NONE, new OptionData("Save Tags to XML", "", "","xml-attributes", "\nSave in XML format a variety of tags which Soot has attached to \nits internal representations of the application classes. The XML \nfile can then be read by the Soot plug-in for the Eclipse IDE, \nwhich can display the annotations together with the program \nsource, to aid program understanding. ", defaultBool))); 9210 9211 9212 9213 defKey = ""+" "+""+" "+"print-tags"; 9214 defKey = defKey.trim(); 9215 9216 if (isInDefList(defKey)) { 9217 defaultBool = getBoolDef(defKey); 9218 } 9219 else { 9220 9221 defaultBool = false; 9222 9223 } 9224 9225 setOutput_Optionsprint_tags_in_output_widget(new BooleanOptionWidget(editGroupOutput_Options, SWT.NONE, new OptionData("Print Tags in Output", "", "","print-tags", "\nPrint in output files (either in Jimple or Dave) a variety of \ntags which Soot has attached to its internal representations of \nthe application classes. The tags will be printed on the line \nsucceeding the stmt that they are attached to. ", defaultBool))); 9226 9227 9228 9229 defKey = ""+" "+""+" "+"no-output-source-file-attribute"; 9230 defKey = defKey.trim(); 9231 9232 if (isInDefList(defKey)) { 9233 defaultBool = getBoolDef(defKey); 9234 } 9235 else { 9236 9237 defaultBool = false; 9238 9239 } 9240 9241 setOutput_Optionsno_output_source_file_attribute_widget(new BooleanOptionWidget(editGroupOutput_Options, SWT.NONE, new OptionData("Don't Output Source File Attribute", "", "","no-output-source-file-attribute", "\nDon't output Source File Attribute when producing class files. ", defaultBool))); 9242 9243 9244 9245 defKey = ""+" "+""+" "+"no-output-inner-classes-attribute"; 9246 defKey = defKey.trim(); 9247 9248 if (isInDefList(defKey)) { 9249 defaultBool = getBoolDef(defKey); 9250 } 9251 else { 9252 9253 defaultBool = false; 9254 9255 } 9256 9257 setOutput_Optionsno_output_inner_classes_attribute_widget(new BooleanOptionWidget(editGroupOutput_Options, SWT.NONE, new OptionData("Don't Output Inner Classes Attribute", "", "","no-output-inner-classes-attribute", "\nDon't output inner classes attribute in class \nfiles. ", defaultBool))); 9258 9259 9260 9261 defKey = ""+" "+""+" "+"show-exception-dests"; 9262 defKey = defKey.trim(); 9263 9264 if (isInDefList(defKey)) { 9265 defaultBool = getBoolDef(defKey); 9266 } 9267 else { 9268 9269 defaultBool = true; 9270 9271 } 9272 9273 setOutput_Optionsshow_exception_dests_widget(new BooleanOptionWidget(editGroupOutput_Options, SWT.NONE, new OptionData("Show Exception Destinations", "", "","show-exception-dests", "\nIndicate whether to show exception destination edges as well as \ncontrol flow edges in dumps of exceptional control flow graphs. ", defaultBool))); 9274 9275 9276 9277 defKey = ""+" "+""+" "+"gzip"; 9278 defKey = defKey.trim(); 9279 9280 if (isInDefList(defKey)) { 9281 defaultBool = getBoolDef(defKey); 9282 } 9283 else { 9284 9285 defaultBool = false; 9286 9287 } 9288 9289 setOutput_Optionsgzip_widget(new BooleanOptionWidget(editGroupOutput_Options, SWT.NONE, new OptionData("GZipped IR output", "", "","gzip", "\nThis option causes Soot to compress output files of \nintermediate representations with GZip. It does not apply to \nclass files output by Soot. ", defaultBool))); 9290 9291 9292 9293 data = new OptionData [] { 9294 9295 new OptionData("Jimple File", 9296 "J", 9297 "\nProduce .jimple files, which contain a textual form of Soot's \nJimple internal representation. ", 9298 9299 false), 9300 9301 new OptionData("Jimp File", 9302 "j", 9303 "\nProduce .jimp files, which contain an abbreviated form of \nJimple. ", 9304 9305 false), 9306 9307 new OptionData("Shimple File", 9308 "S", 9309 "\nProduce .shimple files, containing a textual form of Soot's SSA \nShimple internal representation. Shimple adds Phi nodes to \nJimple. ", 9310 9311 false), 9312 9313 new OptionData("Shimp File", 9314 "s", 9315 "\nProduce .shimp files, which contain an abbreviated form of \nShimple. ", 9316 9317 false), 9318 9319 new OptionData("Baf File", 9320 "B", 9321 "\nProduce .baf files, which contain a textual form of Soot's Baf \ninternal representation. ", 9322 9323 false), 9324 9325 new OptionData("Abbreviated Baf File", 9326 "b", 9327 "\nProduce .b files, which contain an abbreviated form of Baf. ", 9328 9329 false), 9330 9331 new OptionData("Grimp File", 9332 "G", 9333 "\nProduce .grimple files, which contain a textual form of Soot's \nGrimp internal representation. ", 9334 9335 false), 9336 9337 new OptionData("Abbreviated Grimp File", 9338 "g", 9339 "\nProduce .grimp files, which contain an abbreviated form of \nGrimp. ", 9340 9341 false), 9342 9343 new OptionData("Xml File", 9344 "X", 9345 "\nProduce .xml files containing an annotated version of the \nSoot's Jimple internal representation. ", 9346 9347 false), 9348 9349 new OptionData("No Output File", 9350 "n", 9351 "\nProduce no output files. ", 9352 9353 false), 9354 9355 new OptionData("Jasmin File", 9356 "jasmin", 9357 "\nProduce .jasmin files, suitable as input to the jasmin bytecode \nassembler. ", 9358 9359 false), 9360 9361 new OptionData("Class File", 9362 "c", 9363 "\nProduce Java .class files, executable by any Java Virtual \nMachine. ", 9364 9365 true), 9366 9367 new OptionData("Dava Decompiled File", 9368 "d", 9369 "\nProduce .java files generated by the Dava decompiler. ", 9370 9371 false), 9372 9373 }; 9374 9375 9376 setOutput_Optionsoutput_format_widget(new MultiOptionWidget(editGroupOutput_Options, SWT.NONE, data, new OptionData("Output Format", "", "","f", "\nSpecify the format of output files Soot should produce, if any. \nNote that while the abbreviated formats (jimp, shimp, b, and \ngrimp) are easier to read than their unabbreviated counterparts \n(jimple, shimple, baf, and grimple), they may contain \nambiguities. Method signatures in the abbreviated formats, for \ninstance, are not uniquely determined."))); 9377 9378 defKey = ""+" "+""+" "+"f"; 9379 defKey = defKey.trim(); 9380 9381 if (isInDefList(defKey)) { 9382 defaultString = getStringDef(defKey); 9383 9384 getOutput_Optionsoutput_format_widget().setDef(defaultString); 9385 } 9386 9387 9388 9389 defKey = ""+" "+""+" "+"dump-body"; 9390 defKey = defKey.trim(); 9391 9392 if (isInDefList(defKey)) { 9393 defaultString = getArrayDef(defKey); 9394 } 9395 else { 9396 9397 defaultString = ""; 9398 9399 } 9400 9401 setOutput_Optionsdump_body_widget(new ListOptionWidget(editGroupOutput_Options, SWT.NONE, new OptionData("Body Dumping Phases", "", "","dump-body", "\nSpecify that PHASENAME is one of the phases to be dumped. For \nexample -dump-body jb -dump-body jb.a would dump each method \nbefore and after the jb and jb.a phases. The pseudo phase name \n``ALL'' causes all phases to be dumped. Output files appear in \nsubdirectories under the soot output directory, with names like \nclassName/methodSignature/phasename-graphType-number.in and \nclassName/methodSignature/phasename-graphType-number.out. The \n``in'' and ``out'' suffixes distinguish the internal \nrepresentations of the method before and after the phase \nexecuted.", defaultString))); 9402 9403 9404 defKey = ""+" "+""+" "+"dump-cfg"; 9405 defKey = defKey.trim(); 9406 9407 if (isInDefList(defKey)) { 9408 defaultString = getArrayDef(defKey); 9409 } 9410 else { 9411 9412 defaultString = ""; 9413 9414 } 9415 9416 setOutput_Optionsdump_cfg_widget(new ListOptionWidget(editGroupOutput_Options, SWT.NONE, new OptionData("CFG Dumping Phases", "", "","dump-cfg", "\nSpecify that any control flow graphs constructed during the \nPHASENAME phases should be dumped. For example -dump-cfg jb \n-dump-cfg bb.lso would dump all CFGs constructed during the jb \nand bb.lso phases. The pseudo phase name ``ALL'' causes CFGs \nconstructed in all phases to be dumped.The control flow graphs \nare dumped in the form of a file containing input to dot graph \nvisualization tool. Output dot files are stored beneath the \nsoot output directory, in files with names like: \nclassName/methodSignature/phasename-graphType-number.dot, where \nnumber serves to distinguish graphs in phases that produce more \nthan one (for example, the Aggregator may produce multiple \nExceptionalUnitGraphs).", defaultString))); 9417 9418 9419 defKey = ""+" "+""+" "+"d"; 9420 defKey = defKey.trim(); 9421 9422 if (isInDefList(defKey)) { 9423 defaultString = getStringDef(defKey); 9424 } 9425 else { 9426 9427 defaultString = "./sootOutput"; 9428 9429 } 9430 9431 setOutput_Optionsoutput_dir_widget(new StringOptionWidget(editGroupOutput_Options, SWT.NONE, new OptionData("Output Directory", "", "","d", "\nStore output files in DIR. DIR may be relative to the working \ndirectory. ", defaultString))); 9432 9433 9434 9435 return editGroupOutput_Options; 9436 } 9437 9438 9439 9440 private Composite Processing_OptionsCreate(Composite parent) { 9441 String defKey; 9442 String defaultString; 9443 boolean defaultBool = false; 9444 String defaultArray; 9445 9446 Group editGroupProcessing_Options = new Group(parent, SWT.NONE); 9447 GridLayout layout = new GridLayout(); 9448 editGroupProcessing_Options.setLayout(layout); 9449 9450 editGroupProcessing_Options.setText("Processing Options"); 9451 9452 editGroupProcessing_Options.setData("id", "Processing_Options"); 9453 9454 String descProcessing_Options = ""; 9455 if (descProcessing_Options.length() > 0) { 9456 Label descLabelProcessing_Options = new Label(editGroupProcessing_Options, SWT.WRAP); 9457 descLabelProcessing_Options.setText(descProcessing_Options); 9458 } 9459 OptionData [] data; 9460 9461 9462 9463 9464 defKey = ""+" "+""+" "+"O"; 9465 defKey = defKey.trim(); 9466 9467 if (isInDefList(defKey)) { 9468 defaultBool = getBoolDef(defKey); 9469 } 9470 else { 9471 9472 defaultBool = false; 9473 9474 } 9475 9476 setProcessing_Optionsoptimize_widget(new BooleanOptionWidget(editGroupProcessing_Options, SWT.NONE, new OptionData("Optimize", "", "","O", "\nPerform intraprocedural optimizations on the application \nclasses. ", defaultBool))); 9477 9478 9479 9480 defKey = ""+" "+""+" "+"W"; 9481 defKey = defKey.trim(); 9482 9483 if (isInDefList(defKey)) { 9484 defaultBool = getBoolDef(defKey); 9485 } 9486 else { 9487 9488 defaultBool = false; 9489 9490 } 9491 9492 setProcessing_Optionswhole_optimize_widget(new BooleanOptionWidget(editGroupProcessing_Options, SWT.NONE, new OptionData("Whole Program Optimize", "", "","W", "\nPerform whole program optimizations on the application classes. \nThis enables the Whole-Jimple Optimization pack as well as whole \nprogram mode and intraprocedural optimizations. ", defaultBool))); 9493 9494 9495 9496 defKey = ""+" "+""+" "+"via-grimp"; 9497 defKey = defKey.trim(); 9498 9499 if (isInDefList(defKey)) { 9500 defaultBool = getBoolDef(defKey); 9501 } 9502 else { 9503 9504 defaultBool = false; 9505 9506 } 9507 9508 setProcessing_Optionsvia_grimp_widget(new BooleanOptionWidget(editGroupProcessing_Options, SWT.NONE, new OptionData("Via Grimp", "", "","via-grimp", "\nConvert Jimple to bytecode via the Grimp intermediate \nrepresentation instead of via the Baf intermediate \nrepresentation. ", defaultBool))); 9509 9510 9511 9512 defKey = ""+" "+""+" "+"via-shimple"; 9513 defKey = defKey.trim(); 9514 9515 if (isInDefList(defKey)) { 9516 defaultBool = getBoolDef(defKey); 9517 } 9518 else { 9519 9520 defaultBool = false; 9521 9522 } 9523 9524 setProcessing_Optionsvia_shimple_widget(new BooleanOptionWidget(editGroupProcessing_Options, SWT.NONE, new OptionData("Via Shimple", "", "","via-shimple", "\nEnable Shimple, Soot's SSA representation. This generates \nShimple bodies for the application classes, optionally \ntransforms them with analyses that run on SSA form, then turns \nthem back into Jimple for processing by the rest of Soot. For \nmore information, see the documentation for the shimp, stp, and \nsop phases. ", defaultBool))); 9525 9526 9527 9528 defKey = ""+" "+""+" "+"omit-excepting-unit-edges"; 9529 defKey = defKey.trim(); 9530 9531 if (isInDefList(defKey)) { 9532 defaultBool = getBoolDef(defKey); 9533 } 9534 else { 9535 9536 defaultBool = false; 9537 9538 } 9539 9540 setProcessing_Optionsomit_excepting_unit_edges_widget(new BooleanOptionWidget(editGroupProcessing_Options, SWT.NONE, new OptionData("Omit Excepting Unit Edges", "", "","omit-excepting-unit-edges", "\nWhen constructing an ExceptionalUnitGraph or \nExceptionalBlockGraph, include edges to an exception handler \nonly from the predecessors of an instruction which may throw an \nexception to the handler, and not from the excepting instruction \nitself, unless the excepting instruction has potential side \neffects. Omitting edges from excepting units allows more \naccurate flow analyses (since if an instruction without side \neffects throws an exception, it has not changed the state of the \ncomputation). This accuracy, though, could lead optimizations to \ngenerate unverifiable code, since the dataflow analyses \nperformed by bytecode verifiers might include paths to exception \nhandlers from all protected instructions, regardless of whether \nthe instructions have side effects. (In practice, the pedantic \nthrow analysis suffices to pass verification in all VMs tested \nwith Soot to date, but the JVM specification does allow for less \ndiscriminating verifiers which would reject some code that might \nbe generated using the pedantic throw analysis without also \nadding edges from all excepting units.)", defaultBool))); 9541 9542 9543 9544 defKey = ""+" "+""+" "+"trim-cfgs"; 9545 defKey = defKey.trim(); 9546 9547 if (isInDefList(defKey)) { 9548 defaultBool = getBoolDef(defKey); 9549 } 9550 else { 9551 9552 defaultBool = false; 9553 9554 } 9555 9556 setProcessing_Optionstrim_cfgs_widget(new BooleanOptionWidget(editGroupProcessing_Options, SWT.NONE, new OptionData("Trim CFGs", "", "","trim-cfgs", "\nWhen constructing CFGs which include exceptional edges, \nminimize the number of edges leading to exception handlers by \nanalyzing which instructions might actually be executed before \nan exception is thrown, instead of assuming that every \ninstruction protected by a handler has the potential to throw an \nexception the handler catches. -trim-cfgs is shorthand for \n-throw-analysis unit -omit-excepting-unit-edges -p jb.tt \nenabled:true.", defaultBool))); 9557 9558 9559 9560 data = new OptionData [] { 9561 9562 new OptionData("Pedantic", 9563 "pedantic", 9564 "\nSays that any instruction may throw any Throwable whatsoever. \nStrictly speaking this is correct, since the Java libraries \ninclude the Thread.stop(Throwable) method, which allows other \nthreads to cause arbitrary exceptions to occur at arbitrary \npoints in the execution of a victim thread. ", 9565 9566 true), 9567 9568 new OptionData("Unit", 9569 "unit", 9570 "\nSays that each statement in the intermediate representation may \nthrow those exception types associated with the corresponding \nJava bytecode instructions in the JVM Specification. The \nanalysis deals with each statement in isolation, without regard \nto the surrounding program. ", 9571 9572 false), 9573 9574 }; 9575 9576 9577 setProcessing_Optionsthrow_analysis_widget(new MultiOptionWidget(editGroupProcessing_Options, SWT.NONE, data, new OptionData("Default ThrowAnalysis", "", "","throw-analysis", "\nThis option specifies how to estimate the exceptions which each \nstatement may throw when constructing exceptional CFGs. "))); 9578 9579 defKey = ""+" "+""+" "+"throw-analysis"; 9580 defKey = defKey.trim(); 9581 9582 if (isInDefList(defKey)) { 9583 defaultString = getStringDef(defKey); 9584 9585 getProcessing_Optionsthrow_analysis_widget().setDef(defaultString); 9586 } 9587 9588 9589 9590 9591 return editGroupProcessing_Options; 9592 } 9593 9594 9595 9596 private Composite jbCreate(Composite parent) { 9597 String defKey; 9598 String defaultString; 9599 boolean defaultBool = false; 9600 String defaultArray; 9601 9602 Group editGroupjb = new Group(parent, SWT.NONE); 9603 GridLayout layout = new GridLayout(); 9604 editGroupjb.setLayout(layout); 9605 9606 editGroupjb.setText("Jimple Body Creation"); 9607 9608 editGroupjb.setData("id", "jb"); 9609 9610 String descjb = "Creates a JimpleBody for each method"; 9611 if (descjb.length() > 0) { 9612 Label descLabeljb = new Label(editGroupjb, SWT.WRAP); 9613 descLabeljb.setText(descjb); 9614 } 9615 OptionData [] data; 9616 9617 9618 9619 9620 defKey = "p"+" "+"jb"+" "+"enabled"; 9621 defKey = defKey.trim(); 9622 9623 if (isInDefList(defKey)) { 9624 defaultBool = getBoolDef(defKey); 9625 } 9626 else { 9627 9628 defaultBool = true; 9629 9630 } 9631 9632 setjbenabled_widget(new BooleanOptionWidget(editGroupjb, SWT.NONE, new OptionData("Enabled", "p", "jb","enabled", "\n", defaultBool))); 9633 9634 9635 9636 defKey = "p"+" "+"jb"+" "+"use-original-names"; 9637 defKey = defKey.trim(); 9638 9639 if (isInDefList(defKey)) { 9640 defaultBool = getBoolDef(defKey); 9641 } 9642 else { 9643 9644 defaultBool = false; 9645 9646 } 9647 9648 setjbuse_original_names_widget(new BooleanOptionWidget(editGroupjb, SWT.NONE, new OptionData("Use Original Names", "p", "jb","use-original-names", "\nRetain the original names for local variables when the source \nincludes those names. Otherwise, Soot gives variables generic \nnames based on their types. ", defaultBool))); 9649 9650 9651 9652 9653 return editGroupjb; 9654 } 9655 9656 9657 9658 private Composite jbjb_lsCreate(Composite parent) { 9659 String defKey; 9660 String defaultString; 9661 boolean defaultBool = false; 9662 String defaultArray; 9663 9664 Group editGroupjbjb_ls = new Group(parent, SWT.NONE); 9665 GridLayout layout = new GridLayout(); 9666 editGroupjbjb_ls.setLayout(layout); 9667 9668 editGroupjbjb_ls.setText("Local Splitter"); 9669 9670 editGroupjbjb_ls.setData("id", "jbjb_ls"); 9671 9672 String descjbjb_ls = "Local splitter: one local per DU-UD web"; 9673 if (descjbjb_ls.length() > 0) { 9674 Label descLabeljbjb_ls = new Label(editGroupjbjb_ls, SWT.WRAP); 9675 descLabeljbjb_ls.setText(descjbjb_ls); 9676 } 9677 OptionData [] data; 9678 9679 9680 9681 9682 defKey = "p"+" "+"jb.ls"+" "+"enabled"; 9683 defKey = defKey.trim(); 9684 9685 if (isInDefList(defKey)) { 9686 defaultBool = getBoolDef(defKey); 9687 } 9688 else { 9689 9690 defaultBool = true; 9691 9692 } 9693 9694 setjbjb_lsenabled_widget(new BooleanOptionWidget(editGroupjbjb_ls, SWT.NONE, new OptionData("Enabled", "p", "jb.ls","enabled", "\n", defaultBool))); 9695 9696 9697 9698 9699 return editGroupjbjb_ls; 9700 } 9701 9702 9703 9704 private Composite jbjb_aCreate(Composite parent) { 9705 String defKey; 9706 String defaultString; 9707 boolean defaultBool = false; 9708 String defaultArray; 9709 9710 Group editGroupjbjb_a = new Group(parent, SWT.NONE); 9711 GridLayout layout = new GridLayout(); 9712 editGroupjbjb_a.setLayout(layout); 9713 9714 editGroupjbjb_a.setText("Jimple Local Aggregator"); 9715 9716 editGroupjbjb_a.setData("id", "jbjb_a"); 9717 9718 String descjbjb_a = "Aggregator: removes some unnecessary copies"; 9719 if (descjbjb_a.length() > 0) { 9720 Label descLabeljbjb_a = new Label(editGroupjbjb_a, SWT.WRAP); 9721 descLabeljbjb_a.setText(descjbjb_a); 9722 } 9723 OptionData [] data; 9724 9725 9726 9727 9728 defKey = "p"+" "+"jb.a"+" "+"enabled"; 9729 defKey = defKey.trim(); 9730 9731 if (isInDefList(defKey)) { 9732 defaultBool = getBoolDef(defKey); 9733 } 9734 else { 9735 9736 defaultBool = true; 9737 9738 } 9739 9740 setjbjb_aenabled_widget(new BooleanOptionWidget(editGroupjbjb_a, SWT.NONE, new OptionData("Enabled", "p", "jb.a","enabled", "\n", defaultBool))); 9741 9742 9743 9744 defKey = "p"+" "+"jb.a"+" "+"only-stack-locals"; 9745 defKey = defKey.trim(); 9746 9747 if (isInDefList(defKey)) { 9748 defaultBool = getBoolDef(defKey); 9749 } 9750 else { 9751 9752 defaultBool = true; 9753 9754 } 9755 9756 setjbjb_aonly_stack_locals_widget(new BooleanOptionWidget(editGroupjbjb_a, SWT.NONE, new OptionData("Only Stack Locals", "p", "jb.a","only-stack-locals", "\nOnly aggregate locals that represent stack locations in the \noriginal bytecode. (Stack locals can be distinguished in Jimple \nby the character with which their names begin.) ", defaultBool))); 9757 9758 9759 9760 9761 return editGroupjbjb_a; 9762 } 9763 9764 9765 9766 private Composite jbjb_uleCreate(Composite parent) { 9767 String defKey; 9768 String defaultString; 9769 boolean defaultBool = false; 9770 String defaultArray; 9771 9772 Group editGroupjbjb_ule = new Group(parent, SWT.NONE); 9773 GridLayout layout = new GridLayout(); 9774 editGroupjbjb_ule.setLayout(layout); 9775 9776 editGroupjbjb_ule.setText("Unused Local Eliminator"); 9777 9778 editGroupjbjb_ule.setData("id", "jbjb_ule"); 9779 9780 String descjbjb_ule = "Unused local eliminator"; 9781 if (descjbjb_ule.length() > 0) { 9782 Label descLabeljbjb_ule = new Label(editGroupjbjb_ule, SWT.WRAP); 9783 descLabeljbjb_ule.setText(descjbjb_ule); 9784 } 9785 OptionData [] data; 9786 9787 9788 9789 9790 defKey = "p"+" "+"jb.ule"+" "+"enabled"; 9791 defKey = defKey.trim(); 9792 9793 if (isInDefList(defKey)) { 9794 defaultBool = getBoolDef(defKey); 9795 } 9796 else { 9797 9798 defaultBool = true; 9799 9800 } 9801 9802 setjbjb_uleenabled_widget(new BooleanOptionWidget(editGroupjbjb_ule, SWT.NONE, new OptionData("Enabled", "p", "jb.ule","enabled", "\n", defaultBool))); 9803 9804 9805 9806 9807 return editGroupjbjb_ule; 9808 } 9809 9810 9811 9812 private Composite jbjb_trCreate(Composite parent) { 9813 String defKey; 9814 String defaultString; 9815 boolean defaultBool = false; 9816 String defaultArray; 9817 9818 Group editGroupjbjb_tr = new Group(parent, SWT.NONE); 9819 GridLayout layout = new GridLayout(); 9820 editGroupjbjb_tr.setLayout(layout); 9821 9822 editGroupjbjb_tr.setText("Type Assigner"); 9823 9824 editGroupjbjb_tr.setData("id", "jbjb_tr"); 9825 9826 String descjbjb_tr = "Assigns types to locals"; 9827 if (descjbjb_tr.length() > 0) { 9828 Label descLabeljbjb_tr = new Label(editGroupjbjb_tr, SWT.WRAP); 9829 descLabeljbjb_tr.setText(descjbjb_tr); 9830 } 9831 OptionData [] data; 9832 9833 9834 9835 9836 defKey = "p"+" "+"jb.tr"+" "+"enabled"; 9837 defKey = defKey.trim(); 9838 9839 if (isInDefList(defKey)) { 9840 defaultBool = getBoolDef(defKey); 9841 } 9842 else { 9843 9844 defaultBool = true; 9845 9846 } 9847 9848 setjbjb_trenabled_widget(new BooleanOptionWidget(editGroupjbjb_tr, SWT.NONE, new OptionData("Enabled", "p", "jb.tr","enabled", "\n", defaultBool))); 9849 9850 9851 9852 9853 return editGroupjbjb_tr; 9854 } 9855 9856 9857 9858 private Composite jbjb_ulpCreate(Composite parent) { 9859 String defKey; 9860 String defaultString; 9861 boolean defaultBool = false; 9862 String defaultArray; 9863 9864 Group editGroupjbjb_ulp = new Group(parent, SWT.NONE); 9865 GridLayout layout = new GridLayout(); 9866 editGroupjbjb_ulp.setLayout(layout); 9867 9868 editGroupjbjb_ulp.setText("Unsplit-originals Local Packer"); 9869 9870 editGroupjbjb_ulp.setData("id", "jbjb_ulp"); 9871 9872 String descjbjb_ulp = "Local packer: minimizes number of locals"; 9873 if (descjbjb_ulp.length() > 0) { 9874 Label descLabeljbjb_ulp = new Label(editGroupjbjb_ulp, SWT.WRAP); 9875 descLabeljbjb_ulp.setText(descjbjb_ulp); 9876 } 9877 OptionData [] data; 9878 9879 9880 9881 9882 defKey = "p"+" "+"jb.ulp"+" "+"enabled"; 9883 defKey = defKey.trim(); 9884 9885 if (isInDefList(defKey)) { 9886 defaultBool = getBoolDef(defKey); 9887 } 9888 else { 9889 9890 defaultBool = true; 9891 9892 } 9893 9894 setjbjb_ulpenabled_widget(new BooleanOptionWidget(editGroupjbjb_ulp, SWT.NONE, new OptionData("Enabled", "p", "jb.ulp","enabled", "\n", defaultBool))); 9895 9896 9897 9898 defKey = "p"+" "+"jb.ulp"+" "+"unsplit-original-locals"; 9899 defKey = defKey.trim(); 9900 9901 if (isInDefList(defKey)) { 9902 defaultBool = getBoolDef(defKey); 9903 } 9904 else { 9905 9906 defaultBool = true; 9907 9908 } 9909 9910 setjbjb_ulpunsplit_original_locals_widget(new BooleanOptionWidget(editGroupjbjb_ulp, SWT.NONE, new OptionData("Unsplit Original Locals", "p", "jb.ulp","unsplit-original-locals", "\nUse the variable names in the original source as a guide when \ndetermining how to share local variables among non-interfering \nvariable usages. This recombines named locals which were split \nby the Local Splitter. ", defaultBool))); 9911 9912 9913 9914 9915 return editGroupjbjb_ulp; 9916 } 9917 9918 9919 9920 private Composite jbjb_lnsCreate(Composite parent) { 9921 String defKey; 9922 String defaultString; 9923 boolean defaultBool = false; 9924 String defaultArray; 9925 9926 Group editGroupjbjb_lns = new Group(parent, SWT.NONE); 9927 GridLayout layout = new GridLayout(); 9928 editGroupjbjb_lns.setLayout(layout); 9929 9930 editGroupjbjb_lns.setText("Local Name Standardizer"); 9931 9932 editGroupjbjb_lns.setData("id", "jbjb_lns"); 9933 9934 String descjbjb_lns = "Local name standardizer"; 9935 if (descjbjb_lns.length() > 0) { 9936 Label descLabeljbjb_lns = new Label(editGroupjbjb_lns, SWT.WRAP); 9937 descLabeljbjb_lns.setText(descjbjb_lns); 9938 } 9939 OptionData [] data; 9940 9941 9942 9943 9944 defKey = "p"+" "+"jb.lns"+" "+"enabled"; 9945 defKey = defKey.trim(); 9946 9947 if (isInDefList(defKey)) { 9948 defaultBool = getBoolDef(defKey); 9949 } 9950 else { 9951 9952 defaultBool = true; 9953 9954 } 9955 9956 setjbjb_lnsenabled_widget(new BooleanOptionWidget(editGroupjbjb_lns, SWT.NONE, new OptionData("Enabled", "p", "jb.lns","enabled", "\n", defaultBool))); 9957 9958 9959 9960 defKey = "p"+" "+"jb.lns"+" "+"only-stack-locals"; 9961 defKey = defKey.trim(); 9962 9963 if (isInDefList(defKey)) { 9964 defaultBool = getBoolDef(defKey); 9965 } 9966 else { 9967 9968 defaultBool = false; 9969 9970 } 9971 9972 setjbjb_lnsonly_stack_locals_widget(new BooleanOptionWidget(editGroupjbjb_lns, SWT.NONE, new OptionData("Only Stack Locals", "p", "jb.lns","only-stack-locals", "\nOnly standardizes the names of variables that represent stack \nlocations in the original bytecode. This becomes the default \nwhen the `use-original-names' option is specified for the `jb' \nphase. ", defaultBool))); 9973 9974 9975 9976 9977 return editGroupjbjb_lns; 9978 } 9979 9980 9981 9982 private Composite jbjb_cpCreate(Composite parent) { 9983 String defKey; 9984 String defaultString; 9985 boolean defaultBool = false; 9986 String defaultArray; 9987 9988 Group editGroupjbjb_cp = new Group(parent, SWT.NONE); 9989 GridLayout layout = new GridLayout(); 9990 editGroupjbjb_cp.setLayout(layout); 9991 9992 editGroupjbjb_cp.setText("Copy Propagator"); 9993 9994 editGroupjbjb_cp.setData("id", "jbjb_cp"); 9995 9996 String descjbjb_cp = "Copy propagator"; 9997 if (descjbjb_cp.length() > 0) { 9998 Label descLabeljbjb_cp = new Label(editGroupjbjb_cp, SWT.WRAP); 9999 descLabeljbjb_cp.setText(descjbjb_cp); 0000 } 0001 OptionData [] data; 0002 0003 0004 0005 0006 defKey = "p"+" "+"jb.cp"+" "+"enabled"; 0007 defKey = defKey.trim(); 0008 0009 if (isInDefList(defKey)) { 0010 defaultBool = getBoolDef(defKey); 0011 } 0012 else { 0013 0014 defaultBool = true; 0015 0016 } 0017 0018 setjbjb_cpenabled_widget(new BooleanOptionWidget(editGroupjbjb_cp, SWT.NONE, new OptionData("Enabled", "p", "jb.cp","enabled", "\n", defaultBool))); 0019 0020 0021 0022 defKey = "p"+" "+"jb.cp"+" "+"only-regular-locals"; 0023 defKey = defKey.trim(); 0024 0025 if (isInDefList(defKey)) { 0026 defaultBool = getBoolDef(defKey); 0027 } 0028 else { 0029 0030 defaultBool = false; 0031 0032 } 0033 0034 setjbjb_cponly_regular_locals_widget(new BooleanOptionWidget(editGroupjbjb_cp, SWT.NONE, new OptionData("Only Regular Locals", "p", "jb.cp","only-regular-locals", "\nOnly propagate copies through ``regular'' locals, that is, \nthose declared in the source bytecode. ", defaultBool))); 0035 0036 0037 0038 defKey = "p"+" "+"jb.cp"+" "+"only-stack-locals"; 0039 defKey = defKey.trim(); 0040 0041 if (isInDefList(defKey)) { 0042 defaultBool = getBoolDef(defKey); 0043 } 0044 else { 0045 0046 defaultBool = true; 0047 0048 } 0049 0050 setjbjb_cponly_stack_locals_widget(new BooleanOptionWidget(editGroupjbjb_cp, SWT.NONE, new OptionData("Only Stack Locals", "p", "jb.cp","only-stack-locals", "\nOnly propagate copies through locals that represent stack \nlocations in the original bytecode. ", defaultBool))); 0051 0052 0053 0054 0055 return editGroupjbjb_cp; 0056 } 0057 0058 0059 0060 private Composite jbjb_daeCreate(Composite parent) { 0061 String defKey; 0062 String defaultString; 0063 boolean defaultBool = false; 0064 String defaultArray; 0065 0066 Group editGroupjbjb_dae = new Group(parent, SWT.NONE); 0067 GridLayout layout = new GridLayout(); 0068 editGroupjbjb_dae.setLayout(layout); 0069 0070 editGroupjbjb_dae.setText("Dead Assignment Eliminator"); 0071 0072 editGroupjbjb_dae.setData("id", "jbjb_dae"); 0073 0074 String descjbjb_dae = "Dead assignment eliminator"; 0075 if (descjbjb_dae.length() > 0) { 0076 Label descLabeljbjb_dae = new Label(editGroupjbjb_dae, SWT.WRAP); 0077 descLabeljbjb_dae.setText(descjbjb_dae); 0078 } 0079 OptionData [] data; 0080 0081 0082 0083 0084 defKey = "p"+" "+"jb.dae"+" "+"enabled"; 0085 defKey = defKey.trim(); 0086 0087 if (isInDefList(defKey)) { 0088 defaultBool = getBoolDef(defKey); 0089 } 0090 else { 0091 0092 defaultBool = true; 0093 0094 } 0095 0096 setjbjb_daeenabled_widget(new BooleanOptionWidget(editGroupjbjb_dae, SWT.NONE, new OptionData("Enabled", "p", "jb.dae","enabled", "\n", defaultBool))); 0097 0098 0099 0100 defKey = "p"+" "+"jb.dae"+" "+"only-stack-locals"; 0101 defKey = defKey.trim(); 0102 0103 if (isInDefList(defKey)) { 0104 defaultBool = getBoolDef(defKey); 0105 } 0106 else { 0107 0108 defaultBool = true; 0109 0110 } 0111 0112 setjbjb_daeonly_stack_locals_widget(new BooleanOptionWidget(editGroupjbjb_dae, SWT.NONE, new OptionData("Only Stack Locals", "p", "jb.dae","only-stack-locals", "\nOnly eliminate dead assignments to locals that represent stack \nlocations in the original bytecode. ", defaultBool))); 0113 0114 0115 0116 0117 return editGroupjbjb_dae; 0118 } 0119 0120 0121 0122 private Composite jbjb_cp_uleCreate(Composite parent) { 0123 String defKey; 0124 String defaultString; 0125 boolean defaultBool = false; 0126 String defaultArray; 0127 0128 Group editGroupjbjb_cp_ule = new Group(parent, SWT.NONE); 0129 GridLayout layout = new GridLayout(); 0130 editGroupjbjb_cp_ule.setLayout(layout); 0131 0132 editGroupjbjb_cp_ule.setText("Post-copy propagation Unused Local Eliminator"); 0133 0134 editGroupjbjb_cp_ule.setData("id", "jbjb_cp_ule"); 0135 0136 String descjbjb_cp_ule = "Post-copy propagation unused local eliminator"; 0137 if (descjbjb_cp_ule.length() > 0) { 0138 Label descLabeljbjb_cp_ule = new Label(editGroupjbjb_cp_ule, SWT.WRAP); 0139 descLabeljbjb_cp_ule.setText(descjbjb_cp_ule); 0140 } 0141 OptionData [] data; 0142 0143 0144 0145 0146 defKey = "p"+" "+"jb.cp-ule"+" "+"enabled"; 0147 defKey = defKey.trim(); 0148 0149 if (isInDefList(defKey)) { 0150 defaultBool = getBoolDef(defKey); 0151 } 0152 else { 0153 0154 defaultBool = true; 0155 0156 } 0157 0158 setjbjb_cp_uleenabled_widget(new BooleanOptionWidget(editGroupjbjb_cp_ule, SWT.NONE, new OptionData("Enabled", "p", "jb.cp-ule","enabled", "\n", defaultBool))); 0159 0160 0161 0162 0163 return editGroupjbjb_cp_ule; 0164 } 0165 0166 0167 0168 private Composite jbjb_lpCreate(Composite parent) { 0169 String defKey; 0170 String defaultString; 0171 boolean defaultBool = false; 0172 String defaultArray; 0173 0174 Group editGroupjbjb_lp = new Group(parent, SWT.NONE); 0175 GridLayout layout = new GridLayout(); 0176 editGroupjbjb_lp.setLayout(layout); 0177 0178 editGroupjbjb_lp.setText("Local Packer"); 0179 0180 editGroupjbjb_lp.setData("id", "jbjb_lp"); 0181 0182 String descjbjb_lp = "Local packer: minimizes number of locals"; 0183 if (descjbjb_lp.length() > 0) { 0184 Label descLabeljbjb_lp = new Label(editGroupjbjb_lp, SWT.WRAP); 0185 descLabeljbjb_lp.setText(descjbjb_lp); 0186 } 0187 OptionData [] data; 0188 0189 0190 0191 0192 defKey = "p"+" "+"jb.lp"+" "+"enabled"; 0193 defKey = defKey.trim(); 0194 0195 if (isInDefList(defKey)) { 0196 defaultBool = getBoolDef(defKey); 0197 } 0198 else { 0199 0200 defaultBool = false; 0201 0202 } 0203 0204 setjbjb_lpenabled_widget(new BooleanOptionWidget(editGroupjbjb_lp, SWT.NONE, new OptionData("Enabled", "p", "jb.lp","enabled", "\n", defaultBool))); 0205 0206 0207 0208 defKey = "p"+" "+"jb.lp"+" "+"unsplit-original-locals"; 0209 defKey = defKey.trim(); 0210 0211 if (isInDefList(defKey)) { 0212 defaultBool = getBoolDef(defKey); 0213 } 0214 else { 0215 0216 defaultBool = false; 0217 0218 } 0219 0220 setjbjb_lpunsplit_original_locals_widget(new BooleanOptionWidget(editGroupjbjb_lp, SWT.NONE, new OptionData("Unsplit Original Locals", "p", "jb.lp","unsplit-original-locals", "\nUse the variable names in the original source as a guide when \ndetermining how to share local variables across non-interfering \nvariable usages. This recombines named locals which were split \nby the Local Splitter. ", defaultBool))); 0221 0222 0223 0224 0225 return editGroupjbjb_lp; 0226 } 0227 0228 0229 0230 private Composite jbjb_neCreate(Composite parent) { 0231 String defKey; 0232 String defaultString; 0233 boolean defaultBool = false; 0234 String defaultArray; 0235 0236 Group editGroupjbjb_ne = new Group(parent, SWT.NONE); 0237 GridLayout layout = new GridLayout(); 0238 editGroupjbjb_ne.setLayout(layout); 0239 0240 editGroupjbjb_ne.setText("Nop Eliminator"); 0241 0242 editGroupjbjb_ne.setData("id", "jbjb_ne"); 0243 0244 String descjbjb_ne = "Nop eliminator"; 0245 if (descjbjb_ne.length() > 0) { 0246 Label descLabeljbjb_ne = new Label(editGroupjbjb_ne, SWT.WRAP); 0247 descLabeljbjb_ne.setText(descjbjb_ne); 0248 } 0249 OptionData [] data; 0250 0251 0252 0253 0254 defKey = "p"+" "+"jb.ne"+" "+"enabled"; 0255 defKey = defKey.trim(); 0256 0257 if (isInDefList(defKey)) { 0258 defaultBool = getBoolDef(defKey); 0259 } 0260 else { 0261 0262 defaultBool = true; 0263 0264 } 0265 0266 setjbjb_neenabled_widget(new BooleanOptionWidget(editGroupjbjb_ne, SWT.NONE, new OptionData("Enabled", "p", "jb.ne","enabled", "\n", defaultBool))); 0267 0268 0269 0270 0271 return editGroupjbjb_ne; 0272 } 0273 0274 0275 0276 private Composite jbjb_uceCreate(Composite parent) { 0277 String defKey; 0278 String defaultString; 0279 boolean defaultBool = false; 0280 String defaultArray; 0281 0282 Group editGroupjbjb_uce = new Group(parent, SWT.NONE); 0283 GridLayout layout = new GridLayout(); 0284 editGroupjbjb_uce.setLayout(layout); 0285 0286 editGroupjbjb_uce.setText("Unreachable Code Eliminator"); 0287 0288 editGroupjbjb_uce.setData("id", "jbjb_uce"); 0289 0290 String descjbjb_uce = "Unreachable code eliminator"; 0291 if (descjbjb_uce.length() > 0) { 0292 Label descLabeljbjb_uce = new Label(editGroupjbjb_uce, SWT.WRAP); 0293 descLabeljbjb_uce.setText(descjbjb_uce); 0294 } 0295 OptionData [] data; 0296 0297 0298 0299 0300 defKey = "p"+" "+"jb.uce"+" "+"enabled"; 0301 defKey = defKey.trim(); 0302 0303 if (isInDefList(defKey)) { 0304 defaultBool = getBoolDef(defKey); 0305 } 0306 else { 0307 0308 defaultBool = true; 0309 0310 } 0311 0312 setjbjb_uceenabled_widget(new BooleanOptionWidget(editGroupjbjb_uce, SWT.NONE, new OptionData("Enabled", "p", "jb.uce","enabled", "\n", defaultBool))); 0313 0314 0315 0316 defKey = "p"+" "+"jb.uce"+" "+"remove-unreachable-traps"; 0317 defKey = defKey.trim(); 0318 0319 if (isInDefList(defKey)) { 0320 defaultBool = getBoolDef(defKey); 0321 } 0322 else { 0323 0324 defaultBool = false; 0325 0326 } 0327 0328 setjbjb_uceremove_unreachable_traps_widget(new BooleanOptionWidget(editGroupjbjb_uce, SWT.NONE, new OptionData("Remove unreachable traps", "p", "jb.uce","remove-unreachable-traps", "\nRemove exception table entries when none of the protected \ninstructions can throw the exception being caught. ", defaultBool))); 0329 0330 0331 0332 0333 return editGroupjbjb_uce; 0334 } 0335 0336 0337 0338 private Composite jbjb_ttCreate(Composite parent) { 0339 String defKey; 0340 String defaultString; 0341 boolean defaultBool = false; 0342 String defaultArray; 0343 0344 Group editGroupjbjb_tt = new Group(parent, SWT.NONE); 0345 GridLayout layout = new GridLayout(); 0346 editGroupjbjb_tt.setLayout(layout); 0347 0348 editGroupjbjb_tt.setText("Trap Tightener"); 0349 0350 editGroupjbjb_tt.setData("id", "jbjb_tt"); 0351 0352 String descjbjb_tt = "Trap Tightener"; 0353 if (descjbjb_tt.length() > 0) { 0354 Label descLabeljbjb_tt = new Label(editGroupjbjb_tt, SWT.WRAP); 0355 descLabeljbjb_tt.setText(descjbjb_tt); 0356 } 0357 OptionData [] data; 0358 0359 0360 0361 0362 defKey = "p"+" "+"jb.tt"+" "+"enabled"; 0363 defKey = defKey.trim(); 0364 0365 if (isInDefList(defKey)) { 0366 defaultBool = getBoolDef(defKey); 0367 } 0368 else { 0369 0370 defaultBool = false; 0371 0372 } 0373 0374 setjbjb_ttenabled_widget(new BooleanOptionWidget(editGroupjbjb_tt, SWT.NONE, new OptionData("Enabled", "p", "jb.tt","enabled", "\n", defaultBool))); 0375 0376 0377 0378 0379 return editGroupjbjb_tt; 0380 } 0381 0382 0383 0384 private Composite jjCreate(Composite parent) { 0385 String defKey; 0386 String defaultString; 0387 boolean defaultBool = false; 0388 String defaultArray; 0389 0390 Group editGroupjj = new Group(parent, SWT.NONE); 0391 GridLayout layout = new GridLayout(); 0392 editGroupjj.setLayout(layout); 0393 0394 editGroupjj.setText("Java To Jimple Body Creation"); 0395 0396 editGroupjj.setData("id", "jj"); 0397 0398 String descjj = "Creates a JimpleBody for each method directly from source"; 0399 if (descjj.length() > 0) { 0400 Label descLabeljj = new Label(editGroupjj, SWT.WRAP); 0401 descLabeljj.setText(descjj); 0402 } 0403 OptionData [] data; 0404 0405 0406 0407 0408 defKey = "p"+" "+"jj"+" "+"enabled"; 0409 defKey = defKey.trim(); 0410 0411 if (isInDefList(defKey)) { 0412 defaultBool = getBoolDef(defKey); 0413 } 0414 else { 0415 0416 defaultBool = true; 0417 0418 } 0419 0420 setjjenabled_widget(new BooleanOptionWidget(editGroupjj, SWT.NONE, new OptionData("Enabled", "p", "jj","enabled", "\n", defaultBool))); 0421 0422 0423 0424 defKey = "p"+" "+"jj"+" "+"use-original-names"; 0425 defKey = defKey.trim(); 0426 0427 if (isInDefList(defKey)) { 0428 defaultBool = getBoolDef(defKey); 0429 } 0430 else { 0431 0432 defaultBool = true; 0433 0434 } 0435 0436 setjjuse_original_names_widget(new BooleanOptionWidget(editGroupjj, SWT.NONE, new OptionData("Use Original Names", "p", "jj","use-original-names", "\nRetain the original names for local variables when the source \nincludes those names. Otherwise, Soot gives variables generic \nnames based on their types. ", defaultBool))); 0437 0438 0439 0440 0441 return editGroupjj; 0442 } 0443 0444 0445 0446 private Composite jjjj_lsCreate(Composite parent) { 0447 String defKey; 0448 String defaultString; 0449 boolean defaultBool = false; 0450 String defaultArray; 0451 0452 Group editGroupjjjj_ls = new Group(parent, SWT.NONE); 0453 GridLayout layout = new GridLayout(); 0454 editGroupjjjj_ls.setLayout(layout); 0455 0456 editGroupjjjj_ls.setText("Local Splitter"); 0457 0458 editGroupjjjj_ls.setData("id", "jjjj_ls"); 0459 0460 String descjjjj_ls = "Local splitter: one local per DU-UD web"; 0461 if (descjjjj_ls.length() > 0) { 0462 Label descLabeljjjj_ls = new Label(editGroupjjjj_ls, SWT.WRAP); 0463 descLabeljjjj_ls.setText(descjjjj_ls); 0464 } 0465 OptionData [] data; 0466 0467 0468 0469 0470 defKey = "p"+" "+"jj.ls"+" "+"enabled"; 0471 defKey = defKey.trim(); 0472 0473 if (isInDefList(defKey)) { 0474 defaultBool = getBoolDef(defKey); 0475 } 0476 else { 0477 0478 defaultBool = false; 0479 0480 } 0481 0482 setjjjj_lsenabled_widget(new BooleanOptionWidget(editGroupjjjj_ls, SWT.NONE, new OptionData("Enabled", "p", "jj.ls","enabled", "\n", defaultBool))); 0483 0484 0485 0486 0487 return editGroupjjjj_ls; 0488 } 0489 0490 0491 0492 private Composite jjjj_aCreate(Composite parent) { 0493 String defKey; 0494 String defaultString; 0495 boolean defaultBool = false; 0496 String defaultArray; 0497 0498 Group editGroupjjjj_a = new Group(parent, SWT.NONE); 0499 GridLayout layout = new GridLayout(); 0500 editGroupjjjj_a.setLayout(layout); 0501 0502 editGroupjjjj_a.setText("Jimple Local Aggregator"); 0503 0504 editGroupjjjj_a.setData("id", "jjjj_a"); 0505 0506 String descjjjj_a = "Aggregator: removes some unnecessary copies"; 0507 if (descjjjj_a.length() > 0) { 0508 Label descLabeljjjj_a = new Label(editGroupjjjj_a, SWT.WRAP); 0509 descLabeljjjj_a.setText(descjjjj_a); 0510 } 0511 OptionData [] data; 0512 0513 0514 0515 0516 defKey = "p"+" "+"jj.a"+" "+"enabled"; 0517 defKey = defKey.trim(); 0518 0519 if (isInDefList(defKey)) { 0520 defaultBool = getBoolDef(defKey); 0521 } 0522 else { 0523 0524 defaultBool = true; 0525 0526 } 0527 0528 setjjjj_aenabled_widget(new BooleanOptionWidget(editGroupjjjj_a, SWT.NONE, new OptionData("Enabled", "p", "jj.a","enabled", "\n", defaultBool))); 0529 0530 0531 0532 defKey = "p"+" "+"jj.a"+" "+"only-stack-locals"; 0533 defKey = defKey.trim(); 0534 0535 if (isInDefList(defKey)) { 0536 defaultBool = getBoolDef(defKey); 0537 } 0538 else { 0539 0540 defaultBool = true; 0541 0542 } 0543 0544 setjjjj_aonly_stack_locals_widget(new BooleanOptionWidget(editGroupjjjj_a, SWT.NONE, new OptionData("Only Stack Locals", "p", "jj.a","only-stack-locals", "\nOnly aggregate locals that represent stack locations in the \noriginal bytecode. (Stack locals can be distinguished in Jimple \nby the character with which their names begin.) ", defaultBool))); 0545 0546 0547 0548 0549 return editGroupjjjj_a; 0550 } 0551 0552 0553 0554 private Composite jjjj_uleCreate(Composite parent) { 0555 String defKey; 0556 String defaultString; 0557 boolean defaultBool = false; 0558 String defaultArray; 0559 0560 Group editGroupjjjj_ule = new Group(parent, SWT.NONE); 0561 GridLayout layout = new GridLayout(); 0562 editGroupjjjj_ule.setLayout(layout); 0563 0564 editGroupjjjj_ule.setText("Unused Local Eliminator"); 0565 0566 editGroupjjjj_ule.setData("id", "jjjj_ule"); 0567 0568 String descjjjj_ule = "Unused local eliminator"; 0569 if (descjjjj_ule.length() > 0) { 0570 Label descLabeljjjj_ule = new Label(editGroupjjjj_ule, SWT.WRAP); 0571 descLabeljjjj_ule.setText(descjjjj_ule); 0572 } 0573 OptionData [] data; 0574 0575 0576 0577 0578 defKey = "p"+" "+"jj.ule"+" "+"enabled"; 0579 defKey = defKey.trim(); 0580 0581 if (isInDefList(defKey)) { 0582 defaultBool = getBoolDef(defKey); 0583 } 0584 else { 0585 0586 defaultBool = true; 0587 0588 } 0589 0590 setjjjj_uleenabled_widget(new BooleanOptionWidget(editGroupjjjj_ule, SWT.NONE, new OptionData("Enabled", "p", "jj.ule","enabled", "\n", defaultBool))); 0591 0592 0593 0594 0595 return editGroupjjjj_ule; 0596 } 0597 0598 0599 0600 private Composite jjjj_trCreate(Composite parent) { 0601 String defKey; 0602 String defaultString; 0603 boolean defaultBool = false; 0604 String defaultArray; 0605 0606 Group editGroupjjjj_tr = new Group(parent, SWT.NONE); 0607 GridLayout layout = new GridLayout(); 0608 editGroupjjjj_tr.setLayout(layout); 0609 0610 editGroupjjjj_tr.setText("Type Assigner"); 0611 0612 editGroupjjjj_tr.setData("id", "jjjj_tr"); 0613 0614 String descjjjj_tr = "Assigns types to locals"; 0615 if (descjjjj_tr.length() > 0) { 0616 Label descLabeljjjj_tr = new Label(editGroupjjjj_tr, SWT.WRAP); 0617 descLabeljjjj_tr.setText(descjjjj_tr); 0618 } 0619 OptionData [] data; 0620 0621 0622 0623 0624 defKey = "p"+" "+"jj.tr"+" "+"enabled"; 0625 defKey = defKey.trim(); 0626 0627 if (isInDefList(defKey)) { 0628 defaultBool = getBoolDef(defKey); 0629 } 0630 else { 0631 0632 defaultBool = false; 0633 0634 } 0635 0636 setjjjj_trenabled_widget(new BooleanOptionWidget(editGroupjjjj_tr, SWT.NONE, new OptionData("Enabled", "p", "jj.tr","enabled", "\n", defaultBool))); 0637 0638 0639 0640 0641 return editGroupjjjj_tr; 0642 } 0643 0644 0645 0646 private Composite jjjj_ulpCreate(Composite parent) { 0647 String defKey; 0648 String defaultString; 0649 boolean defaultBool = false; 0650 String defaultArray; 0651 0652 Group editGroupjjjj_ulp = new Group(parent, SWT.NONE); 0653 GridLayout layout = new GridLayout(); 0654 editGroupjjjj_ulp.setLayout(layout); 0655 0656 editGroupjjjj_ulp.setText("Unsplit-originals Local Packer"); 0657 0658 editGroupjjjj_ulp.setData("id", "jjjj_ulp"); 0659 0660 String descjjjj_ulp = "Local packer: minimizes number of locals"; 0661 if (descjjjj_ulp.length() > 0) { 0662 Label descLabeljjjj_ulp = new Label(editGroupjjjj_ulp, SWT.WRAP); 0663 descLabeljjjj_ulp.setText(descjjjj_ulp); 0664 } 0665 OptionData [] data; 0666 0667 0668 0669 0670 defKey = "p"+" "+"jj.ulp"+" "+"enabled"; 0671 defKey = defKey.trim(); 0672 0673 if (isInDefList(defKey)) { 0674 defaultBool = getBoolDef(defKey); 0675 } 0676 else { 0677 0678 defaultBool = false; 0679 0680 } 0681 0682 setjjjj_ulpenabled_widget(new BooleanOptionWidget(editGroupjjjj_ulp, SWT.NONE, new OptionData("Enabled", "p", "jj.ulp","enabled", "\n", defaultBool))); 0683 0684 0685 0686 defKey = "p"+" "+"jj.ulp"+" "+"unsplit-original-locals"; 0687 defKey = defKey.trim(); 0688 0689 if (isInDefList(defKey)) { 0690 defaultBool = getBoolDef(defKey); 0691 } 0692 else { 0693 0694 defaultBool = false; 0695 0696 } 0697 0698 setjjjj_ulpunsplit_original_locals_widget(new BooleanOptionWidget(editGroupjjjj_ulp, SWT.NONE, new OptionData("Unsplit Original Locals", "p", "jj.ulp","unsplit-original-locals", "\nUse the variable names in the original source as a guide when \ndetermining how to share local variables among non-interfering \nvariable usages. This recombines named locals which were split \nby the Local Splitter. ", defaultBool))); 0699 0700 0701 0702 0703 return editGroupjjjj_ulp; 0704 } 0705 0706 0707 0708 private Composite jjjj_lnsCreate(Composite parent) { 0709 String defKey; 0710 String defaultString; 0711 boolean defaultBool = false; 0712 String defaultArray; 0713 0714 Group editGroupjjjj_lns = new Group(parent, SWT.NONE); 0715 GridLayout layout = new GridLayout(); 0716 editGroupjjjj_lns.setLayout(layout); 0717 0718 editGroupjjjj_lns.setText("Local Name Standardizer"); 0719 0720 editGroupjjjj_lns.setData("id", "jjjj_lns"); 0721 0722 String descjjjj_lns = "Local name standardizer"; 0723 if (descjjjj_lns.length() > 0) { 0724 Label descLabeljjjj_lns = new Label(editGroupjjjj_lns, SWT.WRAP); 0725 descLabeljjjj_lns.setText(descjjjj_lns); 0726 } 0727 OptionData [] data; 0728 0729 0730 0731 0732 defKey = "p"+" "+"jj.lns"+" "+"enabled"; 0733 defKey = defKey.trim(); 0734 0735 if (isInDefList(defKey)) { 0736 defaultBool = getBoolDef(defKey); 0737 } 0738 else { 0739 0740 defaultBool = true; 0741 0742 } 0743 0744 setjjjj_lnsenabled_widget(new BooleanOptionWidget(editGroupjjjj_lns, SWT.NONE, new OptionData("Enabled", "p", "jj.lns","enabled", "\n", defaultBool))); 0745 0746 0747 0748 defKey = "p"+" "+"jj.lns"+" "+"only-stack-locals"; 0749 defKey = defKey.trim(); 0750 0751 if (isInDefList(defKey)) { 0752 defaultBool = getBoolDef(defKey); 0753 } 0754 else { 0755 0756 defaultBool = false; 0757 0758 } 0759 0760 setjjjj_lnsonly_stack_locals_widget(new BooleanOptionWidget(editGroupjjjj_lns, SWT.NONE, new OptionData("Only Stack Locals", "p", "jj.lns","only-stack-locals", "\nOnly standardizes the names of variables that represent stack \nlocations in the original bytecode. This becomes the default \nwhen the `use-original-names' option is specified for the `jb' \nphase. ", defaultBool))); 0761 0762 0763 0764 0765 return editGroupjjjj_lns; 0766 } 0767 0768 0769 0770 private Composite jjjj_cpCreate(Composite parent) { 0771 String defKey; 0772 String defaultString; 0773 boolean defaultBool = false; 0774 String defaultArray; 0775 0776 Group editGroupjjjj_cp = new Group(parent, SWT.NONE); 0777 GridLayout layout = new GridLayout(); 0778 editGroupjjjj_cp.setLayout(layout); 0779 0780 editGroupjjjj_cp.setText("Copy Propagator"); 0781 0782 editGroupjjjj_cp.setData("id", "jjjj_cp"); 0783 0784 String descjjjj_cp = "Copy propagator"; 0785 if (descjjjj_cp.length() > 0) { 0786 Label descLabeljjjj_cp = new Label(editGroupjjjj_cp, SWT.WRAP); 0787 descLabeljjjj_cp.setText(descjjjj_cp); 0788 } 0789 OptionData [] data; 0790 0791 0792 0793 0794 defKey = "p"+" "+"jj.cp"+" "+"enabled"; 0795 defKey = defKey.trim(); 0796 0797 if (isInDefList(defKey)) { 0798 defaultBool = getBoolDef(defKey); 0799 } 0800 else { 0801 0802 defaultBool = true; 0803 0804 } 0805 0806 setjjjj_cpenabled_widget(new BooleanOptionWidget(editGroupjjjj_cp, SWT.NONE, new OptionData("Enabled", "p", "jj.cp","enabled", "\n", defaultBool))); 0807 0808 0809 0810 defKey = "p"+" "+"jj.cp"+" "+"only-regular-locals"; 0811 defKey = defKey.trim(); 0812 0813 if (isInDefList(defKey)) { 0814 defaultBool = getBoolDef(defKey); 0815 } 0816 else { 0817 0818 defaultBool = false; 0819 0820 } 0821 0822 setjjjj_cponly_regular_locals_widget(new BooleanOptionWidget(editGroupjjjj_cp, SWT.NONE, new OptionData("Only Regular Locals", "p", "jj.cp","only-regular-locals", "\nOnly propagate copies through ``regular'' locals, that is, \nthose declared in the source bytecode. ", defaultBool))); 0823 0824 0825 0826 defKey = "p"+" "+"jj.cp"+" "+"only-stack-locals"; 0827 defKey = defKey.trim(); 0828 0829 if (isInDefList(defKey)) { 0830 defaultBool = getBoolDef(defKey); 0831 } 0832 else { 0833 0834 defaultBool = true; 0835 0836 } 0837 0838 setjjjj_cponly_stack_locals_widget(new BooleanOptionWidget(editGroupjjjj_cp, SWT.NONE, new OptionData("Only Stack Locals", "p", "jj.cp","only-stack-locals", "\nOnly propagate copies through locals that represent stack \nlocations in the original bytecode. ", defaultBool))); 0839 0840 0841 0842 0843 return editGroupjjjj_cp; 0844 } 0845 0846 0847 0848 private Composite jjjj_daeCreate(Composite parent) { 0849 String defKey; 0850 String defaultString; 0851 boolean defaultBool = false; 0852 String defaultArray; 0853 0854 Group editGroupjjjj_dae = new Group(parent, SWT.NONE); 0855 GridLayout layout = new GridLayout(); 0856 editGroupjjjj_dae.setLayout(layout); 0857 0858 editGroupjjjj_dae.setText("Dead Assignment Eliminator"); 0859 0860 editGroupjjjj_dae.setData("id", "jjjj_dae"); 0861 0862 String descjjjj_dae = "Dead assignment eliminator"; 0863 if (descjjjj_dae.length() > 0) { 0864 Label descLabeljjjj_dae = new Label(editGroupjjjj_dae, SWT.WRAP); 0865 descLabeljjjj_dae.setText(descjjjj_dae); 0866 } 0867 OptionData [] data; 0868 0869 0870 0871 0872 defKey = "p"+" "+"jj.dae"+" "+"enabled"; 0873 defKey = defKey.trim(); 0874 0875 if (isInDefList(defKey)) { 0876 defaultBool = getBoolDef(defKey); 0877 } 0878 else { 0879 0880 defaultBool = true; 0881 0882 } 0883 0884 setjjjj_daeenabled_widget(new BooleanOptionWidget(editGroupjjjj_dae, SWT.NONE, new OptionData("Enabled", "p", "jj.dae","enabled", "\n", defaultBool))); 0885 0886 0887 0888 defKey = "p"+" "+"jj.dae"+" "+"only-stack-locals"; 0889 defKey = defKey.trim(); 0890 0891 if (isInDefList(defKey)) { 0892 defaultBool = getBoolDef(defKey); 0893 } 0894 else { 0895 0896 defaultBool = true; 0897 0898 } 0899 0900 setjjjj_daeonly_stack_locals_widget(new BooleanOptionWidget(editGroupjjjj_dae, SWT.NONE, new OptionData("Only Stack Locals", "p", "jj.dae","only-stack-locals", "\nOnly eliminate dead assignments to locals that represent stack \nlocations in the original bytecode. ", defaultBool))); 0901 0902 0903 0904 0905 return editGroupjjjj_dae; 0906 } 0907 0908 0909 0910 private Composite jjjj_cp_uleCreate(Composite parent) { 0911 String defKey; 0912 String defaultString; 0913 boolean defaultBool = false; 0914 String defaultArray; 0915 0916 Group editGroupjjjj_cp_ule = new Group(parent, SWT.NONE); 0917 GridLayout layout = new GridLayout(); 0918 editGroupjjjj_cp_ule.setLayout(layout); 0919 0920 editGroupjjjj_cp_ule.setText("Post-copy propagation Unused Local Eliminator"); 0921 0922 editGroupjjjj_cp_ule.setData("id", "jjjj_cp_ule"); 0923 0924 String descjjjj_cp_ule = "Post-copy propagation unused local eliminator"; 0925 if (descjjjj_cp_ule.length() > 0) { 0926 Label descLabeljjjj_cp_ule = new Label(editGroupjjjj_cp_ule, SWT.WRAP); 0927 descLabeljjjj_cp_ule.setText(descjjjj_cp_ule); 0928 } 0929 OptionData [] data; 0930 0931 0932 0933 0934 defKey = "p"+" "+"jj.cp-ule"+" "+"enabled"; 0935 defKey = defKey.trim(); 0936 0937 if (isInDefList(defKey)) { 0938 defaultBool = getBoolDef(defKey); 0939 } 0940 else { 0941 0942 defaultBool = true; 0943 0944 } 0945 0946 setjjjj_cp_uleenabled_widget(new BooleanOptionWidget(editGroupjjjj_cp_ule, SWT.NONE, new OptionData("Enabled", "p", "jj.cp-ule","enabled", "\n", defaultBool))); 0947 0948 0949 0950 0951 return editGroupjjjj_cp_ule; 0952 } 0953 0954 0955 0956 private Composite jjjj_lpCreate(Composite parent) { 0957 String defKey; 0958 String defaultString; 0959 boolean defaultBool = false; 0960 String defaultArray; 0961 0962 Group editGroupjjjj_lp = new Group(parent, SWT.NONE); 0963 GridLayout layout = new GridLayout(); 0964 editGroupjjjj_lp.setLayout(layout); 0965 0966 editGroupjjjj_lp.setText("Local Packer"); 0967 0968 editGroupjjjj_lp.setData("id", "jjjj_lp"); 0969 0970 String descjjjj_lp = "Local packer: minimizes number of locals"; 0971 if (descjjjj_lp.length() > 0) { 0972 Label descLabeljjjj_lp = new Label(editGroupjjjj_lp, SWT.WRAP); 0973 descLabeljjjj_lp.setText(descjjjj_lp); 0974 } 0975 OptionData [] data; 0976 0977 0978 0979 0980 defKey = "p"+" "+"jj.lp"+" "+"enabled"; 0981 defKey = defKey.trim(); 0982 0983 if (isInDefList(defKey)) { 0984 defaultBool = getBoolDef(defKey); 0985 } 0986 else { 0987 0988 defaultBool = false; 0989 0990 } 0991 0992 setjjjj_lpenabled_widget(new BooleanOptionWidget(editGroupjjjj_lp, SWT.NONE, new OptionData("Enabled", "p", "jj.lp","enabled", "\n", defaultBool))); 0993 0994 0995 0996 defKey = "p"+" "+"jj.lp"+" "+"unsplit-original-locals"; 0997 defKey = defKey.trim(); 0998 0999 if (isInDefList(defKey)) { 1000 defaultBool = getBoolDef(defKey); 1001 } 1002 else { 1003 1004 defaultBool = false; 1005 1006 } 1007 1008 setjjjj_lpunsplit_original_locals_widget(new BooleanOptionWidget(editGroupjjjj_lp, SWT.NONE, new OptionData("Unsplit Original Locals", "p", "jj.lp","unsplit-original-locals", "\nUse the variable names in the original source as a guide when \ndetermining how to share local variables across non-interfering \nvariable usages. This recombines named locals which were split \nby the Local Splitter. ", defaultBool))); 1009 1010 1011 1012 1013 return editGroupjjjj_lp; 1014 } 1015 1016 1017 1018 private Composite jjjj_neCreate(Composite parent) { 1019 String defKey; 1020 String defaultString; 1021 boolean defaultBool = false; 1022 String defaultArray; 1023 1024 Group editGroupjjjj_ne = new Group(parent, SWT.NONE); 1025 GridLayout layout = new GridLayout(); 1026 editGroupjjjj_ne.setLayout(layout); 1027 1028 editGroupjjjj_ne.setText("Nop Eliminator"); 1029 1030 editGroupjjjj_ne.setData("id", "jjjj_ne"); 1031 1032 String descjjjj_ne = "Nop eliminator"; 1033 if (descjjjj_ne.length() > 0) { 1034 Label descLabeljjjj_ne = new Label(editGroupjjjj_ne, SWT.WRAP); 1035 descLabeljjjj_ne.setText(descjjjj_ne); 1036 } 1037 OptionData [] data; 1038 1039 1040 1041 1042 defKey = "p"+" "+"jj.ne"+" "+"enabled"; 1043 defKey = defKey.trim(); 1044 1045 if (isInDefList(defKey)) { 1046 defaultBool = getBoolDef(defKey); 1047 } 1048 else { 1049 1050 defaultBool = true; 1051 1052 } 1053 1054 setjjjj_neenabled_widget(new BooleanOptionWidget(editGroupjjjj_ne, SWT.NONE, new OptionData("Enabled", "p", "jj.ne","enabled", "\n", defaultBool))); 1055 1056 1057 1058 1059 return editGroupjjjj_ne; 1060 } 1061 1062 1063 1064 private Composite jjjj_uceCreate(Composite parent) { 1065 String defKey; 1066 String defaultString; 1067 boolean defaultBool = false; 1068 String defaultArray; 1069 1070 Group editGroupjjjj_uce = new Group(parent, SWT.NONE); 1071 GridLayout layout = new GridLayout(); 1072 editGroupjjjj_uce.setLayout(layout); 1073 1074 editGroupjjjj_uce.setText("Unreachable Code Eliminator"); 1075 1076 editGroupjjjj_uce.setData("id", "jjjj_uce"); 1077 1078 String descjjjj_uce = "Unreachable code eliminator"; 1079 if (descjjjj_uce.length() > 0) { 1080 Label descLabeljjjj_uce = new Label(editGroupjjjj_uce, SWT.WRAP); 1081 descLabeljjjj_uce.setText(descjjjj_uce); 1082 } 1083 OptionData [] data; 1084 1085 1086 1087 1088 defKey = "p"+" "+"jj.uce"+" "+"enabled"; 1089 defKey = defKey.trim(); 1090 1091 if (isInDefList(defKey)) { 1092 defaultBool = getBoolDef(defKey); 1093 } 1094 else { 1095 1096 defaultBool = true; 1097 1098 } 1099 1100 setjjjj_uceenabled_widget(new BooleanOptionWidget(editGroupjjjj_uce, SWT.NONE, new OptionData("Enabled", "p", "jj.uce","enabled", "\n", defaultBool))); 1101 1102 1103 1104 1105 return editGroupjjjj_uce; 1106 } 1107 1108 1109 1110 private Composite cgCreate(Composite parent) { 1111 String defKey; 1112 String defaultString; 1113 boolean defaultBool = false; 1114 String defaultArray; 1115 1116 Group editGroupcg = new Group(parent, SWT.NONE); 1117 GridLayout layout = new GridLayout(); 1118 editGroupcg.setLayout(layout); 1119 1120 editGroupcg.setText("Call Graph Constructor"); 1121 1122 editGroupcg.setData("id", "cg"); 1123 1124 String desccg = "Call graph constructor"; 1125 if (desccg.length() > 0) { 1126 Label descLabelcg = new Label(editGroupcg, SWT.WRAP); 1127 descLabelcg.setText(desccg); 1128 } 1129 OptionData [] data; 1130 1131 1132 1133 1134 defKey = "p"+" "+"cg"+" "+"enabled"; 1135 defKey = defKey.trim(); 1136 1137 if (isInDefList(defKey)) { 1138 defaultBool = getBoolDef(defKey); 1139 } 1140 else { 1141 1142 defaultBool = true; 1143 1144 } 1145 1146 setcgenabled_widget(new BooleanOptionWidget(editGroupcg, SWT.NONE, new OptionData("Enabled", "p", "cg","enabled", "\n", defaultBool))); 1147 1148 1149 1150 defKey = "p"+" "+"cg"+" "+"safe-forname"; 1151 defKey = defKey.trim(); 1152 1153 if (isInDefList(defKey)) { 1154 defaultBool = getBoolDef(defKey); 1155 } 1156 else { 1157 1158 defaultBool = false; 1159 1160 } 1161 1162 setcgsafe_forname_widget(new BooleanOptionWidget(editGroupcg, SWT.NONE, new OptionData("Safe forName", "p", "cg","safe-forname", "\nWhen a program calls Class.forName(), the named class is \nresolved, and its static initializer executed. In many cases, it \ncannot be determined statically which class will be loaded, and \nwhich static initializer executed. When this option is set to \ntrue, Soot will conservatively assume that any static \ninitializer could be executed. This may make the call graph very \nlarge. When this option is set to false, any calls to \nClass.forName() for which the class cannot be determined \nstatically are assumed to call no static initializers. ", defaultBool))); 1163 1164 1165 1166 defKey = "p"+" "+"cg"+" "+"safe-newinstance"; 1167 defKey = defKey.trim(); 1168 1169 if (isInDefList(defKey)) { 1170 defaultBool = getBoolDef(defKey); 1171 } 1172 else { 1173 1174 defaultBool = false; 1175 1176 } 1177 1178 setcgsafe_newinstance_widget(new BooleanOptionWidget(editGroupcg, SWT.NONE, new OptionData("Safe newInstance", "p", "cg","safe-newinstance", "\nWhen a program calls Class.newInstance(), a new object is \ncreated and its constructor executed. Soot does not determine \nstatically which type of object will be created, and which \nconstructor executed. When this option is set to true, Soot will \nconservatively assume that any constructor could be executed. \nThis may make the call graph very large. When this option is set \nto false, any calls to Class.newInstance() are assumed not to \ncall the constructor of the created object. ", defaultBool))); 1179 1180 1181 1182 defKey = "p"+" "+"cg"+" "+"verbose"; 1183 defKey = defKey.trim(); 1184 1185 if (isInDefList(defKey)) { 1186 defaultBool = getBoolDef(defKey); 1187 } 1188 else { 1189 1190 defaultBool = false; 1191 1192 } 1193 1194 setcgverbose_widget(new BooleanOptionWidget(editGroupcg, SWT.NONE, new OptionData("Verbose", "p", "cg","verbose", "\nDue to the effects of native methods and reflection, it may not \nalways be possible to construct a fully conservative call graph. \nSetting this option to true causes Soot to point out the parts \nof the call graph that may be incomplete, so that they can be \nchecked by hand. ", defaultBool))); 1195 1196 1197 1198 defKey = "p"+" "+"cg"+" "+"all-reachable"; 1199 defKey = defKey.trim(); 1200 1201 if (isInDefList(defKey)) { 1202 defaultBool = getBoolDef(defKey); 1203 } 1204 else { 1205 1206 defaultBool = false; 1207 1208 } 1209 1210 setcgall_reachable_widget(new BooleanOptionWidget(editGroupcg, SWT.NONE, new OptionData("All Application Class Methods Reachable", "p", "cg","all-reachable", "\nWhen this option is false, the call graph is built starting at a \nset of entry points, and only methods reachable from those entry \npoints are processed. Unreachable methods will not have any call \ngraph edges generated out of them. Setting this option to true \nmakes Soot consider all methods of application classes to be \nreachable, so call edges are generated for all of them. This \nleads to a larger call graph. For program visualization \npurposes, it is sometimes desirable to include edges from \nunreachable methods; although these methods are unreachable in \nthe version being analyzed, they may become reachable if the \nprogram is modified.", defaultBool))); 1211 1212 1213 1214 defKey = "p"+" "+"cg"+" "+"implicit-entry"; 1215 defKey = defKey.trim(); 1216 1217 if (isInDefList(defKey)) { 1218 defaultBool = getBoolDef(defKey); 1219 } 1220 else { 1221 1222 defaultBool = true; 1223 1224 } 1225 1226 setcgimplicit_entry_widget(new BooleanOptionWidget(editGroupcg, SWT.NONE, new OptionData("Implicit Entry Points", "p", "cg","implicit-entry", "\nWhen this option is true, methods that are called implicitly by \nthe VM are considered entry points of the call graph. When it is \nfalse, these methods are not considered entry points, leading to \na possibly incomplete call graph.", defaultBool))); 1227 1228 1229 1230 defKey = "p"+" "+"cg"+" "+"trim-clinit"; 1231 defKey = defKey.trim(); 1232 1233 if (isInDefList(defKey)) { 1234 defaultBool = getBoolDef(defKey); 1235 } 1236 else { 1237 1238 defaultBool = true; 1239 1240 } 1241 1242 setcgtrim_clinit_widget(new BooleanOptionWidget(editGroupcg, SWT.NONE, new OptionData("Trim Static Initializer Edges", "p", "cg","trim-clinit", "\nThe call graph contains an edge from each statement that could \ntrigger execution of a static initializer to that static \ninitializer. However, each static initializer is triggered only \nonce. When this option is enabled, after the call graph is \nbuilt, an intra-procedural analysis is performed to detect \nstatic initializer edges leading to methods that must have \nalready been executed. Since these static initializers cannot be \nexecuted again, the corresponding call graph edges are removed \nfrom the call graph. ", defaultBool))); 1243 1244 1245 1246 defKey = "p"+" "+"cg"+" "+"jdkver"; 1247 defKey = defKey.trim(); 1248 1249 if (isInDefList(defKey)) { 1250 defaultString = getStringDef(defKey); 1251 } 1252 else { 1253 1254 defaultString = "3"; 1255 1256 } 1257 1258 setcgjdkver_widget(new StringOptionWidget(editGroupcg, SWT.NONE, new OptionData("JDK version", "p", "cg","jdkver", "\nThis option sets the JDK version of the standard library being \nanalyzed so that Soot can simulate the native methods in the \nspecific version of the library. The default, 3, refers to Java \n1.3.x.", defaultString))); 1259 1260 1261 1262 return editGroupcg; 1263 } 1264 1265 1266 1267 private Composite cgcg_chaCreate(Composite parent) { 1268 String defKey; 1269 String defaultString; 1270 boolean defaultBool = false; 1271 String defaultArray; 1272 1273 Group editGroupcgcg_cha = new Group(parent, SWT.NONE); 1274 GridLayout layout = new GridLayout(); 1275 editGroupcgcg_cha.setLayout(layout); 1276 1277 editGroupcgcg_cha.setText("Class Hierarchy Analysis"); 1278 1279 editGroupcgcg_cha.setData("id", "cgcg_cha"); 1280 1281 String desccgcg_cha = "Builds call graph using Class Hierarchy Analysis"; 1282 if (desccgcg_cha.length() > 0) { 1283 Label descLabelcgcg_cha = new Label(editGroupcgcg_cha, SWT.WRAP); 1284 descLabelcgcg_cha.setText(desccgcg_cha); 1285 } 1286 OptionData [] data; 1287 1288 1289 1290 1291 defKey = "p"+" "+"cg.cha"+" "+"enabled"; 1292 defKey = defKey.trim(); 1293 1294 if (isInDefList(defKey)) { 1295 defaultBool = getBoolDef(defKey); 1296 } 1297 else { 1298 1299 defaultBool = true; 1300 1301 } 1302 1303 setcgcg_chaenabled_widget(new BooleanOptionWidget(editGroupcgcg_cha, SWT.NONE, new OptionData("Enabled", "p", "cg.cha","enabled", "\n", defaultBool))); 1304 1305 1306 1307 defKey = "p"+" "+"cg.cha"+" "+"verbose"; 1308 defKey = defKey.trim(); 1309 1310 if (isInDefList(defKey)) { 1311 defaultBool = getBoolDef(defKey); 1312 } 1313 else { 1314 1315 defaultBool = false; 1316 1317 } 1318 1319 setcgcg_chaverbose_widget(new BooleanOptionWidget(editGroupcgcg_cha, SWT.NONE, new OptionData("Verbose", "p", "cg.cha","verbose", "\nSetting this option to true causes Soot to print out statistics \nabout the call graph computed by this phase, such as the number \nof methods determined to be reachable.", defaultBool))); 1320 1321 1322 1323 1324 return editGroupcgcg_cha; 1325 } 1326 1327 1328 1329 private Composite cgcg_sparkCreate(Composite parent) { 1330 String defKey; 1331 String defaultString; 1332 boolean defaultBool = false; 1333 String defaultArray; 1334 1335 Group editGroupcgcg_spark = new Group(parent, SWT.NONE); 1336 GridLayout layout = new GridLayout(); 1337 editGroupcgcg_spark.setLayout(layout); 1338 1339 editGroupcgcg_spark.setText("Spark"); 1340 1341 editGroupcgcg_spark.setData("id", "cgcg_spark"); 1342 1343 String desccgcg_spark = "Spark points-to analysis framework"; 1344 if (desccgcg_spark.length() > 0) { 1345 Label descLabelcgcg_spark = new Label(editGroupcgcg_spark, SWT.WRAP); 1346 descLabelcgcg_spark.setText(desccgcg_spark); 1347 } 1348 OptionData [] data; 1349 1350 1351 1352 1353 defKey = "p"+" "+"cg.spark"+" "+"enabled"; 1354 defKey = defKey.trim(); 1355 1356 if (isInDefList(defKey)) { 1357 defaultBool = getBoolDef(defKey); 1358 } 1359 else { 1360 1361 defaultBool = false; 1362 1363 } 1364 1365 setcgcg_sparkenabled_widget(new BooleanOptionWidget(editGroupcgcg_spark, SWT.NONE, new OptionData("Enabled", "p", "cg.spark","enabled", "\n", defaultBool))); 1366 1367 1368 1369 1370 return editGroupcgcg_spark; 1371 } 1372 1373 1374 1375 private Composite cgSpark_General_OptionsCreate(Composite parent) { 1376 String defKey; 1377 String defaultString; 1378 boolean defaultBool = false; 1379 String defaultArray; 1380 1381 Group editGroupcgSpark_General_Options = new Group(parent, SWT.NONE); 1382 GridLayout layout = new GridLayout(); 1383 editGroupcgSpark_General_Options.setLayout(layout); 1384 1385 editGroupcgSpark_General_Options.setText("Spark General Options"); 1386 1387 editGroupcgSpark_General_Options.setData("id", "cgSpark_General_Options"); 1388 1389 String desccgSpark_General_Options = ""; 1390 if (desccgSpark_General_Options.length() > 0) { 1391 Label descLabelcgSpark_General_Options = new Label(editGroupcgSpark_General_Options, SWT.WRAP); 1392 descLabelcgSpark_General_Options.setText(desccgSpark_General_Options); 1393 } 1394 OptionData [] data; 1395 1396 1397 1398 1399 defKey = "p"+" "+"cg.spark"+" "+"verbose"; 1400 defKey = defKey.trim(); 1401 1402 if (isInDefList(defKey)) { 1403 defaultBool = getBoolDef(defKey); 1404 } 1405 else { 1406 1407 defaultBool = false; 1408 1409 } 1410 1411 setcgcg_sparkverbose_widget(new BooleanOptionWidget(editGroupcgSpark_General_Options, SWT.NONE, new OptionData("Verbose", "p", "cg.spark","verbose", "\nWhen this option is set to true, Spark prints detailed \ninformation about its execution. ", defaultBool))); 1412 1413 1414 1415 defKey = "p"+" "+"cg.spark"+" "+"ignore-types"; 1416 defKey = defKey.trim(); 1417 1418 if (isInDefList(defKey)) { 1419 defaultBool = getBoolDef(defKey); 1420 } 1421 else { 1422 1423 defaultBool = false; 1424 1425 } 1426 1427 setcgcg_sparkignore_types_widget(new BooleanOptionWidget(editGroupcgSpark_General_Options, SWT.NONE, new OptionData("Ignore Types Entirely", "p", "cg.spark","ignore-types", "\nWhen this option is set to true, all parts of Spark completely \nignore declared types of variables and casts. ", defaultBool))); 1428 1429 1430 1431 defKey = "p"+" "+"cg.spark"+" "+"force-gc"; 1432 defKey = defKey.trim(); 1433 1434 if (isInDefList(defKey)) { 1435 defaultBool = getBoolDef(defKey); 1436 } 1437 else { 1438 1439 defaultBool = false; 1440 1441 } 1442 1443 setcgcg_sparkforce_gc_widget(new BooleanOptionWidget(editGroupcgSpark_General_Options, SWT.NONE, new OptionData("Force Garbage Collections", "p", "cg.spark","force-gc", "\nWhen this option is set to true, calls to System.gc() will be \nmade at various points to allow memory usage to be measured. \n", defaultBool))); 1444 1445 1446 1447 defKey = "p"+" "+"cg.spark"+" "+"pre-jimplify"; 1448 defKey = defKey.trim(); 1449 1450 if (isInDefList(defKey)) { 1451 defaultBool = getBoolDef(defKey); 1452 } 1453 else { 1454 1455 defaultBool = false; 1456 1457 } 1458 1459 setcgcg_sparkpre_jimplify_widget(new BooleanOptionWidget(editGroupcgSpark_General_Options, SWT.NONE, new OptionData("Pre Jimplify", "p", "cg.spark","pre-jimplify", "\nWhen this option is set to true, Spark converts all available \nmethods to Jimple before starting the points-to analysis. This \nallows the Jimplification time to be separated from the \npoints-to time. However, it increases the total time and memory \nrequirement, because all methods are Jimplified, rather than \nonly those deemed reachable by the points-to analysis. ", defaultBool))); 1460 1461 1462 1463 1464 return editGroupcgSpark_General_Options; 1465 } 1466 1467 1468 1469 private Composite cgSpark_Pointer_Assignment_Graph_Building_OptionsCreate(Composite parent) { 1470 String defKey; 1471 String defaultString; 1472 boolean defaultBool = false; 1473 String defaultArray; 1474 1475 Group editGroupcgSpark_Pointer_Assignment_Graph_Building_Options = new Group(parent, SWT.NONE); 1476 GridLayout layout = new GridLayout(); 1477 editGroupcgSpark_Pointer_Assignment_Graph_Building_Options.setLayout(layout); 1478 1479 editGroupcgSpark_Pointer_Assignment_Graph_Building_Options.setText("Spark Pointer Assignment Graph Building Options"); 1480 1481 editGroupcgSpark_Pointer_Assignment_Graph_Building_Options.setData("id", "cgSpark_Pointer_Assignment_Graph_Building_Options"); 1482 1483 String desccgSpark_Pointer_Assignment_Graph_Building_Options = ""; 1484 if (desccgSpark_Pointer_Assignment_Graph_Building_Options.length() > 0) { 1485 Label descLabelcgSpark_Pointer_Assignment_Graph_Building_Options = new Label(editGroupcgSpark_Pointer_Assignment_Graph_Building_Options, SWT.WRAP); 1486 descLabelcgSpark_Pointer_Assignment_Graph_Building_Options.setText(desccgSpark_Pointer_Assignment_Graph_Building_Options); 1487 } 1488 OptionData [] data; 1489 1490 1491 1492 1493 defKey = "p"+" "+"cg.spark"+" "+"vta"; 1494 defKey = defKey.trim(); 1495 1496 if (isInDefList(defKey)) { 1497 defaultBool = getBoolDef(defKey); 1498 } 1499 else { 1500 1501 defaultBool = false; 1502 1503 } 1504 1505 setcgcg_sparkvta_widget(new BooleanOptionWidget(editGroupcgSpark_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("VTA", "p", "cg.spark","vta", "\nSetting VTA to true has the effect of setting field-based, \ntypes-for-sites, and simplify-sccs to true, and on-fly-cg to \nfalse, to simulate Variable Type Analysis, described in our \nOOPSLA 2000 paper. Note that the algorithm differs from the \noriginal VTA in that it handles array elements more precisely. \n", defaultBool))); 1506 1507 1508 1509 defKey = "p"+" "+"cg.spark"+" "+"rta"; 1510 defKey = defKey.trim(); 1511 1512 if (isInDefList(defKey)) { 1513 defaultBool = getBoolDef(defKey); 1514 } 1515 else { 1516 1517 defaultBool = false; 1518 1519 } 1520 1521 setcgcg_sparkrta_widget(new BooleanOptionWidget(editGroupcgSpark_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("RTA", "p", "cg.spark","rta", "\nSetting RTA to true sets types-for-sites to true, and causes \nSpark to use a single points-to set for all variables, giving \nRapid Type Analysis. ", defaultBool))); 1522 1523 1524 1525 defKey = "p"+" "+"cg.spark"+" "+"field-based"; 1526 defKey = defKey.trim(); 1527 1528 if (isInDefList(defKey)) { 1529 defaultBool = getBoolDef(defKey); 1530 } 1531 else { 1532 1533 defaultBool = false; 1534 1535 } 1536 1537 setcgcg_sparkfield_based_widget(new BooleanOptionWidget(editGroupcgSpark_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Field Based", "p", "cg.spark","field-based", "\nWhen this option is set to true, fields are represented by \nvariable (Green) nodes, and the object that the field belongs to \nis ignored (all objects are lumped together), giving a \nfield-based analysis. Otherwise, fields are represented by field \nreference (Red) nodes, and the objects that they belong to are \ndistinguished, giving a field-sensitive analysis. ", defaultBool))); 1538 1539 1540 1541 defKey = "p"+" "+"cg.spark"+" "+"types-for-sites"; 1542 defKey = defKey.trim(); 1543 1544 if (isInDefList(defKey)) { 1545 defaultBool = getBoolDef(defKey); 1546 } 1547 else { 1548 1549 defaultBool = false; 1550 1551 } 1552 1553 setcgcg_sparktypes_for_sites_widget(new BooleanOptionWidget(editGroupcgSpark_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Types For Sites", "p", "cg.spark","types-for-sites", "\nWhen this option is set to true, types rather than allocation \nsites are used as the elements of the points-to sets. ", defaultBool))); 1554 1555 1556 1557 defKey = "p"+" "+"cg.spark"+" "+"merge-stringbuffer"; 1558 defKey = defKey.trim(); 1559 1560 if (isInDefList(defKey)) { 1561 defaultBool = getBoolDef(defKey); 1562 } 1563 else { 1564 1565 defaultBool = true; 1566 1567 } 1568 1569 setcgcg_sparkmerge_stringbuffer_widget(new BooleanOptionWidget(editGroupcgSpark_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Merge String Buffer", "p", "cg.spark","merge-stringbuffer", "\nWhen this option is set to true, all allocation sites creating \njava.lang.StringBuffer objects are grouped together as a single \nallocation site. ", defaultBool))); 1570 1571 1572 1573 defKey = "p"+" "+"cg.spark"+" "+"string-constants"; 1574 defKey = defKey.trim(); 1575 1576 if (isInDefList(defKey)) { 1577 defaultBool = getBoolDef(defKey); 1578 } 1579 else { 1580 1581 defaultBool = false; 1582 1583 } 1584 1585 setcgcg_sparkstring_constants_widget(new BooleanOptionWidget(editGroupcgSpark_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Propagate All String Constants", "p", "cg.spark","string-constants", "\nWhen this option is set to false, Spark only distinguishes \nstring constants that may be the name of a class loaded \ndynamically using reflection, and all other string constants are \nlumped together into a single string constant node. Setting this \noption to true causes all string constants to be propagated \nindividually. ", defaultBool))); 1586 1587 1588 1589 defKey = "p"+" "+"cg.spark"+" "+"simulate-natives"; 1590 defKey = defKey.trim(); 1591 1592 if (isInDefList(defKey)) { 1593 defaultBool = getBoolDef(defKey); 1594 } 1595 else { 1596 1597 defaultBool = true; 1598 1599 } 1600 1601 setcgcg_sparksimulate_natives_widget(new BooleanOptionWidget(editGroupcgSpark_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Simulate Natives", "p", "cg.spark","simulate-natives", "\nWhen this option is set to true, the effects of native methods \nin the standard Java class library are simulated. ", defaultBool))); 1602 1603 1604 1605 defKey = "p"+" "+"cg.spark"+" "+"simple-edges-bidirectional"; 1606 defKey = defKey.trim(); 1607 1608 if (isInDefList(defKey)) { 1609 defaultBool = getBoolDef(defKey); 1610 } 1611 else { 1612 1613 defaultBool = false; 1614 1615 } 1616 1617 setcgcg_sparksimple_edges_bidirectional_widget(new BooleanOptionWidget(editGroupcgSpark_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Simple Edges Bidirectional", "p", "cg.spark","simple-edges-bidirectional", "\nWhen this option is set to true, all edges connecting variable \n(Green) nodes are made bidirectional, as in Steensgaard's \nanalysis. ", defaultBool))); 1618 1619 1620 1621 defKey = "p"+" "+"cg.spark"+" "+"on-fly-cg"; 1622 defKey = defKey.trim(); 1623 1624 if (isInDefList(defKey)) { 1625 defaultBool = getBoolDef(defKey); 1626 } 1627 else { 1628 1629 defaultBool = true; 1630 1631 } 1632 1633 setcgcg_sparkon_fly_cg_widget(new BooleanOptionWidget(editGroupcgSpark_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("On Fly Call Graph", "p", "cg.spark","on-fly-cg", "\nWhen this option is set to true, the call graph is computed \non-the-fly as points-to information is computed. Otherwise, an \ninitial CHA approximation to the call graph is used. ", defaultBool))); 1634 1635 1636 1637 1638 return editGroupcgSpark_Pointer_Assignment_Graph_Building_Options; 1639 } 1640 1641 1642 1643 private Composite cgSpark_Pointer_Assignment_Graph_Simplification_OptionsCreate(Composite parent) { 1644 String defKey; 1645 String defaultString; 1646 boolean defaultBool = false; 1647 String defaultArray; 1648 1649 Group editGroupcgSpark_Pointer_Assignment_Graph_Simplification_Options = new Group(parent, SWT.NONE); 1650 GridLayout layout = new GridLayout(); 1651 editGroupcgSpark_Pointer_Assignment_Graph_Simplification_Options.setLayout(layout); 1652 1653 editGroupcgSpark_Pointer_Assignment_Graph_Simplification_Options.setText("Spark Pointer Assignment Graph Simplification Options"); 1654 1655 editGroupcgSpark_Pointer_Assignment_Graph_Simplification_Options.setData("id", "cgSpark_Pointer_Assignment_Graph_Simplification_Options"); 1656 1657 String desccgSpark_Pointer_Assignment_Graph_Simplification_Options = ""; 1658 if (desccgSpark_Pointer_Assignment_Graph_Simplification_Options.length() > 0) { 1659 Label descLabelcgSpark_Pointer_Assignment_Graph_Simplification_Options = new Label(editGroupcgSpark_Pointer_Assignment_Graph_Simplification_Options, SWT.WRAP); 1660 descLabelcgSpark_Pointer_Assignment_Graph_Simplification_Options.setText(desccgSpark_Pointer_Assignment_Graph_Simplification_Options); 1661 } 1662 OptionData [] data; 1663 1664 1665 1666 1667 defKey = "p"+" "+"cg.spark"+" "+"simplify-offline"; 1668 defKey = defKey.trim(); 1669 1670 if (isInDefList(defKey)) { 1671 defaultBool = getBoolDef(defKey); 1672 } 1673 else { 1674 1675 defaultBool = false; 1676 1677 } 1678 1679 setcgcg_sparksimplify_offline_widget(new BooleanOptionWidget(editGroupcgSpark_Pointer_Assignment_Graph_Simplification_Options, SWT.NONE, new OptionData("Simplify Offline", "p", "cg.spark","simplify-offline", "\nWhen this option is set to true, variable (Green) nodes which \nform single-entry subgraphs (so they must have the same \npoints-to set) are merged before propagation begins. ", defaultBool))); 1680 1681 1682 1683 defKey = "p"+" "+"cg.spark"+" "+"simplify-sccs"; 1684 defKey = defKey.trim(); 1685 1686 if (isInDefList(defKey)) { 1687 defaultBool = getBoolDef(defKey); 1688 } 1689 else { 1690 1691 defaultBool = false; 1692 1693 } 1694 1695 setcgcg_sparksimplify_sccs_widget(new BooleanOptionWidget(editGroupcgSpark_Pointer_Assignment_Graph_Simplification_Options, SWT.NONE, new OptionData("Simplify SCCs", "p", "cg.spark","simplify-sccs", "\nWhen this option is set to true, variable (Green) nodes which \nform strongly-connected components (so they must have the same \npoints-to set) are merged before propagation begins. ", defaultBool))); 1696 1697 1698 1699 defKey = "p"+" "+"cg.spark"+" "+"ignore-types-for-sccs"; 1700 defKey = defKey.trim(); 1701 1702 if (isInDefList(defKey)) { 1703 defaultBool = getBoolDef(defKey); 1704 } 1705 else { 1706 1707 defaultBool = false; 1708 1709 } 1710 1711 setcgcg_sparkignore_types_for_sccs_widget(new BooleanOptionWidget(editGroupcgSpark_Pointer_Assignment_Graph_Simplification_Options, SWT.NONE, new OptionData("Ignore Types For SCCs", "p", "cg.spark","ignore-types-for-sccs", "\nWhen this option is set to true, when collapsing \nstrongly-connected components, nodes forming SCCs are collapsed \nregardless of their declared type. The collapsed SCC is given \nthe most general type of all the nodes in the component. When \nthis option is set to false, only edges connecting nodes of the \nsame type are considered when detecting SCCs. This option has \nno effect unless simplify-sccs is true. ", defaultBool))); 1712 1713 1714 1715 1716 return editGroupcgSpark_Pointer_Assignment_Graph_Simplification_Options; 1717 } 1718 1719 1720 1721 private Composite cgSpark_Points_To_Set_Flowing_OptionsCreate(Composite parent) { 1722 String defKey; 1723 String defaultString; 1724 boolean defaultBool = false; 1725 String defaultArray; 1726 1727 Group editGroupcgSpark_Points_To_Set_Flowing_Options = new Group(parent, SWT.NONE); 1728 GridLayout layout = new GridLayout(); 1729 editGroupcgSpark_Points_To_Set_Flowing_Options.setLayout(layout); 1730 1731 editGroupcgSpark_Points_To_Set_Flowing_Options.setText("Spark Points-To Set Flowing Options"); 1732 1733 editGroupcgSpark_Points_To_Set_Flowing_Options.setData("id", "cgSpark_Points_To_Set_Flowing_Options"); 1734 1735 String desccgSpark_Points_To_Set_Flowing_Options = ""; 1736 if (desccgSpark_Points_To_Set_Flowing_Options.length() > 0) { 1737 Label descLabelcgSpark_Points_To_Set_Flowing_Options = new Label(editGroupcgSpark_Points_To_Set_Flowing_Options, SWT.WRAP); 1738 descLabelcgSpark_Points_To_Set_Flowing_Options.setText(desccgSpark_Points_To_Set_Flowing_Options); 1739 } 1740 OptionData [] data; 1741 1742 1743 1744 1745 data = new OptionData [] { 1746 1747 new OptionData("Iter", 1748 "iter", 1749 "\nIter is a simple, iterative algorithm, which propagates \neverything until the graph does not change. ", 1750 1751 false), 1752 1753 new OptionData("Worklist", 1754 "worklist", 1755 "\nWorklist is a worklist-based algorithm that tries to do as \nlittle work as possible. This is currently the fastest \nalgorithm. ", 1756 1757 true), 1758 1759 new OptionData("Cycle", 1760 "cycle", 1761 "\nThis algorithm finds cycles in the PAG on-the-fly. It is not yet \nfinished.", 1762 1763 false), 1764 1765 new OptionData("Merge", 1766 "merge", 1767 "\nMerge is an algorithm that merges all concrete field (yellow) \nnodes with their corresponding field reference (red) nodes. This \nalgorithm is not yet finished. ", 1768 1769 false), 1770 1771 new OptionData("Alias", 1772 "alias", 1773 "\nAlias is an alias-edge based algorithm. This algorithm tends to \ntake the least memory for very large problems, because it does \nnot represent explicitly points-to sets of fields of heap \nobjects. ", 1774 1775 false), 1776 1777 new OptionData("None", 1778 "none", 1779 "\nNone means that propagation is not done; the graph is only \nbuilt and simplified. This is useful if an external solver is \nbeing used to perform the propagation. ", 1780 1781 false), 1782 1783 }; 1784 1785 1786 setcgcg_sparkpropagator_widget(new MultiOptionWidget(editGroupcgSpark_Points_To_Set_Flowing_Options, SWT.NONE, data, new OptionData("Propagator", "p", "cg.spark","propagator", "\nThis option tells Spark which propagation algorithm to use. \n"))); 1787 1788 defKey = "p"+" "+"cg.spark"+" "+"propagator"; 1789 defKey = defKey.trim(); 1790 1791 if (isInDefList(defKey)) { 1792 defaultString = getStringDef(defKey); 1793 1794 getcgcg_sparkpropagator_widget().setDef(defaultString); 1795 } 1796 1797 1798 1799 data = new OptionData [] { 1800 1801 new OptionData("Hash set", 1802 "hash", 1803 "\nHash is an implementation based on Java's built-in hash-set. ", 1804 1805 false), 1806 1807 new OptionData("Bit-vector", 1808 "bit", 1809 "\nBit is an implementation using a bit vector. ", 1810 1811 false), 1812 1813 new OptionData("Hybrid", 1814 "hybrid", 1815 "\nHybrid is an implementation that keeps an explicit list of up \nto 16 elements, and switches to a bit-vector when the set gets \nlarger than this. ", 1816 1817 false), 1818 1819 new OptionData("Sorted array", 1820 "array", 1821 "\nArray is an implementation that keeps the elements of the \npoints-to set in a sorted array. Set membership is tested using \nbinary search, and set union and intersection are computed using \nan algorithm based on the merge step from merge sort. ", 1822 1823 false), 1824 1825 new OptionData("Double", 1826 "double", 1827 "\nDouble is an implementation that itself uses a pair of sets for \neach points-to set. The first set in the pair stores new \npointed-to objects that have not yet been propagated, while the \nsecond set stores old pointed-to objects that have been \npropagated and need not be reconsidered. This allows the \npropagation algorithms to be incremental, often speeding them up \nsignificantly. ", 1828 1829 true), 1830 1831 new OptionData("Shared bit-vector", 1832 "shared", 1833 "\nThis is a bit-vector representation, in which duplicate \nbit-vectors are found and stored only once to save memory.", 1834 1835 false), 1836 1837 }; 1838 1839 1840 setcgcg_sparkset_impl_widget(new MultiOptionWidget(editGroupcgSpark_Points_To_Set_Flowing_Options, SWT.NONE, data, new OptionData("Set Implementation", "p", "cg.spark","set-impl", "\nSelect an implementation of points-to sets for Spark to use. "))); 1841 1842 defKey = "p"+" "+"cg.spark"+" "+"set-impl"; 1843 defKey = defKey.trim(); 1844 1845 if (isInDefList(defKey)) { 1846 defaultString = getStringDef(defKey); 1847 1848 getcgcg_sparkset_impl_widget().setDef(defaultString); 1849 } 1850 1851 1852 1853 data = new OptionData [] { 1854 1855 new OptionData("Hash set", 1856 "hash", 1857 "\nHash is an implementation based on Java's built-in hash-set. ", 1858 1859 false), 1860 1861 new OptionData("Bit-vector", 1862 "bit", 1863 "\nBit is an implementation using a bit vector. ", 1864 1865 false), 1866 1867 new OptionData("Hybrid", 1868 "hybrid", 1869 "\nHybrid is an implementation that keeps an explicit list of up \nto 16 elements, and switches to a bit-vector when the set gets \nlarger than this. ", 1870 1871 true), 1872 1873 new OptionData("Sorted array", 1874 "array", 1875 "\nArray is an implementation that keeps the elements of the \npoints-to set in a sorted array. Set membership is tested using \nbinary search, and set union and intersection are computed using \nan algorithm based on the merge step from merge sort. ", 1876 1877 false), 1878 1879 new OptionData("Shared bit-vector", 1880 "shared", 1881 "\nThis is a bit-vector representation, in which duplicate \nbit-vectors are found and stored only once to save memory.", 1882 1883 false), 1884 1885 }; 1886 1887 1888 setcgcg_sparkdouble_set_old_widget(new MultiOptionWidget(editGroupcgSpark_Points_To_Set_Flowing_Options, SWT.NONE, data, new OptionData("Double Set Old", "p", "cg.spark","double-set-old", "\nSelect an implementation for sets of old objects in the double \npoints-to set implementation. This option has no effect unless \nSet Implementation is set to double. "))); 1889 1890 defKey = "p"+" "+"cg.spark"+" "+"double-set-old"; 1891 defKey = defKey.trim(); 1892 1893 if (isInDefList(defKey)) { 1894 defaultString = getStringDef(defKey); 1895 1896 getcgcg_sparkdouble_set_old_widget().setDef(defaultString); 1897 } 1898 1899 1900 1901 data = new OptionData [] { 1902 1903 new OptionData("Hash set", 1904 "hash", 1905 "\nHash is an implementation based on Java's built-in hash-set. ", 1906 1907 false), 1908 1909 new OptionData("Bit-vector", 1910 "bit", 1911 "\nBit is an implementation using a bit vector. ", 1912 1913 false), 1914 1915 new OptionData("Hybrid", 1916 "hybrid", 1917 "\nHybrid is an implementation that keeps an explicit list of up \nto 16 elements, and switches to a bit-vector when the set gets \nlarger than this. ", 1918 1919 true), 1920 1921 new OptionData("Sorted array", 1922 "array", 1923 "\nArray is an implementation that keeps the elements of the \npoints-to set in a sorted array. Set membership is tested using \nbinary search, and set union and intersection are computed using \nan algorithm based on the merge step from merge sort. ", 1924 1925 false), 1926 1927 new OptionData("Shared bit-vector", 1928 "shared", 1929 "\nThis is a bit-vector representation, in which duplicate \nbit-vectors are found and stored only once to save memory.", 1930 1931 false), 1932 1933 }; 1934 1935 1936 setcgcg_sparkdouble_set_new_widget(new MultiOptionWidget(editGroupcgSpark_Points_To_Set_Flowing_Options, SWT.NONE, data, new OptionData("Double Set New", "p", "cg.spark","double-set-new", "\nSelect an implementation for sets of new objects in the double \npoints-to set implementation. This option has no effect unless \nSet Implementation is set to double. "))); 1937 1938 defKey = "p"+" "+"cg.spark"+" "+"double-set-new"; 1939 defKey = defKey.trim(); 1940 1941 if (isInDefList(defKey)) { 1942 defaultString = getStringDef(defKey); 1943 1944 getcgcg_sparkdouble_set_new_widget().setDef(defaultString); 1945 } 1946 1947 1948 1949 1950 return editGroupcgSpark_Points_To_Set_Flowing_Options; 1951 } 1952 1953 1954 1955 private Composite cgSpark_Output_OptionsCreate(Composite parent) { 1956 String defKey; 1957 String defaultString; 1958 boolean defaultBool = false; 1959 String defaultArray; 1960 1961 Group editGroupcgSpark_Output_Options = new Group(parent, SWT.NONE); 1962 GridLayout layout = new GridLayout(); 1963 editGroupcgSpark_Output_Options.setLayout(layout); 1964 1965 editGroupcgSpark_Output_Options.setText("Spark Output Options"); 1966 1967 editGroupcgSpark_Output_Options.setData("id", "cgSpark_Output_Options"); 1968 1969 String desccgSpark_Output_Options = ""; 1970 if (desccgSpark_Output_Options.length() > 0) { 1971 Label descLabelcgSpark_Output_Options = new Label(editGroupcgSpark_Output_Options, SWT.WRAP); 1972 descLabelcgSpark_Output_Options.setText(desccgSpark_Output_Options); 1973 } 1974 OptionData [] data; 1975 1976 1977 1978 1979 defKey = "p"+" "+"cg.spark"+" "+"dump-html"; 1980 defKey = defKey.trim(); 1981 1982 if (isInDefList(defKey)) { 1983 defaultBool = getBoolDef(defKey); 1984 } 1985 else { 1986 1987 defaultBool = false; 1988 1989 } 1990 1991 setcgcg_sparkdump_html_widget(new BooleanOptionWidget(editGroupcgSpark_Output_Options, SWT.NONE, new OptionData("Dump HTML", "p", "cg.spark","dump-html", "\nWhen this option is set to true, a browseable HTML \nrepresentation of the pointer assignment graph is output to a \nfile called pag.jar after the analysis completes. Note that this \nrepresentation is typically very large. ", defaultBool))); 1992 1993 1994 1995 defKey = "p"+" "+"cg.spark"+" "+"dump-pag"; 1996 defKey = defKey.trim(); 1997 1998 if (isInDefList(defKey)) { 1999 defaultBool = getBoolDef(defKey); 2000 } 2001 else { 2002 2003 defaultBool = false; 2004 2005 } 2006 2007 setcgcg_sparkdump_pag_widget(new BooleanOptionWidget(editGroupcgSpark_Output_Options, SWT.NONE, new OptionData("Dump PAG", "p", "cg.spark","dump-pag", "\nWhen this option is set to true, a representation of the \npointer assignment graph suitable for processing with other \nsolvers (such as the BDD-based solver) is output before the \nanalysis begins. ", defaultBool))); 2008 2009 2010 2011 defKey = "p"+" "+"cg.spark"+" "+"dump-solution"; 2012 defKey = defKey.trim(); 2013 2014 if (isInDefList(defKey)) { 2015 defaultBool = getBoolDef(defKey); 2016 } 2017 else { 2018 2019 defaultBool = false; 2020 2021 } 2022 2023 setcgcg_sparkdump_solution_widget(new BooleanOptionWidget(editGroupcgSpark_Output_Options, SWT.NONE, new OptionData("Dump Solution", "p", "cg.spark","dump-solution", "\nWhen this option is set to true, a representation of the \nresulting points-to sets is dumped. The format is similar to \nthat of the Dump PAG option, and is therefore suitable for \ncomparison with the results of other solvers. ", defaultBool))); 2024 2025 2026 2027 defKey = "p"+" "+"cg.spark"+" "+"topo-sort"; 2028 defKey = defKey.trim(); 2029 2030 if (isInDefList(defKey)) { 2031 defaultBool = getBoolDef(defKey); 2032 } 2033 else { 2034 2035 defaultBool = false; 2036 2037 } 2038 2039 setcgcg_sparktopo_sort_widget(new BooleanOptionWidget(editGroupcgSpark_Output_Options, SWT.NONE, new OptionData("Topological Sort", "p", "cg.spark","topo-sort", "\nWhen this option is set to true, the representation dumped by \nthe Dump PAG option is dumped with the variable (green) nodes in \n(pseudo-)topological order. This option has no effect unless \nDump PAG is true. ", defaultBool))); 2040 2041 2042 2043 defKey = "p"+" "+"cg.spark"+" "+"dump-types"; 2044 defKey = defKey.trim(); 2045 2046 if (isInDefList(defKey)) { 2047 defaultBool = getBoolDef(defKey); 2048 } 2049 else { 2050 2051 defaultBool = true; 2052 2053 } 2054 2055 setcgcg_sparkdump_types_widget(new BooleanOptionWidget(editGroupcgSpark_Output_Options, SWT.NONE, new OptionData("Dump Types", "p", "cg.spark","dump-types", "\nWhen this option is set to true, the representation dumped by \nthe Dump PAG option includes type information for all nodes. \nThis option has no effect unless Dump PAG is true. ", defaultBool))); 2056 2057 2058 2059 defKey = "p"+" "+"cg.spark"+" "+"class-method-var"; 2060 defKey = defKey.trim(); 2061 2062 if (isInDefList(defKey)) { 2063 defaultBool = getBoolDef(defKey); 2064 } 2065 else { 2066 2067 defaultBool = true; 2068 2069 } 2070 2071 setcgcg_sparkclass_method_var_widget(new BooleanOptionWidget(editGroupcgSpark_Output_Options, SWT.NONE, new OptionData("Class Method Var", "p", "cg.spark","class-method-var", "\nWhen this option is set to true, the representation dumped by \nthe Dump PAG option represents nodes by numbering each class, \nmethod, and variable within the method separately, rather than \nassigning a single integer to each node. This option has no \neffect unless Dump PAG is true. Setting Class Method Var to \ntrue has the effect of setting Topological Sort to false. \n", defaultBool))); 2072 2073 2074 2075 defKey = "p"+" "+"cg.spark"+" "+"dump-answer"; 2076 defKey = defKey.trim(); 2077 2078 if (isInDefList(defKey)) { 2079 defaultBool = getBoolDef(defKey); 2080 } 2081 else { 2082 2083 defaultBool = false; 2084 2085 } 2086 2087 setcgcg_sparkdump_answer_widget(new BooleanOptionWidget(editGroupcgSpark_Output_Options, SWT.NONE, new OptionData("Dump Answer", "p", "cg.spark","dump-answer", "\nWhen this option is set to true, the computed reaching types \nfor each variable are dumped to a file, so that they can be \ncompared with the results of other analyses (such as the old \nVTA). ", defaultBool))); 2088 2089 2090 2091 defKey = "p"+" "+"cg.spark"+" "+"add-tags"; 2092 defKey = defKey.trim(); 2093 2094 if (isInDefList(defKey)) { 2095 defaultBool = getBoolDef(defKey); 2096 } 2097 else { 2098 2099 defaultBool = false; 2100 2101 } 2102 2103 setcgcg_sparkadd_tags_widget(new BooleanOptionWidget(editGroupcgSpark_Output_Options, SWT.NONE, new OptionData("Add Tags", "p", "cg.spark","add-tags", "\nWhen this option is set to true, the results of the \nanalysis are encoded within tags and printed with the resulting \nJimple code. ", defaultBool))); 2104 2105 2106 2107 defKey = "p"+" "+"cg.spark"+" "+"set-mass"; 2108 defKey = defKey.trim(); 2109 2110 if (isInDefList(defKey)) { 2111 defaultBool = getBoolDef(defKey); 2112 } 2113 else { 2114 2115 defaultBool = false; 2116 2117 } 2118 2119 setcgcg_sparkset_mass_widget(new BooleanOptionWidget(editGroupcgSpark_Output_Options, SWT.NONE, new OptionData("Calculate Set Mass", "p", "cg.spark","set-mass", "\nWhen this option is set to true, Spark computes and prints \nvarious cryptic statistics about the size of the points-to sets \ncomputed. ", defaultBool))); 2120 2121 2122 2123 2124 return editGroupcgSpark_Output_Options; 2125 } 2126 2127 2128 2129 private Composite cgcg_paddleCreate(Composite parent) { 2130 String defKey; 2131 String defaultString; 2132 boolean defaultBool = false; 2133 String defaultArray; 2134 2135 Group editGroupcgcg_paddle = new Group(parent, SWT.NONE); 2136 GridLayout layout = new GridLayout(); 2137 editGroupcgcg_paddle.setLayout(layout); 2138 2139 editGroupcgcg_paddle.setText("Paddle"); 2140 2141 editGroupcgcg_paddle.setData("id", "cgcg_paddle"); 2142 2143 String desccgcg_paddle = "Paddle points-to analysis framework"; 2144 if (desccgcg_paddle.length() > 0) { 2145 Label descLabelcgcg_paddle = new Label(editGroupcgcg_paddle, SWT.WRAP); 2146 descLabelcgcg_paddle.setText(desccgcg_paddle); 2147 } 2148 OptionData [] data; 2149 2150 2151 2152 2153 defKey = "p"+" "+"cg.paddle"+" "+"enabled"; 2154 defKey = defKey.trim(); 2155 2156 if (isInDefList(defKey)) { 2157 defaultBool = getBoolDef(defKey); 2158 } 2159 else { 2160 2161 defaultBool = false; 2162 2163 } 2164 2165 setcgcg_paddleenabled_widget(new BooleanOptionWidget(editGroupcgcg_paddle, SWT.NONE, new OptionData("Enabled", "p", "cg.paddle","enabled", "\n", defaultBool))); 2166 2167 2168 2169 2170 return editGroupcgcg_paddle; 2171 } 2172 2173 2174 2175 private Composite cgPaddle_General_OptionsCreate(Composite parent) { 2176 String defKey; 2177 String defaultString; 2178 boolean defaultBool = false; 2179 String defaultArray; 2180 2181 Group editGroupcgPaddle_General_Options = new Group(parent, SWT.NONE); 2182 GridLayout layout = new GridLayout(); 2183 editGroupcgPaddle_General_Options.setLayout(layout); 2184 2185 editGroupcgPaddle_General_Options.setText("Paddle General Options"); 2186 2187 editGroupcgPaddle_General_Options.setData("id", "cgPaddle_General_Options"); 2188 2189 String desccgPaddle_General_Options = ""; 2190 if (desccgPaddle_General_Options.length() > 0) { 2191 Label descLabelcgPaddle_General_Options = new Label(editGroupcgPaddle_General_Options, SWT.WRAP); 2192 descLabelcgPaddle_General_Options.setText(desccgPaddle_General_Options); 2193 } 2194 OptionData [] data; 2195 2196 2197 2198 2199 defKey = "p"+" "+"cg.paddle"+" "+"verbose"; 2200 defKey = defKey.trim(); 2201 2202 if (isInDefList(defKey)) { 2203 defaultBool = getBoolDef(defKey); 2204 } 2205 else { 2206 2207 defaultBool = false; 2208 2209 } 2210 2211 setcgcg_paddleverbose_widget(new BooleanOptionWidget(editGroupcgPaddle_General_Options, SWT.NONE, new OptionData("Verbose", "p", "cg.paddle","verbose", "\nWhen this option is set to true, Paddle prints detailed \ninformation about its execution. ", defaultBool))); 2212 2213 2214 2215 defKey = "p"+" "+"cg.paddle"+" "+"bdd"; 2216 defKey = defKey.trim(); 2217 2218 if (isInDefList(defKey)) { 2219 defaultBool = getBoolDef(defKey); 2220 } 2221 else { 2222 2223 defaultBool = false; 2224 2225 } 2226 2227 setcgcg_paddlebdd_widget(new BooleanOptionWidget(editGroupcgPaddle_General_Options, SWT.NONE, new OptionData("Use BDDs", "p", "cg.paddle","bdd", "\nCauses \nPaddle to use BDD versions of its components ", defaultBool))); 2228 2229 2230 2231 defKey = "p"+" "+"cg.paddle"+" "+"dynamic-order"; 2232 defKey = defKey.trim(); 2233 2234 if (isInDefList(defKey)) { 2235 defaultBool = getBoolDef(defKey); 2236 } 2237 else { 2238 2239 defaultBool = false; 2240 2241 } 2242 2243 setcgcg_paddledynamic_order_widget(new BooleanOptionWidget(editGroupcgPaddle_General_Options, SWT.NONE, new OptionData("Dynamic reordering", "p", "cg.paddle","dynamic-order", "\nAllows the BDD package \nto perform dynamic variable ordering. ", defaultBool))); 2244 2245 2246 2247 defKey = "p"+" "+"cg.paddle"+" "+"profile"; 2248 defKey = defKey.trim(); 2249 2250 if (isInDefList(defKey)) { 2251 defaultBool = getBoolDef(defKey); 2252 } 2253 else { 2254 2255 defaultBool = false; 2256 2257 } 2258 2259 setcgcg_paddleprofile_widget(new BooleanOptionWidget(editGroupcgPaddle_General_Options, SWT.NONE, new OptionData("Profile", "p", "cg.paddle","profile", "\nTurns on JeddProfiler for profiling BDD operations. ", defaultBool))); 2260 2261 2262 2263 defKey = "p"+" "+"cg.paddle"+" "+"ignore-types"; 2264 defKey = defKey.trim(); 2265 2266 if (isInDefList(defKey)) { 2267 defaultBool = getBoolDef(defKey); 2268 } 2269 else { 2270 2271 defaultBool = false; 2272 2273 } 2274 2275 setcgcg_paddleignore_types_widget(new BooleanOptionWidget(editGroupcgPaddle_General_Options, SWT.NONE, new OptionData("Ignore Types Entirely", "p", "cg.paddle","ignore-types", "\nWhen this option is set to true, all parts of Paddle completely \nignore declared types of variables and casts. ", defaultBool))); 2276 2277 2278 2279 defKey = "p"+" "+"cg.paddle"+" "+"pre-jimplify"; 2280 defKey = defKey.trim(); 2281 2282 if (isInDefList(defKey)) { 2283 defaultBool = getBoolDef(defKey); 2284 } 2285 else { 2286 2287 defaultBool = false; 2288 2289 } 2290 2291 setcgcg_paddlepre_jimplify_widget(new BooleanOptionWidget(editGroupcgPaddle_General_Options, SWT.NONE, new OptionData("Pre Jimplify", "p", "cg.paddle","pre-jimplify", "\nWhen this option is set to true, Paddle converts all available \nmethods to Jimple before starting the points-to analysis. This \nallows the Jimplification time to be separated from the \npoints-to time. However, it increases the total time and memory \nrequirement, because all methods are Jimplified, rather than \nonly those deemed reachable by the points-to analysis. ", defaultBool))); 2292 2293 2294 2295 data = new OptionData [] { 2296 2297 new OptionData("On-the fly call graph", 2298 "ofcg", 2299 "\nPerforms points-to analysis and builds call graph together, \non-the-fly. ", 2300 2301 true), 2302 2303 new OptionData("CHA only", 2304 "cha", 2305 "\nBuilds only a call graph using Class Hieararchy Analysis, and \nperforms no points-to analysis. ", 2306 2307 false), 2308 2309 new OptionData("CHA ahead-of-time call graph", 2310 "cha-aot", 2311 "\nFirst builds a call graph using CHA, then uses the call graph \nin a fixed-call-graph points-to analysis. ", 2312 2313 false), 2314 2315 new OptionData("OFCG-AOT", 2316 "ofcg-aot", 2317 "\nFirst builds a call graph on-the-fly during a points-to \nanalysis, then uses the resulting call graph to perform a second \npoints-to analysis with a fixed call graph. ", 2318 2319 false), 2320 2321 new OptionData("CHA-Context-AOT call graph", 2322 "cha-context-aot", 2323 "\nFirst builds a call graph using CHA, then makes it \ncontext-sensitive using the technique described by Calman and \nZhu in PLDI 04, then uses the call graph in a fixed-call-graph \npoints-to analysis. ", 2324 2325 false), 2326 2327 new OptionData("OFCG-Context-AOT", 2328 "ofcg-context-aot", 2329 "\nFirst builds a call graph on-the-fly during a points-to \nanalysis, then makes it context-sensitive using the technique \ndescribed by Calman and Zhu in PLDI 04, then uses the resulting \ncall graph to perform a second points-to analysis with a fixed \ncall graph. ", 2330 2331 false), 2332 2333 new OptionData("CHA-Context call graph", 2334 "cha-context", 2335 "\nFirst builds a call graph using CHA, then makes it \ncontext-sensitive using the technique described by Calman and \nZhu in PLDI 04. Does not produce points-to information. ", 2336 2337 false), 2338 2339 new OptionData("OFCG-Context", 2340 "ofcg-context", 2341 "\nFirst builds a call graph on-the-fly during a points-to \nanalysis, then makes it context-sensitive using the technique \ndescribed by Calman and Zhu in PLDI 04. Does not perform a \nsubsequent points-to analysis. ", 2342 2343 false), 2344 2345 }; 2346 2347 2348 setcgcg_paddleconf_widget(new MultiOptionWidget(editGroupcgPaddle_General_Options, SWT.NONE, data, new OptionData("Configuration", "p", "cg.paddle","conf", "\nSelects the configuration of points-to analysis and call graph \nconstruction to be used in Paddle. "))); 2349 2350 defKey = "p"+" "+"cg.paddle"+" "+"conf"; 2351 defKey = defKey.trim(); 2352 2353 if (isInDefList(defKey)) { 2354 defaultString = getStringDef(defKey); 2355 2356 getcgcg_paddleconf_widget().setDef(defaultString); 2357 } 2358 2359 2360 2361 data = new OptionData [] { 2362 2363 new OptionData("Select Automatically", 2364 "auto", 2365 "\nWhen the bdd option is true, the BDD-based worklist \nimplementation will be used. When the bdd option is false, the \nTraditional worklist implementation will be used. ", 2366 2367 true), 2368 2369 new OptionData("Traditional", 2370 "trad", 2371 "\nNormal worklist queue implementation ", 2372 2373 false), 2374 2375 new OptionData("BDD", 2376 "bdd", 2377 "\nBDD-based queue implementation ", 2378 2379 false), 2380 2381 new OptionData("Debug", 2382 "debug", 2383 "\nAn implementation of worklists that includes both traditional \nand BDD-based implementations, and signals an error whenever \ntheir contents differ. ", 2384 2385 false), 2386 2387 new OptionData("Trace", 2388 "trace", 2389 "\nA worklist implementation that prints out all tuples added to \nevery worklist. ", 2390 2391 false), 2392 2393 new OptionData("Number Trace", 2394 "numtrace", 2395 "\nA worklist implementation that prints out the number of tuples \nadded to each worklist after each operation. ", 2396 2397 false), 2398 2399 }; 2400 2401 2402 setcgcg_paddleq_widget(new MultiOptionWidget(editGroupcgPaddle_General_Options, SWT.NONE, data, new OptionData("Worklist Implementation", "p", "cg.paddle","q", "\nSelect the implementation of worklists to be used in Paddle. \n"))); 2403 2404 defKey = "p"+" "+"cg.paddle"+" "+"q"; 2405 defKey = defKey.trim(); 2406 2407 if (isInDefList(defKey)) { 2408 defaultString = getStringDef(defKey); 2409 2410 getcgcg_paddleq_widget().setDef(defaultString); 2411 } 2412 2413 2414 2415 data = new OptionData [] { 2416 2417 new OptionData("BuDDy", 2418 "buddy", 2419 "\nUse BuDDy implementation of BDDs. ", 2420 2421 true), 2422 2423 new OptionData("CUDD", 2424 "cudd", 2425 "\nUse CUDD implementation of BDDs. ", 2426 2427 false), 2428 2429 new OptionData("SableJBDD", 2430 "sable", 2431 "\nUse SableJBDD implementation of BDDs.", 2432 2433 false), 2434 2435 new OptionData("JavaBDD", 2436 "javabdd", 2437 "\nUse JavaBDD implementation of BDDs. ", 2438 2439 false), 2440 2441 new OptionData("None", 2442 "none", 2443 "\nDon't use any BDD backend. Any attempted use of BDDs will cause \nPaddle to crash. ", 2444 2445 false), 2446 2447 }; 2448 2449 2450 setcgcg_paddlebackend_widget(new MultiOptionWidget(editGroupcgPaddle_General_Options, SWT.NONE, data, new OptionData("Backend", "p", "cg.paddle","backend", "\nThis option tells Paddle which implementation of BDDs to use. \n"))); 2451 2452 defKey = "p"+" "+"cg.paddle"+" "+"backend"; 2453 defKey = defKey.trim(); 2454 2455 if (isInDefList(defKey)) { 2456 defaultString = getStringDef(defKey); 2457 2458 getcgcg_paddlebackend_widget().setDef(defaultString); 2459 } 2460 2461 2462 2463 defKey = "p"+" "+"cg.paddle"+" "+"order"; 2464 defKey = defKey.trim(); 2465 2466 if (isInDefList(defKey)) { 2467 defaultString = getStringDef(defKey); 2468 } 2469 else { 2470 2471 defaultString = "32"; 2472 2473 } 2474 2475 setcgcg_paddleorder_widget(new StringOptionWidget(editGroupcgPaddle_General_Options, SWT.NONE, new OptionData("Variable ordering", "p", "cg.paddle","order", "\nSelects one of the BDD \nvariable orderings hard-coded in Paddle. ", defaultString))); 2476 2477 2478 2479 return editGroupcgPaddle_General_Options; 2480 } 2481 2482 2483 2484 private Composite cgPaddle_Context_Sensitivity_OptionsCreate(Composite parent) { 2485 String defKey; 2486 String defaultString; 2487 boolean defaultBool = false; 2488 String defaultArray; 2489 2490 Group editGroupcgPaddle_Context_Sensitivity_Options = new Group(parent, SWT.NONE); 2491 GridLayout layout = new GridLayout(); 2492 editGroupcgPaddle_Context_Sensitivity_Options.setLayout(layout); 2493 2494 editGroupcgPaddle_Context_Sensitivity_Options.setText("Paddle Context Sensitivity Options"); 2495 2496 editGroupcgPaddle_Context_Sensitivity_Options.setData("id", "cgPaddle_Context_Sensitivity_Options"); 2497 2498 String desccgPaddle_Context_Sensitivity_Options = ""; 2499 if (desccgPaddle_Context_Sensitivity_Options.length() > 0) { 2500 Label descLabelcgPaddle_Context_Sensitivity_Options = new Label(editGroupcgPaddle_Context_Sensitivity_Options, SWT.WRAP); 2501 descLabelcgPaddle_Context_Sensitivity_Options.setText(desccgPaddle_Context_Sensitivity_Options); 2502 } 2503 OptionData [] data; 2504 2505 2506 2507 2508 defKey = "p"+" "+"cg.paddle"+" "+"context-heap"; 2509 defKey = defKey.trim(); 2510 2511 if (isInDefList(defKey)) { 2512 defaultBool = getBoolDef(defKey); 2513 } 2514 else { 2515 2516 defaultBool = false; 2517 2518 } 2519 2520 setcgcg_paddlecontext_heap_widget(new BooleanOptionWidget(editGroupcgPaddle_Context_Sensitivity_Options, SWT.NONE, new OptionData("Context-sensitive Heap Locations", "p", "cg.paddle","context-heap", "\nWhen this option is set to true, the context-sensitivity level \nthat is set for the context-sensitive call graph and for pointer \nvariables is also used to model heap locations \ncontext-sensitively. When this option is false, heap locations \nare modelled context-insensitively regardless of the \ncontext-sensitivity level. ", defaultBool))); 2521 2522 2523 2524 data = new OptionData [] { 2525 2526 new OptionData("Context-insensitive", 2527 "insens", 2528 "\nBuilds a context-insensitive call graph. ", 2529 2530 true), 2531 2532 new OptionData("1-CFA", 2533 "1cfa", 2534 "\nBuilds a 1-CFA call graph. ", 2535 2536 false), 2537 2538 new OptionData("k-CFA", 2539 "kcfa", 2540 "\nBuilds a k-CFA call graph. ", 2541 2542 false), 2543 2544 new OptionData("Object Sensitive", 2545 "objsens", 2546 "\nBuilds an object-sensitive call graph. ", 2547 2548 false), 2549 2550 new OptionData("k-Object Sensitive", 2551 "kobjsens", 2552 "\nBuilds a context-sensitive call graph where the context is a \nstring of up to k receiver objects. ", 2553 2554 false), 2555 2556 new OptionData("Unique k-Object Sensitive", 2557 "uniqkobjsens", 2558 "\nBuilds a context-sensitive call graph where the context is a \nstring of up to k unique receiver objects. If the receiver of a \ncall already appears in the context string, the context string \nis just reused as is. ", 2559 2560 false), 2561 2562 }; 2563 2564 2565 setcgcg_paddlecontext_widget(new MultiOptionWidget(editGroupcgPaddle_Context_Sensitivity_Options, SWT.NONE, data, new OptionData("Context abstraction", "p", "cg.paddle","context", "\nThis option tells Paddle which level of context-sensitivity to \nuse in constructing the call graph. "))); 2566 2567 defKey = "p"+" "+"cg.paddle"+" "+"context"; 2568 defKey = defKey.trim(); 2569 2570 if (isInDefList(defKey)) { 2571 defaultString = getStringDef(defKey); 2572 2573 getcgcg_paddlecontext_widget().setDef(defaultString); 2574 } 2575 2576 2577 2578 defKey = "p"+" "+"cg.paddle"+" "+"k"; 2579 defKey = defKey.trim(); 2580 2581 if (isInDefList(defKey)) { 2582 defaultString = getStringDef(defKey); 2583 } 2584 else { 2585 2586 defaultString = "2"; 2587 2588 } 2589 2590 setcgcg_paddlek_widget(new StringOptionWidget(editGroupcgPaddle_Context_Sensitivity_Options, SWT.NONE, new OptionData("Context length (k)", "p", "cg.paddle","k", "\nThe maximum length of \ncall string or receiver object string used as context. \n", defaultString))); 2591 2592 2593 2594 return editGroupcgPaddle_Context_Sensitivity_Options; 2595 } 2596 2597 2598 2599 private Composite cgPaddle_Pointer_Assignment_Graph_Building_OptionsCreate(Composite parent) { 2600 String defKey; 2601 String defaultString; 2602 boolean defaultBool = false; 2603 String defaultArray; 2604 2605 Group editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options = new Group(parent, SWT.NONE); 2606 GridLayout layout = new GridLayout(); 2607 editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options.setLayout(layout); 2608 2609 editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options.setText("Paddle Pointer Assignment Graph Building Options"); 2610 2611 editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options.setData("id", "cgPaddle_Pointer_Assignment_Graph_Building_Options"); 2612 2613 String desccgPaddle_Pointer_Assignment_Graph_Building_Options = ""; 2614 if (desccgPaddle_Pointer_Assignment_Graph_Building_Options.length() > 0) { 2615 Label descLabelcgPaddle_Pointer_Assignment_Graph_Building_Options = new Label(editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options, SWT.WRAP); 2616 descLabelcgPaddle_Pointer_Assignment_Graph_Building_Options.setText(desccgPaddle_Pointer_Assignment_Graph_Building_Options); 2617 } 2618 OptionData [] data; 2619 2620 2621 2622 2623 defKey = "p"+" "+"cg.paddle"+" "+"rta"; 2624 defKey = defKey.trim(); 2625 2626 if (isInDefList(defKey)) { 2627 defaultBool = getBoolDef(defKey); 2628 } 2629 else { 2630 2631 defaultBool = false; 2632 2633 } 2634 2635 setcgcg_paddlerta_widget(new BooleanOptionWidget(editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("RTA", "p", "cg.paddle","rta", "\nSetting RTA to true sets types-for-sites to true, and causes \nPaddle to use a single points-to set for all variables, giving \nRapid Type Analysis. ", defaultBool))); 2636 2637 2638 2639 defKey = "p"+" "+"cg.paddle"+" "+"field-based"; 2640 defKey = defKey.trim(); 2641 2642 if (isInDefList(defKey)) { 2643 defaultBool = getBoolDef(defKey); 2644 } 2645 else { 2646 2647 defaultBool = false; 2648 2649 } 2650 2651 setcgcg_paddlefield_based_widget(new BooleanOptionWidget(editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Field Based", "p", "cg.paddle","field-based", "\nWhen this option is set to true, fields are represented by \nvariable (Green) nodes, and the object that the field belongs to \nis ignored (all objects are lumped together), giving a \nfield-based analysis. Otherwise, fields are represented by field \nreference (Red) nodes, and the objects that they belong to are \ndistinguished, giving a field-sensitive analysis. ", defaultBool))); 2652 2653 2654 2655 defKey = "p"+" "+"cg.paddle"+" "+"types-for-sites"; 2656 defKey = defKey.trim(); 2657 2658 if (isInDefList(defKey)) { 2659 defaultBool = getBoolDef(defKey); 2660 } 2661 else { 2662 2663 defaultBool = false; 2664 2665 } 2666 2667 setcgcg_paddletypes_for_sites_widget(new BooleanOptionWidget(editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Types For Sites", "p", "cg.paddle","types-for-sites", "\nWhen this option is set to true, types rather than allocation \nsites are used as the elements of the points-to sets. ", defaultBool))); 2668 2669 2670 2671 defKey = "p"+" "+"cg.paddle"+" "+"merge-stringbuffer"; 2672 defKey = defKey.trim(); 2673 2674 if (isInDefList(defKey)) { 2675 defaultBool = getBoolDef(defKey); 2676 } 2677 else { 2678 2679 defaultBool = true; 2680 2681 } 2682 2683 setcgcg_paddlemerge_stringbuffer_widget(new BooleanOptionWidget(editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Merge String Buffer", "p", "cg.paddle","merge-stringbuffer", "\nWhen this option is set to true, all allocation sites creating \njava.lang.StringBuffer objects are grouped together as a single \nallocation site. ", defaultBool))); 2684 2685 2686 2687 defKey = "p"+" "+"cg.paddle"+" "+"string-constants"; 2688 defKey = defKey.trim(); 2689 2690 if (isInDefList(defKey)) { 2691 defaultBool = getBoolDef(defKey); 2692 } 2693 else { 2694 2695 defaultBool = false; 2696 2697 } 2698 2699 setcgcg_paddlestring_constants_widget(new BooleanOptionWidget(editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Propagate All String Constants", "p", "cg.paddle","string-constants", "\nWhen this option is set to false, Paddle only distinguishes \nstring constants that may be the name of a class loaded \ndynamically using reflection, and all other string constants are \nlumped together into a single string constant node. Setting this \noption to true causes all string constants to be propagated \nindividually. ", defaultBool))); 2700 2701 2702 2703 defKey = "p"+" "+"cg.paddle"+" "+"simulate-natives"; 2704 defKey = defKey.trim(); 2705 2706 if (isInDefList(defKey)) { 2707 defaultBool = getBoolDef(defKey); 2708 } 2709 else { 2710 2711 defaultBool = true; 2712 2713 } 2714 2715 setcgcg_paddlesimulate_natives_widget(new BooleanOptionWidget(editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Simulate Natives", "p", "cg.paddle","simulate-natives", "\nWhen this option is set to true, the effects of native methods \nin the standard Java class library are simulated. ", defaultBool))); 2716 2717 2718 2719 defKey = "p"+" "+"cg.paddle"+" "+"global-nodes-in-natives"; 2720 defKey = defKey.trim(); 2721 2722 if (isInDefList(defKey)) { 2723 defaultBool = getBoolDef(defKey); 2724 } 2725 else { 2726 2727 defaultBool = false; 2728 2729 } 2730 2731 setcgcg_paddleglobal_nodes_in_natives_widget(new BooleanOptionWidget(editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Global Nodes in Simulated Natives", "p", "cg.paddle","global-nodes-in-natives", "\nThe simulations of native methods such as System.arraycopy() \nuse temporary local variable nodes. Setting this switch to true \ncauses them to use global variable nodes instead, reducing \nprecision. The switch exists only to make it possible to measure \nthis effect on precision; there is no other practical reason to \nset it to true. ", defaultBool))); 2732 2733 2734 2735 defKey = "p"+" "+"cg.paddle"+" "+"simple-edges-bidirectional"; 2736 defKey = defKey.trim(); 2737 2738 if (isInDefList(defKey)) { 2739 defaultBool = getBoolDef(defKey); 2740 } 2741 else { 2742 2743 defaultBool = false; 2744 2745 } 2746 2747 setcgcg_paddlesimple_edges_bidirectional_widget(new BooleanOptionWidget(editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Simple Edges Bidirectional", "p", "cg.paddle","simple-edges-bidirectional", "\nWhen this option is set to true, all edges connecting variable \n(Green) nodes are made bidirectional, as in Steensgaard's \nanalysis. ", defaultBool))); 2748 2749 2750 2751 defKey = "p"+" "+"cg.paddle"+" "+"this-edges"; 2752 defKey = defKey.trim(); 2753 2754 if (isInDefList(defKey)) { 2755 defaultBool = getBoolDef(defKey); 2756 } 2757 else { 2758 2759 defaultBool = false; 2760 2761 } 2762 2763 setcgcg_paddlethis_edges_widget(new BooleanOptionWidget(editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("this Pointer Assignment Edge", "p", "cg.paddle","this-edges", "\nWhen constructing a call graph on-the-fly during points-to \nanalysis, Paddle normally propagates only those receivers that \ncause a method to be invoked to the this pointer of the method. \nWhen this option is set to true, however, Paddle instead models \nflow of receivers as an assignnment edge from the receiver at \nthe call site to the this pointer of the method, reducing \nprecision. ", defaultBool))); 2764 2765 2766 2767 defKey = "p"+" "+"cg.paddle"+" "+"precise-newinstance"; 2768 defKey = defKey.trim(); 2769 2770 if (isInDefList(defKey)) { 2771 defaultBool = getBoolDef(defKey); 2772 } 2773 else { 2774 2775 defaultBool = true; 2776 2777 } 2778 2779 setcgcg_paddleprecise_newinstance_widget(new BooleanOptionWidget(editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options, SWT.NONE, new OptionData("Precise newInstance", "p", "cg.paddle","precise-newinstance", "\nNormally, newInstance() calls are treated as if they may \nreturn an object of any type. Setting this option to true \ncauses them to be treated as if they return only objects of \nthe type of some dynamic class. ", defaultBool))); 2780 2781 2782 2783 2784 return editGroupcgPaddle_Pointer_Assignment_Graph_Building_Options; 2785 } 2786 2787 2788 2789 private Composite cgPaddle_Points_To_Set_Flowing_OptionsCreate(Composite parent) { 2790 String defKey; 2791 String defaultString; 2792 boolean defaultBool = false; 2793 String defaultArray; 2794 2795 Group editGroupcgPaddle_Points_To_Set_Flowing_Options = new Group(parent, SWT.NONE); 2796 GridLayout layout = new GridLayout(); 2797 editGroupcgPaddle_Points_To_Set_Flowing_Options.setLayout(layout); 2798 2799 editGroupcgPaddle_Points_To_Set_Flowing_Options.setText("Paddle Points-To Set Flowing Options"); 2800 2801 editGroupcgPaddle_Points_To_Set_Flowing_Options.setData("id", "cgPaddle_Points_To_Set_Flowing_Options"); 2802 2803 String desccgPaddle_Points_To_Set_Flowing_Options = ""; 2804 if (desccgPaddle_Points_To_Set_Flowing_Options.length() > 0) { 2805 Label descLabelcgPaddle_Points_To_Set_Flowing_Options = new Label(editGroupcgPaddle_Points_To_Set_Flowing_Options, SWT.WRAP); 2806 descLabelcgPaddle_Points_To_Set_Flowing_Options.setText(desccgPaddle_Points_To_Set_Flowing_Options); 2807 } 2808 OptionData [] data; 2809 2810 2811 2812 2813 data = new OptionData [] { 2814 2815 new OptionData("Select Automatically", 2816 "auto", 2817 "\nWhen the bdd option is true, the Incremental BDD propagation \nalgorithm will be used. When the bdd option is false, the \nWorklist propagation algorithm will be used. ", 2818 2819 true), 2820 2821 new OptionData("Iter", 2822 "iter", 2823 "\nIter is a simple, iterative algorithm, which propagates \neverything until the graph does not change. ", 2824 2825 false), 2826 2827 new OptionData("Worklist", 2828 "worklist", 2829 "\nWorklist is a worklist-based algorithm that tries to do as \nlittle work as possible. This is currently the fastest \nalgorithm. ", 2830 2831 false), 2832 2833 new OptionData("Alias", 2834 "alias", 2835 "\nAlias is an alias-edge based algorithm. This algorithm tends to \ntake the least memory for very large problems, because it does \nnot represent explicitly points-to sets of fields of heap \nobjects. ", 2836 2837 false), 2838 2839 new OptionData("BDD", 2840 "bdd", 2841 "\nBDD is a propagator that stores points-to sets in binary \ndecision diagrams. ", 2842 2843 false), 2844 2845 new OptionData("Incrementalized BDD", 2846 "incbdd", 2847 "\nA propagator that stores points-to sets in binary decision \ndiagrams, and propagates them incrementally. ", 2848 2849 false), 2850 2851 }; 2852 2853 2854 setcgcg_paddlepropagator_widget(new MultiOptionWidget(editGroupcgPaddle_Points_To_Set_Flowing_Options, SWT.NONE, data, new OptionData("Propagator", "p", "cg.paddle","propagator", "\nThis option tells Paddle which propagation algorithm to use. \n"))); 2855 2856 defKey = "p"+" "+"cg.paddle"+" "+"propagator"; 2857 defKey = defKey.trim(); 2858 2859 if (isInDefList(defKey)) { 2860 defaultString = getStringDef(defKey); 2861 2862 getcgcg_paddlepropagator_widget().setDef(defaultString); 2863 } 2864 2865 2866 2867 data = new OptionData [] { 2868 2869 new OptionData("Hash set", 2870 "hash", 2871 "\nHash is an implementation based on Java's built-in hash-set. ", 2872 2873 false), 2874 2875 new OptionData("Bit-vector", 2876 "bit", 2877 "\nBit is an implementation using a bit vector. ", 2878 2879 false), 2880 2881 new OptionData("Hybrid", 2882 "hybrid", 2883 "\nHybrid is an implementation that keeps an explicit list of up \nto 16 elements, and switches to a bit-vector when the set gets \nlarger than this. ", 2884 2885 false), 2886 2887 new OptionData("Sorted array", 2888 "array", 2889 "\nArray is an implementation that keeps the elements of the \npoints-to set in a sorted array. Set membership is tested using \nbinary search, and set union and intersection are computed using \nan algorithm based on the merge step from merge sort. ", 2890 2891 false), 2892 2893 new OptionData("Double", 2894 "double", 2895 "\nDouble is an implementation that itself uses a pair of sets for \neach points-to set. The first set in the pair stores new \npointed-to objects that have not yet been propagated, while the \nsecond set stores old pointed-to objects that have been \npropagated and need not be reconsidered. This allows the \npropagation algorithms to be incremental, often speeding them up \nsignificantly. ", 2896 2897 true), 2898 2899 }; 2900 2901 2902 setcgcg_paddleset_impl_widget(new MultiOptionWidget(editGroupcgPaddle_Points_To_Set_Flowing_Options, SWT.NONE, data, new OptionData("Set Implementation", "p", "cg.paddle","set-impl", "\nSelect an implementation of points-to sets for Paddle to use. "))); 2903 2904 defKey = "p"+" "+"cg.paddle"+" "+"set-impl"; 2905 defKey = defKey.trim(); 2906 2907 if (isInDefList(defKey)) { 2908 defaultString = getStringDef(defKey); 2909 2910 getcgcg_paddleset_impl_widget().setDef(defaultString); 2911 } 2912 2913 2914 2915 data = new OptionData [] { 2916 2917 new OptionData("Hash set", 2918 "hash", 2919 "\nHash is an implementation based on Java's built-in hash-set. ", 2920 2921 false), 2922 2923 new OptionData("Bit-vector", 2924 "bit", 2925 "\nBit is an implementation using a bit vector. ", 2926 2927 false), 2928 2929 new OptionData("Hybrid", 2930 "hybrid", 2931 "\nHybrid is an implementation that keeps an explicit list of up \nto 16 elements, and switches to a bit-vector when the set gets \nlarger than this. ", 2932 2933 true), 2934 2935 new OptionData("Sorted array", 2936 "array", 2937 "\nArray is an implementation that keeps the elements of the \npoints-to set in a sorted array. Set membership is tested using \nbinary search, and set union and intersection are computed using \nan algorithm based on the merge step from merge sort. ", 2938 2939 false), 2940 2941 }; 2942 2943 2944 setcgcg_paddledouble_set_old_widget(new MultiOptionWidget(editGroupcgPaddle_Points_To_Set_Flowing_Options, SWT.NONE, data, new OptionData("Double Set Old", "p", "cg.paddle","double-set-old", "\nSelect an implementation for sets of old objects in the double \npoints-to set implementation. This option has no effect unless \nSet Implementation is set to double. "))); 2945 2946 defKey = "p"+" "+"cg.paddle"+" "+"double-set-old"; 2947 defKey = defKey.trim(); 2948 2949 if (isInDefList(defKey)) { 2950 defaultString = getStringDef(defKey); 2951 2952 getcgcg_paddledouble_set_old_widget().setDef(defaultString); 2953 } 2954 2955 2956 2957 data = new OptionData [] { 2958 2959 new OptionData("Hash set", 2960 "hash", 2961 "\nHash is an implementation based on Java's built-in hash-set. ", 2962 2963 false), 2964 2965 new OptionData("Bit-vector", 2966 "bit", 2967 "\nBit is an implementation using a bit vector. ", 2968 2969 false), 2970 2971 new OptionData("Hybrid", 2972 "hybrid", 2973 "\nHybrid is an implementation that keeps an explicit list of up \nto 16 elements, and switches to a bit-vector when the set gets \nlarger than this. ", 2974 2975 true), 2976 2977 new OptionData("Sorted array", 2978 "array", 2979 "\nArray is an implementation that keeps the elements of the \npoints-to set in a sorted array. Set membership is tested using \nbinary search, and set union and intersection are computed using \nan algorithm based on the merge step from merge sort. ", 2980 2981 false), 2982 2983 }; 2984 2985 2986 setcgcg_paddledouble_set_new_widget(new MultiOptionWidget(editGroupcgPaddle_Points_To_Set_Flowing_Options, SWT.NONE, data, new OptionData("Double Set New", "p", "cg.paddle","double-set-new", "\nSelect an implementation for sets of new objects in the double \npoints-to set implementation. This option has no effect unless \nSet Implementation is set to double. "))); 2987 2988 defKey = "p"+" "+"cg.paddle"+" "+"double-set-new"; 2989 defKey = defKey.trim(); 2990 2991 if (isInDefList(defKey)) { 2992 defaultString = getStringDef(defKey); 2993 2994 getcgcg_paddledouble_set_new_widget().setDef(defaultString); 2995 } 2996 2997 2998 2999 3000 return editGroupcgPaddle_Points_To_Set_Flowing_Options; 3001 } 3002 3003 3004 3005 private Composite cgPaddle_Output_OptionsCreate(Composite parent) { 3006 String defKey; 3007 String defaultString; 3008 boolean defaultBool = false; 3009 String defaultArray; 3010 3011 Group editGroupcgPaddle_Output_Options = new Group(parent, SWT.NONE); 3012 GridLayout layout = new GridLayout(); 3013 editGroupcgPaddle_Output_Options.setLayout(layout); 3014 3015 editGroupcgPaddle_Output_Options.setText("Paddle Output Options"); 3016 3017 editGroupcgPaddle_Output_Options.setData("id", "cgPaddle_Output_Options"); 3018 3019 String desccgPaddle_Output_Options = ""; 3020 if (desccgPaddle_Output_Options.length() > 0) { 3021 Label descLabelcgPaddle_Output_Options = new Label(editGroupcgPaddle_Output_Options, SWT.WRAP); 3022 descLabelcgPaddle_Output_Options.setText(desccgPaddle_Output_Options); 3023 } 3024 OptionData [] data; 3025 3026 3027 3028 3029 defKey = "p"+" "+"cg.paddle"+" "+"context-counts"; 3030 defKey = defKey.trim(); 3031 3032 if (isInDefList(defKey)) { 3033 defaultBool = getBoolDef(defKey); 3034 } 3035 else { 3036 3037 defaultBool = false; 3038 3039 } 3040 3041 setcgcg_paddlecontext_counts_widget(new BooleanOptionWidget(editGroupcgPaddle_Output_Options, SWT.NONE, new OptionData("Print Context Counts", "p", "cg.paddle","context-counts", "\nCauses Paddle to print the number of contexts for each method \nand call edge, and the number of equivalence classes of contexts \nfor each variable node. ", defaultBool))); 3042 3043 3044 3045 defKey = "p"+" "+"cg.paddle"+" "+"total-context-counts"; 3046 defKey = defKey.trim(); 3047 3048 if (isInDefList(defKey)) { 3049 defaultBool = getBoolDef(defKey); 3050 } 3051 else { 3052 3053 defaultBool = false; 3054 3055 } 3056 3057 setcgcg_paddletotal_context_counts_widget(new BooleanOptionWidget(editGroupcgPaddle_Output_Options, SWT.NONE, new OptionData("Print Context Counts (Totals only)", "p", "cg.paddle","total-context-counts", "\nCauses Paddle to print the number of contexts and number of \ncontext equivalence classes. ", defaultBool))); 3058 3059 3060 3061 defKey = "p"+" "+"cg.paddle"+" "+"method-context-counts"; 3062 defKey = defKey.trim(); 3063 3064 if (isInDefList(defKey)) { 3065 defaultBool = getBoolDef(defKey); 3066 } 3067 else { 3068 3069 defaultBool = false; 3070 3071 } 3072 3073 setcgcg_paddlemethod_context_counts_widget(new BooleanOptionWidget(editGroupcgPaddle_Output_Options, SWT.NONE, new OptionData("Method Context Counts (Totals only)", "p", "cg.paddle","method-context-counts", "\nCauses Paddle to print the number of contexts and number of \ncontext equivalence classes split out by method. Requires \ntotal-context-counts to also be turned on. ", defaultBool))); 3074 3075 3076 3077 defKey = "p"+" "+"cg.paddle"+" "+"set-mass"; 3078 defKey = defKey.trim(); 3079 3080 if (isInDefList(defKey)) { 3081 defaultBool = getBoolDef(defKey); 3082 } 3083 else { 3084 3085 defaultBool = false; 3086 3087 } 3088 3089 setcgcg_paddleset_mass_widget(new BooleanOptionWidget(editGroupcgPaddle_Output_Options, SWT.NONE, new OptionData("Calculate Set Mass", "p", "cg.paddle","set-mass", "\nWhen this option is set to true, Paddle computes and prints \nvarious cryptic statistics about the size of the points-to sets \ncomputed. ", defaultBool))); 3090 3091 3092 3093 defKey = "p"+" "+"cg.paddle"+" "+"number-nodes"; 3094 defKey = defKey.trim(); 3095 3096 if (isInDefList(defKey)) { 3097 defaultBool = getBoolDef(defKey); 3098 } 3099 else { 3100 3101 defaultBool = true; 3102 3103 } 3104 3105 setcgcg_paddlenumber_nodes_widget(new BooleanOptionWidget(editGroupcgPaddle_Output_Options, SWT.NONE, new OptionData("Number nodes", "p", "cg.paddle","number-nodes", "\nWhen printing debug information about nodes, this option causes \nthe node number of each node to be printed. ", defaultBool))); 3106 3107 3108 3109 3110 return editGroupcgPaddle_Output_Options; 3111 } 3112 3113 3114 3115 private Composite wstpCreate(Composite parent) { 3116 String defKey; 3117 String defaultString; 3118 boolean defaultBool = false; 3119 String defaultArray; 3120 3121 Group editGroupwstp = new Group(parent, SWT.NONE); 3122 GridLayout layout = new GridLayout(); 3123 editGroupwstp.setLayout(layout); 3124 3125 editGroupwstp.setText("Whole Shimple Transformation Pack"); 3126 3127 editGroupwstp.setData("id", "wstp"); 3128 3129 String descwstp = "Whole-shimple transformation pack"; 3130 if (descwstp.length() > 0) { 3131 Label descLabelwstp = new Label(editGroupwstp, SWT.WRAP); 3132 descLabelwstp.setText(descwstp); 3133 } 3134 OptionData [] data; 3135 3136 3137 3138 3139 defKey = "p"+" "+"wstp"+" "+"enabled"; 3140 defKey = defKey.trim(); 3141 3142 if (isInDefList(defKey)) { 3143 defaultBool = getBoolDef(defKey); 3144 } 3145 else { 3146 3147 defaultBool = true; 3148 3149 } 3150 3151 setwstpenabled_widget(new BooleanOptionWidget(editGroupwstp, SWT.NONE, new OptionData("Enabled", "p", "wstp","enabled", "\n", defaultBool))); 3152 3153 3154 3155 3156 return editGroupwstp; 3157 } 3158 3159 3160 3161 private Composite wsopCreate(Composite parent) { 3162 String defKey; 3163 String defaultString; 3164 boolean defaultBool = false; 3165 String defaultArray; 3166 3167 Group editGroupwsop = new Group(parent, SWT.NONE); 3168 GridLayout layout = new GridLayout(); 3169 editGroupwsop.setLayout(layout); 3170 3171 editGroupwsop.setText("Whole Shimple Optimization Pack"); 3172 3173 editGroupwsop.setData("id", "wsop"); 3174 3175 String descwsop = "Whole-shimple optimization pack"; 3176 if (descwsop.length() > 0) { 3177 Label descLabelwsop = new Label(editGroupwsop, SWT.WRAP); 3178 descLabelwsop.setText(descwsop); 3179 } 3180 OptionData [] data; 3181 3182 3183 3184 3185 defKey = "p"+" "+"wsop"+" "+"enabled"; 3186 defKey = defKey.trim(); 3187 3188 if (isInDefList(defKey)) { 3189 defaultBool = getBoolDef(defKey); 3190 } 3191 else { 3192 3193 defaultBool = false; 3194 3195 } 3196 3197 setwsopenabled_widget(new BooleanOptionWidget(editGroupwsop, SWT.NONE, new OptionData("Enabled", "p", "wsop","enabled", "\n", defaultBool))); 3198 3199 3200 3201 3202 return editGroupwsop; 3203 } 3204 3205 3206 3207 private Composite wjtpCreate(Composite parent) { 3208 String defKey; 3209 String defaultString; 3210 boolean defaultBool = false; 3211 String defaultArray; 3212 3213 Group editGroupwjtp = new Group(parent, SWT.NONE); 3214 GridLayout layout = new GridLayout(); 3215 editGroupwjtp.setLayout(layout); 3216 3217 editGroupwjtp.setText("Whole-Jimple Transformation Pack"); 3218 3219 editGroupwjtp.setData("id", "wjtp"); 3220 3221 String descwjtp = "Whole-jimple transformation pack"; 3222 if (descwjtp.length() > 0) { 3223 Label descLabelwjtp = new Label(editGroupwjtp, SWT.WRAP); 3224 descLabelwjtp.setText(descwjtp); 3225 } 3226 OptionData [] data; 3227 3228 3229 3230 3231 defKey = "p"+" "+"wjtp"+" "+"enabled"; 3232 defKey = defKey.trim(); 3233 3234 if (isInDefList(defKey)) { 3235 defaultBool = getBoolDef(defKey); 3236 } 3237 else { 3238 3239 defaultBool = true; 3240 3241 } 3242 3243 setwjtpenabled_widget(new BooleanOptionWidget(editGroupwjtp, SWT.NONE, new OptionData("Enabled", "p", "wjtp","enabled", "\n", defaultBool))); 3244 3245 3246 3247 3248 return editGroupwjtp; 3249 } 3250 3251 3252 3253 private Composite wjopCreate(Composite parent) { 3254 String defKey; 3255 String defaultString; 3256 boolean defaultBool = false; 3257 String defaultArray; 3258 3259 Group editGroupwjop = new Group(parent, SWT.NONE); 3260 GridLayout layout = new GridLayout(); 3261 editGroupwjop.setLayout(layout); 3262 3263 editGroupwjop.setText("Whole-Jimple Optimization Pack"); 3264 3265 editGroupwjop.setData("id", "wjop"); 3266 3267 String descwjop = "Whole-jimple optimization pack"; 3268 if (descwjop.length() > 0) { 3269 Label descLabelwjop = new Label(editGroupwjop, SWT.WRAP); 3270 descLabelwjop.setText(descwjop); 3271 } 3272 OptionData [] data; 3273 3274 3275 3276 3277 defKey = "p"+" "+"wjop"+" "+"enabled"; 3278 defKey = defKey.trim(); 3279 3280 if (isInDefList(defKey)) { 3281 defaultBool = getBoolDef(defKey); 3282 } 3283 else { 3284 3285 defaultBool = false; 3286 3287 } 3288 3289 setwjopenabled_widget(new BooleanOptionWidget(editGroupwjop, SWT.NONE, new OptionData("Enabled", "p", "wjop","enabled", "\n", defaultBool))); 3290 3291 3292 3293 3294 return editGroupwjop; 3295 } 3296 3297 3298 3299 private Composite wjopwjop_smbCreate(Composite parent) { 3300 String defKey; 3301 String defaultString; 3302 boolean defaultBool = false; 3303 String defaultArray; 3304 3305 Group editGroupwjopwjop_smb = new Group(parent, SWT.NONE); 3306 GridLayout layout = new GridLayout(); 3307 editGroupwjopwjop_smb.setLayout(layout); 3308 3309 editGroupwjopwjop_smb.setText("Static Method Binder"); 3310 3311 editGroupwjopwjop_smb.setData("id", "wjopwjop_smb"); 3312 3313 String descwjopwjop_smb = "Static method binder: Devirtualizes monomorphic calls"; 3314 if (descwjopwjop_smb.length() > 0) { 3315 Label descLabelwjopwjop_smb = new Label(editGroupwjopwjop_smb, SWT.WRAP); 3316 descLabelwjopwjop_smb.setText(descwjopwjop_smb); 3317 } 3318 OptionData [] data; 3319 3320 3321 3322 3323 defKey = "p"+" "+"wjop.smb"+" "+"enabled"; 3324 defKey = defKey.trim(); 3325 3326 if (isInDefList(defKey)) { 3327 defaultBool = getBoolDef(defKey); 3328 } 3329 else { 3330 3331 defaultBool = false; 3332 3333 } 3334 3335 setwjopwjop_smbenabled_widget(new BooleanOptionWidget(editGroupwjopwjop_smb, SWT.NONE, new OptionData("Enabled", "p", "wjop.smb","enabled", "\n", defaultBool))); 3336 3337 3338 3339 defKey = "p"+" "+"wjop.smb"+" "+"insert-null-checks"; 3340 defKey = defKey.trim(); 3341 3342 if (isInDefList(defKey)) { 3343 defaultBool = getBoolDef(defKey); 3344 } 3345 else { 3346 3347 defaultBool = true; 3348 3349 } 3350 3351 setwjopwjop_smbinsert_null_checks_widget(new BooleanOptionWidget(editGroupwjopwjop_smb, SWT.NONE, new OptionData("Insert Null Checks", "p", "wjop.smb","insert-null-checks", "\nInsert a check that, before invoking the static copy of the \ntarget method, throws a NullPointerException if the receiver \nobject is null. This ensures that static method binding does \nnot eliminate exceptions which would have occurred in its \nabsence. ", defaultBool))); 3352 3353 3354 3355 defKey = "p"+" "+"wjop.smb"+" "+"insert-redundant-casts"; 3356 defKey = defKey.trim(); 3357 3358 if (isInDefList(defKey)) { 3359 defaultBool = getBoolDef(defKey); 3360 } 3361 else { 3362 3363 defaultBool = true; 3364 3365 } 3366 3367 setwjopwjop_smbinsert_redundant_casts_widget(new BooleanOptionWidget(editGroupwjopwjop_smb, SWT.NONE, new OptionData("Insert Redundant Casts", "p", "wjop.smb","insert-redundant-casts", "\nInsert extra casts for the Java bytecode verifier. If the \ntarget method uses its this parameter, a reference to the \nreceiver object must be passed to the static copy of the target \nmethod. The verifier may complain if the declared type of the \nreceiver parameter does not match the type implementing the \ntarget method. Say, for example, that Singer is an interface \ndeclaring the sing() method and that the call graph shows all \nreceiver objects at a particular call site, singer.sing() (with \nsinger declared as a Singer) are in fact Bird objects (Bird \nbeing a class that implements Singer). The virtual call \nsinger.sing() is effectively replaced with the static call \nBird.staticsing(singer). Bird.staticsing() may perform \noperations on its parameter which are only allowed on Birds, \nrather than Singers. The Insert Redundant Casts option inserts \na cast of singer to the Bird type, to prevent complaints from \nthe verifier.", defaultBool))); 3368 3369 3370 3371 data = new OptionData [] { 3372 3373 new OptionData("Unsafe", 3374 "unsafe", 3375 "\nModify the visibility on code so that all inlining is \npermitted. ", 3376 3377 true), 3378 3379 new OptionData("Safe", 3380 "safe", 3381 "\nPreserve the exact meaning of the analyzed program. ", 3382 3383 false), 3384 3385 new OptionData("None", 3386 "none", 3387 "\nChange no modifiers whatsoever. ", 3388 3389 false), 3390 3391 }; 3392 3393 3394 setwjopwjop_smballowed_modifier_changes_widget(new MultiOptionWidget(editGroupwjopwjop_smb, SWT.NONE, data, new OptionData("Allowed Modifier Changes", "p", "wjop.smb","allowed-modifier-changes", "\nSpecify which changes in visibility modifiers are allowed. "))); 3395 3396 defKey = "p"+" "+"wjop.smb"+" "+"allowed-modifier-changes"; 3397 defKey = defKey.trim(); 3398 3399 if (isInDefList(defKey)) { 3400 defaultString = getStringDef(defKey); 3401 3402 getwjopwjop_smballowed_modifier_changes_widget().setDef(defaultString); 3403 } 3404 3405 3406 3407 3408 return editGroupwjopwjop_smb; 3409 } 3410 3411 3412 3413 private Composite wjopwjop_siCreate(Composite parent) { 3414 String defKey; 3415 String defaultString; 3416 boolean defaultBool = false; 3417 String defaultArray; 3418 3419 Group editGroupwjopwjop_si = new Group(parent, SWT.NONE); 3420 GridLayout layout = new GridLayout(); 3421 editGroupwjopwjop_si.setLayout(layout); 3422 3423 editGroupwjopwjop_si.setText("Static Inliner"); 3424 3425 editGroupwjopwjop_si.setData("id", "wjopwjop_si"); 3426 3427 String descwjopwjop_si = "Static inliner: inlines monomorphic calls"; 3428 if (descwjopwjop_si.length() > 0) { 3429 Label descLabelwjopwjop_si = new Label(editGroupwjopwjop_si, SWT.WRAP); 3430 descLabelwjopwjop_si.setText(descwjopwjop_si); 3431 } 3432 OptionData [] data; 3433 3434 3435 3436 3437 defKey = "p"+" "+"wjop.si"+" "+"enabled"; 3438 defKey = defKey.trim(); 3439 3440 if (isInDefList(defKey)) { 3441 defaultBool = getBoolDef(defKey); 3442 } 3443 else { 3444 3445 defaultBool = true; 3446 3447 } 3448 3449 setwjopwjop_sienabled_widget(new BooleanOptionWidget(editGroupwjopwjop_si, SWT.NONE, new OptionData("Enabled", "p", "wjop.si","enabled", "\n", defaultBool))); 3450 3451 3452 3453 defKey = "p"+" "+"wjop.si"+" "+"rerun-jb"; 3454 defKey = defKey.trim(); 3455 3456 if (isInDefList(defKey)) { 3457 defaultBool = getBoolDef(defKey); 3458 } 3459 else { 3460 3461 defaultBool = true; 3462 3463 } 3464 3465 setwjopwjop_sirerun_jb_widget(new BooleanOptionWidget(editGroupwjopwjop_si, SWT.NONE, new OptionData("Reconstruct Jimple body after inlining", "p", "wjop.si","rerun-jb", "\nWhen a method with array parameters is inlined, its variables \nmay need to be assigned different types than they had in the \noriginal method to produce compilable code. When this option is \nset, Soot re-runs the Jimple Body pack on each method body which \nhas had another method inlined into it so that the typing \nalgorithm can reassign the types. ", defaultBool))); 3466 3467 3468 3469 defKey = "p"+" "+"wjop.si"+" "+"insert-null-checks"; 3470 defKey = defKey.trim(); 3471 3472 if (isInDefList(defKey)) { 3473 defaultBool = getBoolDef(defKey); 3474 } 3475 else { 3476 3477 defaultBool = true; 3478 3479 } 3480 3481 setwjopwjop_siinsert_null_checks_widget(new BooleanOptionWidget(editGroupwjopwjop_si, SWT.NONE, new OptionData("Insert Null Checks", "p", "wjop.si","insert-null-checks", "\nInsert, before the inlined body of the target method, a check \nthat throws a NullPointerException if the receiver object is \nnull. This ensures that inlining will not eliminate exceptions \nwhich would have occurred in its absence. ", defaultBool))); 3482 3483 3484 3485 defKey = "p"+" "+"wjop.si"+" "+"insert-redundant-casts"; 3486 defKey = defKey.trim(); 3487 3488 if (isInDefList(defKey)) { 3489 defaultBool = getBoolDef(defKey); 3490 } 3491 else { 3492 3493 defaultBool = true; 3494 3495 } 3496 3497 setwjopwjop_siinsert_redundant_casts_widget(new BooleanOptionWidget(editGroupwjopwjop_si, SWT.NONE, new OptionData("Insert Redundant Casts", "p", "wjop.si","insert-redundant-casts", "\nInsert extra casts for the Java bytecode verifier. The \nverifier may complain if the inlined method uses this and the \ndeclared type of the receiver of the call being inlined is \ndifferent from the type implementing the target method being \ninlined. Say, for example, that Singer is an interface declaring \nthe sing() method and that the call graph shows that all \nreceiver objects at a particular call site, singer.sing() (with \nsinger declared as a Singer) are in fact Bird objects (Bird \nbeing a class that implements Singer). The implementation of \nBird.sing() may perform operations on this which are only \nallowed on Birds, rather than Singers. The Insert Redundant \nCasts option ensures that this cannot lead to verification \nerrors, by inserting a cast of bird to the Bird type before \ninlining the body of Bird.sing().", defaultBool))); 3498 3499 3500 3501 data = new OptionData [] { 3502 3503 new OptionData("Unsafe", 3504 "unsafe", 3505 "\nModify the visibility on code so that all inlining is \npermitted. ", 3506 3507 true), 3508 3509 new OptionData("Safe", 3510 "safe", 3511 "\nPreserve the exact meaning of the analyzed program. ", 3512 3513 false), 3514 3515 new OptionData("None", 3516 "none", 3517 "\nChange no modifiers whatsoever. ", 3518 3519 false), 3520 3521 }; 3522 3523 3524 setwjopwjop_siallowed_modifier_changes_widget(new MultiOptionWidget(editGroupwjopwjop_si, SWT.NONE, data, new OptionData("Allowed Modifier Changes", "p", "wjop.si","allowed-modifier-changes", "\nSpecify which changes in visibility modifiers are allowed. "))); 3525 3526 defKey = "p"+" "+"wjop.si"+" "+"allowed-modifier-changes"; 3527 defKey = defKey.trim(); 3528 3529 if (isInDefList(defKey)) { 3530 defaultString = getStringDef(defKey); 3531 3532 getwjopwjop_siallowed_modifier_changes_widget().setDef(defaultString); 3533 } 3534 3535 3536 3537 defKey = "p"+" "+"wjop.si"+" "+"expansion-factor"; 3538 defKey = defKey.trim(); 3539 3540 if (isInDefList(defKey)) { 3541 defaultString = getStringDef(defKey); 3542 } 3543 else { 3544 3545 defaultString = "3"; 3546 3547 } 3548 3549 setwjopwjop_siexpansion_factor_widget(new StringOptionWidget(editGroupwjopwjop_si, SWT.NONE, new OptionData("Expansion Factor", "p", "wjop.si","expansion-factor", "\nDetermines the maximum allowed expansion of a method. Inlining \nwill cause the method to grow by a factor of no more than the \nExpansion Factor. ", defaultString))); 3550 3551 3552 defKey = "p"+" "+"wjop.si"+" "+"max-container-size"; 3553 defKey = defKey.trim(); 3554 3555 if (isInDefList(defKey)) { 3556 defaultString = getStringDef(defKey); 3557 } 3558 else { 3559 3560 defaultString = "5000"; 3561 3562 } 3563 3564 setwjopwjop_simax_container_size_widget(new StringOptionWidget(editGroupwjopwjop_si, SWT.NONE, new OptionData("Max Container Size", "p", "wjop.si","max-container-size", "\nDetermines the maximum number of Jimple statements for a \ncontainer method. If a method has more than this number of \nJimple statements, then no methods will be inlined into it. \n", defaultString))); 3565 3566 3567 defKey = "p"+" "+"wjop.si"+" "+"max-inlinee-size"; 3568 defKey = defKey.trim(); 3569 3570 if (isInDefList(defKey)) { 3571 defaultString = getStringDef(defKey); 3572 } 3573 else { 3574 3575 defaultString = "20"; 3576 3577 } 3578 3579 setwjopwjop_simax_inlinee_size_widget(new StringOptionWidget(editGroupwjopwjop_si, SWT.NONE, new OptionData("Max Inlinee Size", "p", "wjop.si","max-inlinee-size", "\nDetermines the maximum number of Jimple statements for an \ninlinee method. If a method has more than this number of Jimple \nstatements, then it will not be inlined into other methods. \n", defaultString))); 3580 3581 3582 3583 return editGroupwjopwjop_si; 3584 } 3585 3586 3587 3588 private Composite wjapCreate(Composite parent) { 3589 String defKey; 3590 String defaultString; 3591 boolean defaultBool = false; 3592 String defaultArray; 3593 3594 Group editGroupwjap = new Group(parent, SWT.NONE); 3595 GridLayout layout = new GridLayout(); 3596 editGroupwjap.setLayout(layout); 3597 3598 editGroupwjap.setText("Whole-Jimple Annotation Pack"); 3599 3600 editGroupwjap.setData("id", "wjap"); 3601 3602 String descwjap = "Whole-jimple annotation pack: adds interprocedural tags"; 3603 if (descwjap.length() > 0) { 3604 Label descLabelwjap = new Label(editGroupwjap, SWT.WRAP); 3605 descLabelwjap.setText(descwjap); 3606 } 3607 OptionData [] data; 3608 3609 3610 3611 3612 defKey = "p"+" "+"wjap"+" "+"enabled"; 3613 defKey = defKey.trim(); 3614 3615 if (isInDefList(defKey)) { 3616 defaultBool = getBoolDef(defKey); 3617 } 3618 else { 3619 3620 defaultBool = true; 3621 3622 } 3623 3624 setwjapenabled_widget(new BooleanOptionWidget(editGroupwjap, SWT.NONE, new OptionData("Enabled", "p", "wjap","enabled", "\n", defaultBool))); 3625 3626 3627 3628 3629 return editGroupwjap; 3630 } 3631 3632 3633 3634 private Composite wjapwjap_raCreate(Composite parent) { 3635 String defKey; 3636 String defaultString; 3637 boolean defaultBool = false; 3638 String defaultArray; 3639 3640 Group editGroupwjapwjap_ra = new Group(parent, SWT.NONE); 3641 GridLayout layout = new GridLayout(); 3642 editGroupwjapwjap_ra.setLayout(layout); 3643 3644 editGroupwjapwjap_ra.setText("Rectangular Array Finder"); 3645 3646 editGroupwjapwjap_ra.setData("id", "wjapwjap_ra"); 3647 3648 String descwjapwjap_ra = "Rectangular array finder"; 3649 if (descwjapwjap_ra.length() > 0) { 3650 Label descLabelwjapwjap_ra = new Label(editGroupwjapwjap_ra, SWT.WRAP); 3651 descLabelwjapwjap_ra.setText(descwjapwjap_ra); 3652 } 3653 OptionData [] data; 3654 3655 3656 3657 3658 defKey = "p"+" "+"wjap.ra"+" "+"enabled"; 3659 defKey = defKey.trim(); 3660 3661 if (isInDefList(defKey)) { 3662 defaultBool = getBoolDef(defKey); 3663 } 3664 else { 3665 3666 defaultBool = false; 3667 3668 } 3669 3670 setwjapwjap_raenabled_widget(new BooleanOptionWidget(editGroupwjapwjap_ra, SWT.NONE, new OptionData("Enabled", "p", "wjap.ra","enabled", "\n", defaultBool))); 3671 3672 3673 3674 3675 return editGroupwjapwjap_ra; 3676 } 3677 3678 3679 3680 private Composite wjapwjap_umtCreate(Composite parent) { 3681 String defKey; 3682 String defaultString; 3683 boolean defaultBool = false; 3684 String defaultArray; 3685 3686 Group editGroupwjapwjap_umt = new Group(parent, SWT.NONE); 3687 GridLayout layout = new GridLayout(); 3688 editGroupwjapwjap_umt.setLayout(layout); 3689 3690 editGroupwjapwjap_umt.setText("Unreachable Method Tagger"); 3691 3692 editGroupwjapwjap_umt.setData("id", "wjapwjap_umt"); 3693 3694 String descwjapwjap_umt = "Tags all unreachable methods"; 3695 if (descwjapwjap_umt.length() > 0) { 3696 Label descLabelwjapwjap_umt = new Label(editGroupwjapwjap_umt, SWT.WRAP); 3697 descLabelwjapwjap_umt.setText(descwjapwjap_umt); 3698 } 3699 OptionData [] data; 3700 3701 3702 3703 3704 defKey = "p"+" "+"wjap.umt"+" "+"enabled"; 3705 defKey = defKey.trim(); 3706 3707 if (isInDefList(defKey)) { 3708 defaultBool = getBoolDef(defKey); 3709 } 3710 else { 3711 3712 defaultBool = false; 3713 3714 } 3715 3716 setwjapwjap_umtenabled_widget(new BooleanOptionWidget(editGroupwjapwjap_umt, SWT.NONE, new OptionData("Enabled", "p", "wjap.umt","enabled", "\n", defaultBool))); 3717 3718 3719 3720 3721 return editGroupwjapwjap_umt; 3722 } 3723 3724 3725 3726 private Composite wjapwjap_uftCreate(Composite parent) { 3727 String defKey; 3728 String defaultString; 3729 boolean defaultBool = false; 3730 String defaultArray; 3731 3732 Group editGroupwjapwjap_uft = new Group(parent, SWT.NONE); 3733 GridLayout layout = new GridLayout(); 3734 editGroupwjapwjap_uft.setLayout(layout); 3735 3736 editGroupwjapwjap_uft.setText("Unreachable Fields Tagger"); 3737 3738 editGroupwjapwjap_uft.setData("id", "wjapwjap_uft"); 3739 3740 String descwjapwjap_uft = "Tags all unreachable fields"; 3741 if (descwjapwjap_uft.length() > 0) { 3742 Label descLabelwjapwjap_uft = new Label(editGroupwjapwjap_uft, SWT.WRAP); 3743 descLabelwjapwjap_uft.setText(descwjapwjap_uft); 3744 } 3745 OptionData [] data; 3746 3747 3748 3749 3750 defKey = "p"+" "+"wjap.uft"+" "+"enabled"; 3751 defKey = defKey.trim(); 3752 3753 if (isInDefList(defKey)) { 3754 defaultBool = getBoolDef(defKey); 3755 } 3756 else { 3757 3758 defaultBool = false; 3759 3760 } 3761 3762 setwjapwjap_uftenabled_widget(new BooleanOptionWidget(editGroupwjapwjap_uft, SWT.NONE, new OptionData("Enabled", "p", "wjap.uft","enabled", "\n", defaultBool))); 3763 3764 3765 3766 3767 return editGroupwjapwjap_uft; 3768 } 3769 3770 3771 3772 private Composite wjapwjap_tqtCreate(Composite parent) { 3773 String defKey; 3774 String defaultString; 3775 boolean defaultBool = false; 3776 String defaultArray; 3777 3778 Group editGroupwjapwjap_tqt = new Group(parent, SWT.NONE); 3779 GridLayout layout = new GridLayout(); 3780 editGroupwjapwjap_tqt.setLayout(layout); 3781 3782 editGroupwjapwjap_tqt.setText("Tightest Qualifiers Tagger"); 3783 3784 editGroupwjapwjap_tqt.setData("id", "wjapwjap_tqt"); 3785 3786 String descwjapwjap_tqt = "Tags all qualifiers that could be tighter"; 3787 if (descwjapwjap_tqt.length() > 0) { 3788 Label descLabelwjapwjap_tqt = new Label(editGroupwjapwjap_tqt, SWT.WRAP); 3789 descLabelwjapwjap_tqt.setText(descwjapwjap_tqt); 3790 } 3791 OptionData [] data; 3792 3793 3794 3795 3796 defKey = "p"+" "+"wjap.tqt"+" "+"enabled"; 3797 defKey = defKey.trim(); 3798 3799 if (isInDefList(defKey)) { 3800 defaultBool = getBoolDef(defKey); 3801 } 3802 else { 3803 3804 defaultBool = false; 3805 3806 } 3807 3808 setwjapwjap_tqtenabled_widget(new BooleanOptionWidget(editGroupwjapwjap_tqt, SWT.NONE, new OptionData("Enabled", "p", "wjap.tqt","enabled", "\n", defaultBool))); 3809 3810 3811 3812 3813 return editGroupwjapwjap_tqt; 3814 } 3815 3816 3817 3818 private Composite wjapwjap_cggCreate(Composite parent) { 3819 String defKey; 3820 String defaultString; 3821 boolean defaultBool = false; 3822 String defaultArray; 3823 3824 Group editGroupwjapwjap_cgg = new Group(parent, SWT.NONE); 3825 GridLayout layout = new GridLayout(); 3826 editGroupwjapwjap_cgg.setLayout(layout); 3827 3828 editGroupwjapwjap_cgg.setText("Call Graph Grapher"); 3829 3830 editGroupwjapwjap_cgg.setData("id", "wjapwjap_cgg"); 3831 3832 String descwjapwjap_cgg = "Creates graphical call graph."; 3833 if (descwjapwjap_cgg.length() > 0) { 3834 Label descLabelwjapwjap_cgg = new Label(editGroupwjapwjap_cgg, SWT.WRAP); 3835 descLabelwjapwjap_cgg.setText(descwjapwjap_cgg); 3836 } 3837 OptionData [] data; 3838 3839 3840 3841 3842 defKey = "p"+" "+"wjap.cgg"+" "+"enabled"; 3843 defKey = defKey.trim(); 3844 3845 if (isInDefList(defKey)) { 3846 defaultBool = getBoolDef(defKey); 3847 } 3848 else { 3849 3850 defaultBool = false; 3851 3852 } 3853 3854 setwjapwjap_cggenabled_widget(new BooleanOptionWidget(editGroupwjapwjap_cgg, SWT.NONE, new OptionData("Enabled", "p", "wjap.cgg","enabled", "\n", defaultBool))); 3855 3856 3857 3858 defKey = "p"+" "+"wjap.cgg"+" "+"show-lib-meths"; 3859 defKey = defKey.trim(); 3860 3861 if (isInDefList(defKey)) { 3862 defaultBool = getBoolDef(defKey); 3863 } 3864 else { 3865 3866 defaultBool = false; 3867 3868 } 3869 3870 setwjapwjap_cggshow_lib_meths_widget(new BooleanOptionWidget(editGroupwjapwjap_cgg, SWT.NONE, new OptionData("Show Library Methods", "p", "wjap.cgg","show-lib-meths", "\n", defaultBool))); 3871 3872 3873 3874 3875 return editGroupwjapwjap_cgg; 3876 } 3877 3878 3879 3880 private Composite wjapwjap_purityCreate(Composite parent) { 3881 String defKey; 3882 String defaultString; 3883 boolean defaultBool = false; 3884 String defaultArray; 3885 3886 Group editGroupwjapwjap_purity = new Group(parent, SWT.NONE); 3887 GridLayout layout = new GridLayout(); 3888 editGroupwjapwjap_purity.setLayout(layout); 3889 3890 editGroupwjapwjap_purity.setText("Purity Analysis [AM]"); 3891 3892 editGroupwjapwjap_purity.setData("id", "wjapwjap_purity"); 3893 3894 String descwjapwjap_purity = "Emit purity attributes"; 3895 if (descwjapwjap_purity.length() > 0) { 3896 Label descLabelwjapwjap_purity = new Label(editGroupwjapwjap_purity, SWT.WRAP); 3897 descLabelwjapwjap_purity.setText(descwjapwjap_purity); 3898 } 3899 OptionData [] data; 3900 3901 3902 3903 3904 defKey = "p"+" "+"wjap.purity"+" "+"enabled"; 3905 defKey = defKey.trim(); 3906 3907 if (isInDefList(defKey)) { 3908 defaultBool = getBoolDef(defKey); 3909 } 3910 else { 3911 3912 defaultBool = false; 3913 3914 } 3915 3916 setwjapwjap_purityenabled_widget(new BooleanOptionWidget(editGroupwjapwjap_purity, SWT.NONE, new OptionData("Enabled", "p", "wjap.purity","enabled", "\n", defaultBool))); 3917 3918 3919 3920 defKey = "p"+" "+"wjap.purity"+" "+"dump-summaries"; 3921 defKey = defKey.trim(); 3922 3923 if (isInDefList(defKey)) { 3924 defaultBool = getBoolDef(defKey); 3925 } 3926 else { 3927 3928 defaultBool = true; 3929 3930 } 3931 3932 setwjapwjap_puritydump_summaries_widget(new BooleanOptionWidget(editGroupwjapwjap_purity, SWT.NONE, new OptionData("Dump one .dot files for each method summary", "p", "wjap.purity","dump-summaries", "\n", defaultBool))); 3933 3934 3935 3936 defKey = "p"+" "+"wjap.purity"+" "+"dump-cg"; 3937 defKey = defKey.trim(); 3938 3939 if (isInDefList(defKey)) { 3940 defaultBool = getBoolDef(defKey); 3941 } 3942 else { 3943 3944 defaultBool = false; 3945 3946 } 3947 3948 setwjapwjap_puritydump_cg_widget(new BooleanOptionWidget(editGroupwjapwjap_purity, SWT.NONE, new OptionData("Dump .dot call-graph annotated with method summaries (huge)", "p", "wjap.purity","dump-cg", "\n", defaultBool))); 3949 3950 3951 3952 defKey = "p"+" "+"wjap.purity"+" "+"dump-intra"; 3953 defKey = defKey.trim(); 3954 3955 if (isInDefList(defKey)) { 3956 defaultBool = getBoolDef(defKey); 3957 } 3958 else { 3959 3960 defaultBool = false; 3961 3962 } 3963 3964 setwjapwjap_puritydump_intra_widget(new BooleanOptionWidget(editGroupwjapwjap_purity, SWT.NONE, new OptionData("Dump one .dot for each intra-procedural method analysis (long)", "p", "wjap.purity","dump-intra", "\n", defaultBool))); 3965 3966 3967 3968 defKey = "p"+" "+"wjap.purity"+" "+"print"; 3969 defKey = defKey.trim(); 3970 3971 if (isInDefList(defKey)) { 3972 defaultBool = getBoolDef(defKey); 3973 } 3974 else { 3975 3976 defaultBool = true; 3977 3978 } 3979 3980 setwjapwjap_purityprint_widget(new BooleanOptionWidget(editGroupwjapwjap_purity, SWT.NONE, new OptionData("Print analysis results", "p", "wjap.purity","print", "\n", defaultBool))); 3981 3982 3983 3984 defKey = "p"+" "+"wjap.purity"+" "+"verbose"; 3985 defKey = defKey.trim(); 3986 3987 if (isInDefList(defKey)) { 3988 defaultBool = getBoolDef(defKey); 3989 } 3990 else { 3991 3992 defaultBool = false; 3993 3994 } 3995 3996 setwjapwjap_purityverbose_widget(new BooleanOptionWidget(editGroupwjapwjap_purity, SWT.NONE, new OptionData("Be (quite) verbose", "p", "wjap.purity","verbose", "\n", defaultBool))); 3997 3998 3999 4000 4001 return editGroupwjapwjap_purity; 4002 } 4003 4004 4005 4006 private Composite shimpleCreate(Composite parent) { 4007 String defKey; 4008 String defaultString; 4009 boolean defaultBool = false; 4010 String defaultArray; 4011 4012 Group editGroupshimple = new Group(parent, SWT.NONE); 4013 GridLayout layout = new GridLayout(); 4014 editGroupshimple.setLayout(layout); 4015 4016 editGroupshimple.setText("Shimple Control"); 4017 4018 editGroupshimple.setData("id", "shimple"); 4019 4020 String descshimple = "Sets parameters for Shimple SSA form"; 4021 if (descshimple.length() > 0) { 4022 Label descLabelshimple = new Label(editGroupshimple, SWT.WRAP); 4023 descLabelshimple.setText(descshimple); 4024 } 4025 OptionData [] data; 4026 4027 4028 4029 4030 defKey = "p"+" "+"shimple"+" "+"enabled"; 4031 defKey = defKey.trim(); 4032 4033 if (isInDefList(defKey)) { 4034 defaultBool = getBoolDef(defKey); 4035 } 4036 else { 4037 4038 defaultBool = true; 4039 4040 } 4041 4042 setshimpleenabled_widget(new BooleanOptionWidget(editGroupshimple, SWT.NONE, new OptionData("Enabled", "p", "shimple","enabled", "\n", defaultBool))); 4043 4044 4045 4046 defKey = "p"+" "+"shimple"+" "+"node-elim-opt"; 4047 defKey = defKey.trim(); 4048 4049 if (isInDefList(defKey)) { 4050 defaultBool = getBoolDef(defKey); 4051 } 4052 else { 4053 4054 defaultBool = true; 4055 4056 } 4057 4058 setshimplenode_elim_opt_widget(new BooleanOptionWidget(editGroupshimple, SWT.NONE, new OptionData("Shimple Node Elimination Optimizations", "p", "shimple","node-elim-opt", "\nPerform some optimizations, such as dead code \nelimination and local aggregation, before/after \neliminating nodes. ", defaultBool))); 4059 4060 4061 4062 defKey = "p"+" "+"shimple"+" "+"standard-local-names"; 4063 defKey = defKey.trim(); 4064 4065 if (isInDefList(defKey)) { 4066 defaultBool = getBoolDef(defKey); 4067 } 4068 else { 4069 4070 defaultBool = false; 4071 4072 } 4073 4074 setshimplestandard_local_names_widget(new BooleanOptionWidget(editGroupshimple, SWT.NONE, new OptionData("Local Name Standardization", "p", "shimple","standard-local-names", "\nIf enabled, the Local Name Standardizer is applied \nwhenever Shimple creates new locals. Normally, \nShimple will retain the original local names as far \nas possible and use an underscore notation to denote \nSSA subscripts. This transformation does not \notherwise affect Shimple behaviour. ", defaultBool))); 4075 4076 4077 4078 defKey = "p"+" "+"shimple"+" "+"extended"; 4079 defKey = defKey.trim(); 4080 4081 if (isInDefList(defKey)) { 4082 defaultBool = getBoolDef(defKey); 4083 } 4084 else { 4085 4086 defaultBool = false; 4087 4088 } 4089 4090 setshimpleextended_widget(new BooleanOptionWidget(editGroupshimple, SWT.NONE, new OptionData("Extended SSA (SSI)", "p", "shimple","extended", "\nIf enabled, Shimple will created extended SSA (SSI) \nform. ", defaultBool))); 4091 4092 4093 4094 defKey = "p"+" "+"shimple"+" "+"debug"; 4095 defKey = defKey.trim(); 4096 4097 if (isInDefList(defKey)) { 4098 defaultBool = getBoolDef(defKey); 4099 } 4100 else { 4101 4102 defaultBool = false; 4103 4104 } 4105 4106 setshimpledebug_widget(new BooleanOptionWidget(editGroupshimple, SWT.NONE, new OptionData("Debugging Output", "p", "shimple","debug", "\nIf enabled, Soot may print out warnings and \nmessages useful for debugging the Shimple module. \nAutomatically enabled by the global debug switch. \n", defaultBool))); 4107 4108 4109 4110 4111 return editGroupshimple; 4112 } 4113 4114 4115 4116 private Composite stpCreate(Composite parent) { 4117 String defKey; 4118 String defaultString; 4119 boolean defaultBool = false; 4120 String defaultArray; 4121 4122 Group editGroupstp = new Group(parent, SWT.NONE); 4123 GridLayout layout = new GridLayout(); 4124 editGroupstp.setLayout(layout); 4125 4126 editGroupstp.setText("Shimple Transformation Pack"); 4127 4128 editGroupstp.setData("id", "stp"); 4129 4130 String descstp = "Shimple transformation pack"; 4131 if (descstp.length() > 0) { 4132 Label descLabelstp = new Label(editGroupstp, SWT.WRAP); 4133 descLabelstp.setText(descstp); 4134 } 4135 OptionData [] data; 4136 4137 4138 4139 4140 defKey = "p"+" "+"stp"+" "+"enabled"; 4141 defKey = defKey.trim(); 4142 4143 if (isInDefList(defKey)) { 4144 defaultBool = getBoolDef(defKey); 4145 } 4146 else { 4147 4148 defaultBool = true; 4149 4150 } 4151 4152 setstpenabled_widget(new BooleanOptionWidget(editGroupstp, SWT.NONE, new OptionData("Enabled", "p", "stp","enabled", "\n", defaultBool))); 4153 4154 4155 4156 4157 return editGroupstp; 4158 } 4159 4160 4161 4162 private Composite sopCreate(Composite parent) { 4163 String defKey; 4164 String defaultString; 4165 boolean defaultBool = false; 4166 String defaultArray; 4167 4168 Group editGroupsop = new Group(parent, SWT.NONE); 4169 GridLayout layout = new GridLayout(); 4170 editGroupsop.setLayout(layout); 4171 4172 editGroupsop.setText("Shimple Optimization Pack"); 4173 4174 editGroupsop.setData("id", "sop"); 4175 4176 String descsop = "Shimple optimization pack"; 4177 if (descsop.length() > 0) { 4178 Label descLabelsop = new Label(editGroupsop, SWT.WRAP); 4179 descLabelsop.setText(descsop); 4180 } 4181 OptionData [] data; 4182 4183 4184 4185 4186 defKey = "p"+" "+"sop"+" "+"enabled"; 4187 defKey = defKey.trim(); 4188 4189 if (isInDefList(defKey)) { 4190 defaultBool = getBoolDef(defKey); 4191 } 4192 else { 4193 4194 defaultBool = false; 4195 4196 } 4197 4198 setsopenabled_widget(new BooleanOptionWidget(editGroupsop, SWT.NONE, new OptionData("Enabled", "p", "sop","enabled", "\n", defaultBool))); 4199 4200 4201 4202 4203 return editGroupsop; 4204 } 4205 4206 4207 4208 private Composite sopsop_cpfCreate(Composite parent) { 4209 String defKey; 4210 String defaultString; 4211 boolean defaultBool = false; 4212 String defaultArray; 4213 4214 Group editGroupsopsop_cpf = new Group(parent, SWT.NONE); 4215 GridLayout layout = new GridLayout(); 4216 editGroupsopsop_cpf.setLayout(layout); 4217 4218 editGroupsopsop_cpf.setText("Shimple Constant Propagator and Folder"); 4219 4220 editGroupsopsop_cpf.setData("id", "sopsop_cpf"); 4221 4222 String descsopsop_cpf = "Shimple constant propagator and folder"; 4223 if (descsopsop_cpf.length() > 0) { 4224 Label descLabelsopsop_cpf = new Label(editGroupsopsop_cpf, SWT.WRAP); 4225 descLabelsopsop_cpf.setText(descsopsop_cpf); 4226 } 4227 OptionData [] data; 4228 4229 4230 4231 4232 defKey = "p"+" "+"sop.cpf"+" "+"enabled"; 4233 defKey = defKey.trim(); 4234 4235 if (isInDefList(defKey)) { 4236 defaultBool = getBoolDef(defKey); 4237 } 4238 else { 4239 4240 defaultBool = true; 4241 4242 } 4243 4244 setsopsop_cpfenabled_widget(new BooleanOptionWidget(editGroupsopsop_cpf, SWT.NONE, new OptionData("Enabled", "p", "sop.cpf","enabled", "\n", defaultBool))); 4245 4246 4247 4248 defKey = "p"+" "+"sop.cpf"+" "+"prune-cfg"; 4249 defKey = defKey.trim(); 4250 4251 if (isInDefList(defKey)) { 4252 defaultBool = getBoolDef(defKey); 4253 } 4254 else { 4255 4256 defaultBool = true; 4257 4258 } 4259 4260 setsopsop_cpfprune_cfg_widget(new BooleanOptionWidget(editGroupsopsop_cpf, SWT.NONE, new OptionData("Prune Control Flow Graph", "p", "sop.cpf","prune-cfg", "\nConditional branching statements that are found \nto branch unconditionally (or fall through) are \nreplaced with unconditional branches (or \nremoved). This transformation exposes more \nopportunities for dead code removal. \n", defaultBool))); 4261 4262 4263 4264 4265 return editGroupsopsop_cpf; 4266 } 4267 4268 4269 4270 private Composite jtpCreate(Composite parent) { 4271 String defKey; 4272 String defaultString; 4273 boolean defaultBool = false; 4274 String defaultArray; 4275 4276 Group editGroupjtp = new Group(parent, SWT.NONE); 4277 GridLayout layout = new GridLayout(); 4278 editGroupjtp.setLayout(layout); 4279 4280 editGroupjtp.setText("Jimple Transformation Pack"); 4281 4282 editGroupjtp.setData("id", "jtp"); 4283 4284 String descjtp = "Jimple transformation pack: intraprocedural analyses added to Soot"; 4285 if (descjtp.length() > 0) { 4286 Label descLabeljtp = new Label(editGroupjtp, SWT.WRAP); 4287 descLabeljtp.setText(descjtp); 4288 } 4289 OptionData [] data; 4290 4291 4292 4293 4294 defKey = "p"+" "+"jtp"+" "+"enabled"; 4295 defKey = defKey.trim(); 4296 4297 if (isInDefList(defKey)) { 4298 defaultBool = getBoolDef(defKey); 4299 } 4300 else { 4301 4302 defaultBool = true; 4303 4304 } 4305 4306 setjtpenabled_widget(new BooleanOptionWidget(editGroupjtp, SWT.NONE, new OptionData("Enabled", "p", "jtp","enabled", "\n", defaultBool))); 4307 4308 4309 4310 4311 return editGroupjtp; 4312 } 4313 4314 4315 4316 private Composite jopCreate(Composite parent) { 4317 String defKey; 4318 String defaultString; 4319 boolean defaultBool = false; 4320 String defaultArray; 4321 4322 Group editGroupjop = new Group(parent, SWT.NONE); 4323 GridLayout layout = new GridLayout(); 4324 editGroupjop.setLayout(layout); 4325 4326 editGroupjop.setText("Jimple Optimization Pack"); 4327 4328 editGroupjop.setData("id", "jop"); 4329 4330 String descjop = "Jimple optimization pack (intraprocedural)"; 4331 if (descjop.length() > 0) { 4332 Label descLabeljop = new Label(editGroupjop, SWT.WRAP); 4333 descLabeljop.setText(descjop); 4334 } 4335 OptionData [] data; 4336 4337 4338 4339 4340 defKey = "p"+" "+"jop"+" "+"enabled"; 4341 defKey = defKey.trim(); 4342 4343 if (isInDefList(defKey)) { 4344 defaultBool = getBoolDef(defKey); 4345 } 4346 else { 4347 4348 defaultBool = false; 4349 4350 } 4351 4352 setjopenabled_widget(new BooleanOptionWidget(editGroupjop, SWT.NONE, new OptionData("Enabled", "p", "jop","enabled", "\n", defaultBool))); 4353 4354 4355 4356 4357 return editGroupjop; 4358 } 4359 4360 4361 4362 private Composite jopjop_cseCreate(Composite parent) { 4363 String defKey; 4364 String defaultString; 4365 boolean defaultBool = false; 4366 String defaultArray; 4367 4368 Group editGroupjopjop_cse = new Group(parent, SWT.NONE); 4369 GridLayout layout = new GridLayout(); 4370 editGroupjopjop_cse.setLayout(layout); 4371 4372 editGroupjopjop_cse.setText("Common Subexpression Eliminator"); 4373 4374 editGroupjopjop_cse.setData("id", "jopjop_cse"); 4375 4376 String descjopjop_cse = "Common subexpression eliminator"; 4377 if (descjopjop_cse.length() > 0) { 4378 Label descLabeljopjop_cse = new Label(editGroupjopjop_cse, SWT.WRAP); 4379 descLabeljopjop_cse.setText(descjopjop_cse); 4380 } 4381 OptionData [] data; 4382 4383 4384 4385 4386 defKey = "p"+" "+"jop.cse"+" "+"enabled"; 4387 defKey = defKey.trim(); 4388 4389 if (isInDefList(defKey)) { 4390 defaultBool = getBoolDef(defKey); 4391 } 4392 else { 4393 4394 defaultBool = false; 4395 4396 } 4397 4398 setjopjop_cseenabled_widget(new BooleanOptionWidget(editGroupjopjop_cse, SWT.NONE, new OptionData("Enabled", "p", "jop.cse","enabled", "\n", defaultBool))); 4399 4400 4401 4402 defKey = "p"+" "+"jop.cse"+" "+"naive-side-effect"; 4403 defKey = defKey.trim(); 4404 4405 if (isInDefList(defKey)) { 4406 defaultBool = getBoolDef(defKey); 4407 } 4408 else { 4409 4410 defaultBool = false; 4411 4412 } 4413 4414 setjopjop_csenaive_side_effect_widget(new BooleanOptionWidget(editGroupjopjop_cse, SWT.NONE, new OptionData("Naive Side Effect Tester", "p", "jop.cse","naive-side-effect", "\nIf Naive Side Effect Tester is true, the Common Subexpression \nEliminator uses the conservative side effect information \nprovided by the NaiveSideEffectTester class, even if \ninterprocedural information about side effects is available. The \nnaive side effect analysis is based solely on the information \navailable locally about a statement. It assumes, for example, \nthat any method call has the potential to write and read all \ninstance and static fields in the program. If Naive Side Effect \nTester is set to false and Soot is in whole program mode, then \nthe Common Subexpression Eliminator uses the side effect \ninformation provided by the PASideEffectTester class. \nPASideEffectTester uses a points-to analysis to determine which \nfields and statics may be written or read by a given statement. \nIf whole program analysis is not performed, naive side effect \ninformation is used regardless of the setting of Naive Side \nEffect Tester. ", defaultBool))); 4415 4416 4417 4418 4419 return editGroupjopjop_cse; 4420 } 4421 4422 4423 4424 private Composite jopjop_bcmCreate(Composite parent) { 4425 String defKey; 4426 String defaultString; 4427 boolean defaultBool = false; 4428 String defaultArray; 4429 4430 Group editGroupjopjop_bcm = new Group(parent, SWT.NONE); 4431 GridLayout layout = new GridLayout(); 4432 editGroupjopjop_bcm.setLayout(layout); 4433 4434 editGroupjopjop_bcm.setText("Busy Code Motion"); 4435 4436 editGroupjopjop_bcm.setData("id", "jopjop_bcm"); 4437 4438 String descjopjop_bcm = "Busy code motion: unaggressive partial redundancy elimination"; 4439 if (descjopjop_bcm.length() > 0) { 4440 Label descLabeljopjop_bcm = new Label(editGroupjopjop_bcm, SWT.WRAP); 4441 descLabeljopjop_bcm.setText(descjopjop_bcm); 4442 } 4443 OptionData [] data; 4444 4445 4446 4447 4448 defKey = "p"+" "+"jop.bcm"+" "+"enabled"; 4449 defKey = defKey.trim(); 4450 4451 if (isInDefList(defKey)) { 4452 defaultBool = getBoolDef(defKey); 4453 } 4454 else { 4455 4456 defaultBool = false; 4457 4458 } 4459 4460 setjopjop_bcmenabled_widget(new BooleanOptionWidget(editGroupjopjop_bcm, SWT.NONE, new OptionData("Enabled", "p", "jop.bcm","enabled", "\n", defaultBool))); 4461 4462 4463 4464 defKey = "p"+" "+"jop.bcm"+" "+"naive-side-effect"; 4465 defKey = defKey.trim(); 4466 4467 if (isInDefList(defKey)) { 4468 defaultBool = getBoolDef(defKey); 4469 } 4470 else { 4471 4472 defaultBool = false; 4473 4474 } 4475 4476 setjopjop_bcmnaive_side_effect_widget(new BooleanOptionWidget(editGroupjopjop_bcm, SWT.NONE, new OptionData("Naive Side Effect Tester", "p", "jop.bcm","naive-side-effect", "\nIf Naive Side Effect Tester is set to true, Busy Code Motion \nuses the conservative side effect information provided by the \nNaiveSideEffectTester class, even if interprocedural information \nabout side effects is available. The naive side effect analysis \nis based solely on the information available locally about a \nstatement. It assumes, for example, that any method call has the \npotential to write and read all instance and static fields in \nthe program. If Naive Side Effect Tester is set to false and \nSoot is in whole program mode, then Busy Code Motion uses the \nside effect information provided by the PASideEffectTester \nclass. PASideEffectTester uses a points-to analysis to determine \nwhich fields and statics may be written or read by a given \nstatement. If whole program analysis is not performed, naive \nside effect information is used regardless of the setting of \nNaive Side Effect Tester. ", defaultBool))); 4477 4478 4479 4480 4481 return editGroupjopjop_bcm; 4482 } 4483 4484 4485 4486 private Composite jopjop_lcmCreate(Composite parent) { 4487 String defKey; 4488 String defaultString; 4489 boolean defaultBool = false; 4490 String defaultArray; 4491 4492 Group editGroupjopjop_lcm = new Group(parent, SWT.NONE); 4493 GridLayout layout = new GridLayout(); 4494 editGroupjopjop_lcm.setLayout(layout); 4495 4496 editGroupjopjop_lcm.setText("Lazy Code Motion"); 4497 4498 editGroupjopjop_lcm.setData("id", "jopjop_lcm"); 4499 4500 String descjopjop_lcm = "Lazy code motion: aggressive partial redundancy elimination"; 4501 if (descjopjop_lcm.length() > 0) { 4502 Label descLabeljopjop_lcm = new Label(editGroupjopjop_lcm, SWT.WRAP); 4503 descLabeljopjop_lcm.setText(descjopjop_lcm); 4504 } 4505 OptionData [] data; 4506 4507 4508 4509 4510 defKey = "p"+" "+"jop.lcm"+" "+"enabled"; 4511 defKey = defKey.trim(); 4512 4513 if (isInDefList(defKey)) { 4514 defaultBool = getBoolDef(defKey); 4515 } 4516 else { 4517 4518 defaultBool = false; 4519 4520 } 4521 4522 setjopjop_lcmenabled_widget(new BooleanOptionWidget(editGroupjopjop_lcm, SWT.NONE, new OptionData("Enabled", "p", "jop.lcm","enabled", "\n", defaultBool))); 4523 4524 4525 4526 defKey = "p"+" "+"jop.lcm"+" "+"unroll"; 4527 defKey = defKey.trim(); 4528 4529 if (isInDefList(defKey)) { 4530 defaultBool = getBoolDef(defKey); 4531 } 4532 else { 4533 4534 defaultBool = true; 4535 4536 } 4537 4538 setjopjop_lcmunroll_widget(new BooleanOptionWidget(editGroupjopjop_lcm, SWT.NONE, new OptionData("Unroll", "p", "jop.lcm","unroll", "\nIf true, perform loop inversion before doing the \ntransformation. ", defaultBool))); 4539 4540 4541 4542 defKey = "p"+" "+"jop.lcm"+" "+"naive-side-effect"; 4543 defKey = defKey.trim(); 4544 4545 if (isInDefList(defKey)) { 4546 defaultBool = getBoolDef(defKey); 4547 } 4548 else { 4549 4550 defaultBool = false; 4551 4552 } 4553 4554 setjopjop_lcmnaive_side_effect_widget(new BooleanOptionWidget(editGroupjopjop_lcm, SWT.NONE, new OptionData("Naive Side Effect Tester", "p", "jop.lcm","naive-side-effect", "\nIf Naive Side Effect Tester is set to true, Lazy Code Motion \nuses the conservative side effect information provided by the \nNaiveSideEffectTester class, even if interprocedural information \nabout side effects is available. The naive side effect analysis \nis based solely on the information available locally about a \nstatement. It assumes, for example, that any method call has the \npotential to write and read all instance and static fields in \nthe program. If Naive Side Effect Tester is set to false and \nSoot is in whole program mode, then Lazy Code Motion uses the \nside effect information provided by the PASideEffectTester \nclass. PASideEffectTester uses a points-to analysis to determine \nwhich fields and statics may be written or read by a given \nstatement. If whole program analysis is not performed, naive \nside effect information is used regardless of the setting of \nNaive Side Effect Tester. ", defaultBool))); 4555 4556 4557 4558 data = new OptionData [] { 4559 4560 new OptionData("Safe", 4561 "safe", 4562 "\nSafe, but only considers moving additions, subtractions and \nmultiplications. ", 4563 4564 true), 4565 4566 new OptionData("Medium", 4567 "medium", 4568 "\nUnsafe in multi-threaded programs, as it may reuse the values \nread from field accesses. ", 4569 4570 false), 4571 4572 new OptionData("Unsafe", 4573 "unsafe", 4574 "\nMay violate Java's exception semantics, as it may move or \nreorder exception-throwing statements, potentially outside of \ntry-catch blocks. ", 4575 4576 false), 4577 4578 }; 4579 4580 4581 setjopjop_lcmsafety_widget(new MultiOptionWidget(editGroupjopjop_lcm, SWT.NONE, data, new OptionData("Safety", "p", "jop.lcm","safety", "\nThis option controls which fields and statements are candidates \nfor code motion. "))); 4582 4583 defKey = "p"+" "+"jop.lcm"+" "+"safety"; 4584 defKey = defKey.trim(); 4585 4586 if (isInDefList(defKey)) { 4587 defaultString = getStringDef(defKey); 4588 4589 getjopjop_lcmsafety_widget().setDef(defaultString); 4590 } 4591 4592 4593 4594 4595 return editGroupjopjop_lcm; 4596 } 4597 4598 4599 4600 private Composite jopjop_cpCreate(Composite parent) { 4601 String defKey; 4602 String defaultString; 4603 boolean defaultBool = false; 4604 String defaultArray; 4605 4606 Group editGroupjopjop_cp = new Group(parent, SWT.NONE); 4607 GridLayout layout = new GridLayout(); 4608 editGroupjopjop_cp.setLayout(layout); 4609 4610 editGroupjopjop_cp.setText("Copy Propagator"); 4611 4612 editGroupjopjop_cp.setData("id", "jopjop_cp"); 4613 4614 String descjopjop_cp = "Copy propagator"; 4615 if (descjopjop_cp.length() > 0) { 4616 Label descLabeljopjop_cp = new Label(editGroupjopjop_cp, SWT.WRAP); 4617 descLabeljopjop_cp.setText(descjopjop_cp); 4618 } 4619 OptionData [] data; 4620 4621 4622 4623 4624 defKey = "p"+" "+"jop.cp"+" "+"enabled"; 4625 defKey = defKey.trim(); 4626 4627 if (isInDefList(defKey)) { 4628 defaultBool = getBoolDef(defKey); 4629 } 4630 else { 4631 4632 defaultBool = true; 4633 4634 } 4635 4636 setjopjop_cpenabled_widget(new BooleanOptionWidget(editGroupjopjop_cp, SWT.NONE, new OptionData("Enabled", "p", "jop.cp","enabled", "\n", defaultBool))); 4637 4638 4639 4640 defKey = "p"+" "+"jop.cp"+" "+"only-regular-locals"; 4641 defKey = defKey.trim(); 4642 4643 if (isInDefList(defKey)) { 4644 defaultBool = getBoolDef(defKey); 4645 } 4646 else { 4647 4648 defaultBool = false; 4649 4650 } 4651 4652 setjopjop_cponly_regular_locals_widget(new BooleanOptionWidget(editGroupjopjop_cp, SWT.NONE, new OptionData("Only Regular Locals", "p", "jop.cp","only-regular-locals", "\nOnly propagate copies through ``regular'' locals, that is, \nthose declared in the source bytecode. ", defaultBool))); 4653 4654 4655 4656 defKey = "p"+" "+"jop.cp"+" "+"only-stack-locals"; 4657 defKey = defKey.trim(); 4658 4659 if (isInDefList(defKey)) { 4660 defaultBool = getBoolDef(defKey); 4661 } 4662 else { 4663 4664 defaultBool = false; 4665 4666 } 4667 4668 setjopjop_cponly_stack_locals_widget(new BooleanOptionWidget(editGroupjopjop_cp, SWT.NONE, new OptionData("Only Stack Locals", "p", "jop.cp","only-stack-locals", "\nOnly propagate copies through locals that represent stack \nlocations in the original bytecode. ", defaultBool))); 4669 4670 4671 4672 4673 return editGroupjopjop_cp; 4674 } 4675 4676 4677 4678 private Composite jopjop_cpfCreate(Composite parent) { 4679 String defKey; 4680 String defaultString; 4681 boolean defaultBool = false; 4682 String defaultArray; 4683 4684 Group editGroupjopjop_cpf = new Group(parent, SWT.NONE); 4685 GridLayout layout = new GridLayout(); 4686 editGroupjopjop_cpf.setLayout(layout); 4687 4688 editGroupjopjop_cpf.setText("Jimple Constant Propagator and Folder"); 4689 4690 editGroupjopjop_cpf.setData("id", "jopjop_cpf"); 4691 4692 String descjopjop_cpf = "Constant propagator and folder"; 4693 if (descjopjop_cpf.length() > 0) { 4694 Label descLabeljopjop_cpf = new Label(editGroupjopjop_cpf, SWT.WRAP); 4695 descLabeljopjop_cpf.setText(descjopjop_cpf); 4696 } 4697 OptionData [] data; 4698 4699 4700 4701 4702 defKey = "p"+" "+"jop.cpf"+" "+"enabled"; 4703 defKey = defKey.trim(); 4704 4705 if (isInDefList(defKey)) { 4706 defaultBool = getBoolDef(defKey); 4707 } 4708 else { 4709 4710 defaultBool = true; 4711 4712 } 4713 4714 setjopjop_cpfenabled_widget(new BooleanOptionWidget(editGroupjopjop_cpf, SWT.NONE, new OptionData("Enabled", "p", "jop.cpf","enabled", "\n", defaultBool))); 4715 4716 4717 4718 4719 return editGroupjopjop_cpf; 4720 } 4721 4722 4723 4724 private Composite jopjop_cbfCreate(Composite parent) { 4725 String defKey; 4726 String defaultString; 4727 boolean defaultBool = false; 4728 String defaultArray; 4729 4730 Group editGroupjopjop_cbf = new Group(parent, SWT.NONE); 4731 GridLayout layout = new GridLayout(); 4732 editGroupjopjop_cbf.setLayout(layout); 4733 4734 editGroupjopjop_cbf.setText("Conditional Branch Folder"); 4735 4736 editGroupjopjop_cbf.setData("id", "jopjop_cbf"); 4737 4738 String descjopjop_cbf = "Conditional branch folder"; 4739 if (descjopjop_cbf.length() > 0) { 4740 Label descLabeljopjop_cbf = new Label(editGroupjopjop_cbf, SWT.WRAP); 4741 descLabeljopjop_cbf.setText(descjopjop_cbf); 4742 } 4743 OptionData [] data; 4744 4745 4746 4747 4748 defKey = "p"+" "+"jop.cbf"+" "+"enabled"; 4749 defKey = defKey.trim(); 4750 4751 if (isInDefList(defKey)) { 4752 defaultBool = getBoolDef(defKey); 4753 } 4754 else { 4755 4756 defaultBool = true; 4757 4758 } 4759 4760 setjopjop_cbfenabled_widget(new BooleanOptionWidget(editGroupjopjop_cbf, SWT.NONE, new OptionData("Enabled", "p", "jop.cbf","enabled", "\n", defaultBool))); 4761 4762 4763 4764 4765 return editGroupjopjop_cbf; 4766 } 4767 4768 4769 4770 private Composite jopjop_daeCreate(Composite parent) { 4771 String defKey; 4772 String defaultString; 4773 boolean defaultBool = false; 4774 String defaultArray; 4775 4776 Group editGroupjopjop_dae = new Group(parent, SWT.NONE); 4777 GridLayout layout = new GridLayout(); 4778 editGroupjopjop_dae.setLayout(layout); 4779 4780 editGroupjopjop_dae.setText("Dead Assignment Eliminator"); 4781 4782 editGroupjopjop_dae.setData("id", "jopjop_dae"); 4783 4784 String descjopjop_dae = "Dead assignment eliminator"; 4785 if (descjopjop_dae.length() > 0) { 4786 Label descLabeljopjop_dae = new Label(editGroupjopjop_dae, SWT.WRAP); 4787 descLabeljopjop_dae.setText(descjopjop_dae); 4788 } 4789 OptionData [] data; 4790 4791 4792 4793 4794 defKey = "p"+" "+"jop.dae"+" "+"enabled"; 4795 defKey = defKey.trim(); 4796 4797 if (isInDefList(defKey)) { 4798 defaultBool = getBoolDef(defKey); 4799 } 4800 else { 4801 4802 defaultBool = true; 4803 4804 } 4805 4806 setjopjop_daeenabled_widget(new BooleanOptionWidget(editGroupjopjop_dae, SWT.NONE, new OptionData("Enabled", "p", "jop.dae","enabled", "\n", defaultBool))); 4807 4808 4809 4810 defKey = "p"+" "+"jop.dae"+" "+"only-tag"; 4811 defKey = defKey.trim(); 4812 4813 if (isInDefList(defKey)) { 4814 defaultBool = getBoolDef(defKey); 4815 } 4816 else { 4817 4818 defaultBool = false; 4819 4820 } 4821 4822 setjopjop_daeonly_tag_widget(new BooleanOptionWidget(editGroupjopjop_dae, SWT.NONE, new OptionData("Only Tag Dead Code", "p", "jop.dae","only-tag", "\nOnly tag dead assignment statements instead of eliminaing them. \n", defaultBool))); 4823 4824 4825 4826 defKey = "p"+" "+"jop.dae"+" "+"only-stack-locals"; 4827 defKey = defKey.trim(); 4828 4829 if (isInDefList(defKey)) { 4830 defaultBool = getBoolDef(defKey); 4831 } 4832 else { 4833 4834 defaultBool = false; 4835 4836 } 4837 4838 setjopjop_daeonly_stack_locals_widget(new BooleanOptionWidget(editGroupjopjop_dae, SWT.NONE, new OptionData("Only Stack Locals", "p", "jop.dae","only-stack-locals", "\nOnly eliminate dead assignments to locals that represent stack \nlocations in the original bytecode. ", defaultBool))); 4839 4840 4841 4842 4843 return editGroupjopjop_dae; 4844 } 4845 4846 4847 4848 private Composite jopjop_uce1Create(Composite parent) { 4849 String defKey; 4850 String defaultString; 4851 boolean defaultBool = false; 4852 String defaultArray; 4853 4854 Group editGroupjopjop_uce1 = new Group(parent, SWT.NONE); 4855 GridLayout layout = new GridLayout(); 4856 editGroupjopjop_uce1.setLayout(layout); 4857 4858 editGroupjopjop_uce1.setText("Unreachable Code Eliminator 1"); 4859 4860 editGroupjopjop_uce1.setData("id", "jopjop_uce1"); 4861 4862 String descjopjop_uce1 = "Unreachable code eliminator, pass 1"; 4863 if (descjopjop_uce1.length() > 0) { 4864 Label descLabeljopjop_uce1 = new Label(editGroupjopjop_uce1, SWT.WRAP); 4865 descLabeljopjop_uce1.setText(descjopjop_uce1); 4866 } 4867 OptionData [] data; 4868 4869 4870 4871 4872 defKey = "p"+" "+"jop.uce1"+" "+"enabled"; 4873 defKey = defKey.trim(); 4874 4875 if (isInDefList(defKey)) { 4876 defaultBool = getBoolDef(defKey); 4877 } 4878 else { 4879 4880 defaultBool = true; 4881 4882 } 4883 4884 setjopjop_uce1enabled_widget(new BooleanOptionWidget(editGroupjopjop_uce1, SWT.NONE, new OptionData("Enabled", "p", "jop.uce1","enabled", "\n", defaultBool))); 4885 4886 4887 4888 defKey = "p"+" "+"jop.uce1"+" "+"remove-unreachable-traps"; 4889 defKey = defKey.trim(); 4890 4891 if (isInDefList(defKey)) { 4892 defaultBool = getBoolDef(defKey); 4893 } 4894 else { 4895 4896 defaultBool = false; 4897 4898 } 4899 4900 setjopjop_uce1remove_unreachable_traps_widget(new BooleanOptionWidget(editGroupjopjop_uce1, SWT.NONE, new OptionData("Remove unreachable traps", "p", "jop.uce1","remove-unreachable-traps", "\nRemove exception table entries when none of the protected \ninstructions can throw the exception being caught. ", defaultBool))); 4901 4902 4903 4904 4905 return editGroupjopjop_uce1; 4906 } 4907 4908 4909 4910 private Composite jopjop_ubf1Create(Composite parent) { 4911 String defKey; 4912 String defaultString; 4913 boolean defaultBool = false; 4914 String defaultArray; 4915 4916 Group editGroupjopjop_ubf1 = new Group(parent, SWT.NONE); 4917 GridLayout layout = new GridLayout(); 4918 editGroupjopjop_ubf1.setLayout(layout); 4919 4920 editGroupjopjop_ubf1.setText("Unconditional Branch Folder 1"); 4921 4922 editGroupjopjop_ubf1.setData("id", "jopjop_ubf1"); 4923 4924 String descjopjop_ubf1 = "Unconditional branch folder, pass 1"; 4925 if (descjopjop_ubf1.length() > 0) { 4926 Label descLabeljopjop_ubf1 = new Label(editGroupjopjop_ubf1, SWT.WRAP); 4927 descLabeljopjop_ubf1.setText(descjopjop_ubf1); 4928 } 4929 OptionData [] data; 4930 4931 4932 4933 4934 defKey = "p"+" "+"jop.ubf1"+" "+"enabled"; 4935 defKey = defKey.trim(); 4936 4937 if (isInDefList(defKey)) { 4938 defaultBool = getBoolDef(defKey); 4939 } 4940 else { 4941 4942 defaultBool = true; 4943 4944 } 4945 4946 setjopjop_ubf1enabled_widget(new BooleanOptionWidget(editGroupjopjop_ubf1, SWT.NONE, new OptionData("Enabled", "p", "jop.ubf1","enabled", "\n", defaultBool))); 4947 4948 4949 4950 4951 return editGroupjopjop_ubf1; 4952 } 4953 4954 4955 4956 private Composite jopjop_uce2Create(Composite parent) { 4957 String defKey; 4958 String defaultString; 4959 boolean defaultBool = false; 4960 String defaultArray; 4961 4962 Group editGroupjopjop_uce2 = new Group(parent, SWT.NONE); 4963 GridLayout layout = new GridLayout(); 4964 editGroupjopjop_uce2.setLayout(layout); 4965 4966 editGroupjopjop_uce2.setText("Unreachable Code Eliminator 2"); 4967 4968 editGroupjopjop_uce2.setData("id", "jopjop_uce2"); 4969 4970 String descjopjop_uce2 = "Unreachable code eliminator, pass 2"; 4971 if (descjopjop_uce2.length() > 0) { 4972 Label descLabeljopjop_uce2 = new Label(editGroupjopjop_uce2, SWT.WRAP); 4973 descLabeljopjop_uce2.setText(descjopjop_uce2); 4974 } 4975 OptionData [] data; 4976 4977 4978 4979 4980 defKey = "p"+" "+"jop.uce2"+" "+"enabled"; 4981 defKey = defKey.trim(); 4982 4983 if (isInDefList(defKey)) { 4984 defaultBool = getBoolDef(defKey); 4985 } 4986 else { 4987 4988 defaultBool = true; 4989 4990 } 4991 4992 setjopjop_uce2enabled_widget(new BooleanOptionWidget(editGroupjopjop_uce2, SWT.NONE, new OptionData("Enabled", "p", "jop.uce2","enabled", "\n", defaultBool))); 4993 4994 4995 4996 defKey = "p"+" "+"jop.uce2"+" "+"remove-unreachable-traps"; 4997 defKey = defKey.trim(); 4998 4999 if (isInDefList(defKey)) { 5000 defaultBool = getBoolDef(defKey); 5001 } 5002 else { 5003 5004 defaultBool = false; 5005 5006 } 5007 5008 setjopjop_uce2remove_unreachable_traps_widget(new BooleanOptionWidget(editGroupjopjop_uce2, SWT.NONE, new OptionData("Remove unreachable traps", "p", "jop.uce2","remove-unreachable-traps", "\nRemove exception table entries when none of the protected \ninstructions can throw the exception being caught. ", defaultBool))); 5009 5010 5011 5012 5013 return editGroupjopjop_uce2; 5014 } 5015 5016 5017 5018 private Composite jopjop_ubf2Create(Composite parent) { 5019 String defKey; 5020 String defaultString; 5021 boolean defaultBool = false; 5022 String defaultArray; 5023 5024 Group editGroupjopjop_ubf2 = new Group(parent, SWT.NONE); 5025 GridLayout layout = new GridLayout(); 5026 editGroupjopjop_ubf2.setLayout(layout); 5027 5028 editGroupjopjop_ubf2.setText("Unconditional Branch Folder 2"); 5029 5030 editGroupjopjop_ubf2.setData("id", "jopjop_ubf2"); 5031 5032 String descjopjop_ubf2 = "Unconditional branch folder, pass 2"; 5033 if (descjopjop_ubf2.length() > 0) { 5034 Label descLabeljopjop_ubf2 = new Label(editGroupjopjop_ubf2, SWT.WRAP); 5035 descLabeljopjop_ubf2.setText(descjopjop_ubf2); 5036 } 5037 OptionData [] data; 5038 5039 5040 5041 5042 defKey = "p"+" "+"jop.ubf2"+" "+"enabled"; 5043 defKey = defKey.trim(); 5044 5045 if (isInDefList(defKey)) { 5046 defaultBool = getBoolDef(defKey); 5047 } 5048 else { 5049 5050 defaultBool = true; 5051 5052 } 5053 5054 setjopjop_ubf2enabled_widget(new BooleanOptionWidget(editGroupjopjop_ubf2, SWT.NONE, new OptionData("Enabled", "p", "jop.ubf2","enabled", "\n", defaultBool))); 5055 5056 5057 5058 5059 return editGroupjopjop_ubf2; 5060 } 5061 5062 5063 5064 private Composite jopjop_uleCreate(Composite parent) { 5065 String defKey; 5066 String defaultString; 5067 boolean defaultBool = false; 5068 String defaultArray; 5069 5070 Group editGroupjopjop_ule = new Group(parent, SWT.NONE); 5071 GridLayout layout = new GridLayout(); 5072 editGroupjopjop_ule.setLayout(layout); 5073 5074 editGroupjopjop_ule.setText("Unused Local Eliminator"); 5075 5076 editGroupjopjop_ule.setData("id", "jopjop_ule"); 5077 5078 String descjopjop_ule = "Unused local eliminator"; 5079 if (descjopjop_ule.length() > 0) { 5080 Label descLabeljopjop_ule = new Label(editGroupjopjop_ule, SWT.WRAP); 5081 descLabeljopjop_ule.setText(descjopjop_ule); 5082 } 5083 OptionData [] data; 5084 5085 5086 5087 5088 defKey = "p"+" "+"jop.ule"+" "+"enabled"; 5089 defKey = defKey.trim(); 5090 5091 if (isInDefList(defKey)) { 5092 defaultBool = getBoolDef(defKey); 5093 } 5094 else { 5095 5096 defaultBool = true; 5097 5098 } 5099 5100 setjopjop_uleenabled_widget(new BooleanOptionWidget(editGroupjopjop_ule, SWT.NONE, new OptionData("Enabled", "p", "jop.ule","enabled", "\n", defaultBool))); 5101 5102 5103 5104 5105 return editGroupjopjop_ule; 5106 } 5107 5108 5109 5110 private Composite japCreate(Composite parent) { 5111 String defKey; 5112 String defaultString; 5113 boolean defaultBool = false; 5114 String defaultArray; 5115 5116 Group editGroupjap = new Group(parent, SWT.NONE); 5117 GridLayout layout = new GridLayout(); 5118 editGroupjap.setLayout(layout); 5119 5120 editGroupjap.setText("Jimple Annotation Pack"); 5121 5122 editGroupjap.setData("id", "jap"); 5123 5124 String descjap = "Jimple annotation pack: adds intraprocedural tags"; 5125 if (descjap.length() > 0) { 5126 Label descLabeljap = new Label(editGroupjap, SWT.WRAP); 5127 descLabeljap.setText(descjap); 5128 } 5129 OptionData [] data; 5130 5131 5132 5133 5134 defKey = "p"+" "+"jap"+" "+"enabled"; 5135 defKey = defKey.trim(); 5136 5137 if (isInDefList(defKey)) { 5138 defaultBool = getBoolDef(defKey); 5139 } 5140 else { 5141 5142 defaultBool = true; 5143 5144 } 5145 5146 setjapenabled_widget(new BooleanOptionWidget(editGroupjap, SWT.NONE, new OptionData("Enabled", "p", "jap","enabled", "\n", defaultBool))); 5147 5148 5149 5150 5151 return editGroupjap; 5152 } 5153 5154 5155 5156 private Composite japjap_npcCreate(Composite parent) { 5157 String defKey; 5158 String defaultString; 5159 boolean defaultBool = false; 5160 String defaultArray; 5161 5162 Group editGroupjapjap_npc = new Group(parent, SWT.NONE); 5163 GridLayout layout = new GridLayout(); 5164 editGroupjapjap_npc.setLayout(layout); 5165 5166 editGroupjapjap_npc.setText("Null Pointer Checker"); 5167 5168 editGroupjapjap_npc.setData("id", "japjap_npc"); 5169 5170 String descjapjap_npc = "Null pointer checker"; 5171 if (descjapjap_npc.length() > 0) { 5172 Label descLabeljapjap_npc = new Label(editGroupjapjap_npc, SWT.WRAP); 5173 descLabeljapjap_npc.setText(descjapjap_npc); 5174 } 5175 OptionData [] data; 5176 5177 5178 5179 5180 defKey = "p"+" "+"jap.npc"+" "+"enabled"; 5181 defKey = defKey.trim(); 5182 5183 if (isInDefList(defKey)) { 5184 defaultBool = getBoolDef(defKey); 5185 } 5186 else { 5187 5188 defaultBool = false; 5189 5190 } 5191 5192 setjapjap_npcenabled_widget(new BooleanOptionWidget(editGroupjapjap_npc, SWT.NONE, new OptionData("Enabled", "p", "jap.npc","enabled", "\n", defaultBool))); 5193 5194 5195 5196 defKey = "p"+" "+"jap.npc"+" "+"only-array-ref"; 5197 defKey = defKey.trim(); 5198 5199 if (isInDefList(defKey)) { 5200 defaultBool = getBoolDef(defKey); 5201 } 5202 else { 5203 5204 defaultBool = false; 5205 5206 } 5207 5208 setjapjap_npconly_array_ref_widget(new BooleanOptionWidget(editGroupjapjap_npc, SWT.NONE, new OptionData("Only Array Ref", "p", "jap.npc","only-array-ref", "\nAnnotate only array-referencing instructions, instead of all \ninstructions that need null pointer checks. ", defaultBool))); 5209 5210 5211 5212 defKey = "p"+" "+"jap.npc"+" "+"profiling"; 5213 defKey = defKey.trim(); 5214 5215 if (isInDefList(defKey)) { 5216 defaultBool = getBoolDef(defKey); 5217 } 5218 else { 5219 5220 defaultBool = false; 5221 5222 } 5223 5224 setjapjap_npcprofiling_widget(new BooleanOptionWidget(editGroupjapjap_npc, SWT.NONE, new OptionData("Profiling", "p", "jap.npc","profiling", "\nInsert profiling instructions that at runtime count the number \nof eliminated safe null pointer checks. The inserted profiling \ncode assumes the existence of a MultiCounter class implementing \nthe methods invoked. For details, see the NullPointerChecker \nsource code.", defaultBool))); 5225 5226 5227 5228 5229 return editGroupjapjap_npc; 5230 } 5231 5232 5233 5234 private Composite japjap_npcolorerCreate(Composite parent) { 5235 String defKey; 5236 String defaultString; 5237 boolean defaultBool = false; 5238 String defaultArray; 5239 5240 Group editGroupjapjap_npcolorer = new Group(parent, SWT.NONE); 5241 GridLayout layout = new GridLayout(); 5242 editGroupjapjap_npcolorer.setLayout(layout); 5243 5244 editGroupjapjap_npcolorer.setText("Null Pointer Colourer"); 5245 5246 editGroupjapjap_npcolorer.setData("id", "japjap_npcolorer"); 5247 5248 String descjapjap_npcolorer = "Null pointer colourer: tags references for eclipse"; 5249 if (descjapjap_npcolorer.length() > 0) { 5250 Label descLabeljapjap_npcolorer = new Label(editGroupjapjap_npcolorer, SWT.WRAP); 5251 descLabeljapjap_npcolorer.setText(descjapjap_npcolorer); 5252 } 5253 OptionData [] data; 5254 5255 5256 5257 5258 defKey = "p"+" "+"jap.npcolorer"+" "+"enabled"; 5259 defKey = defKey.trim(); 5260 5261 if (isInDefList(defKey)) { 5262 defaultBool = getBoolDef(defKey); 5263 } 5264 else { 5265 5266 defaultBool = false; 5267 5268 } 5269 5270 setjapjap_npcolorerenabled_widget(new BooleanOptionWidget(editGroupjapjap_npcolorer, SWT.NONE, new OptionData("Enabled", "p", "jap.npcolorer","enabled", "\n", defaultBool))); 5271 5272 5273 5274 5275 return editGroupjapjap_npcolorer; 5276 } 5277 5278 5279 5280 private Composite japjap_abcCreate(Composite parent) { 5281 String defKey; 5282 String defaultString; 5283 boolean defaultBool = false; 5284 String defaultArray; 5285 5286 Group editGroupjapjap_abc = new Group(parent, SWT.NONE); 5287 GridLayout layout = new GridLayout(); 5288 editGroupjapjap_abc.setLayout(layout); 5289 5290 editGroupjapjap_abc.setText("Array Bound Checker"); 5291 5292 editGroupjapjap_abc.setData("id", "japjap_abc"); 5293 5294 String descjapjap_abc = "Array bound checker"; 5295 if (descjapjap_abc.length() > 0) { 5296 Label descLabeljapjap_abc = new Label(editGroupjapjap_abc, SWT.WRAP); 5297 descLabeljapjap_abc.setText(descjapjap_abc); 5298 } 5299 OptionData [] data; 5300 5301 5302 5303 5304 defKey = "p"+" "+"jap.abc"+" "+"enabled"; 5305 defKey = defKey.trim(); 5306 5307 if (isInDefList(defKey)) { 5308 defaultBool = getBoolDef(defKey); 5309 } 5310 else { 5311 5312 defaultBool = false; 5313 5314 } 5315 5316 setjapjap_abcenabled_widget(new BooleanOptionWidget(editGroupjapjap_abc, SWT.NONE, new OptionData("Enabled", "p", "jap.abc","enabled", "\n", defaultBool))); 5317 5318 5319 5320 defKey = "p"+" "+"jap.abc"+" "+"with-all"; 5321 defKey = defKey.trim(); 5322 5323 if (isInDefList(defKey)) { 5324 defaultBool = getBoolDef(defKey); 5325 } 5326 else { 5327 5328 defaultBool = false; 5329 5330 } 5331 5332 setjapjap_abcwith_all_widget(new BooleanOptionWidget(editGroupjapjap_abc, SWT.NONE, new OptionData("With All", "p", "jap.abc","with-all", "\nSetting the With All option to true is equivalent to setting \neach of With CSE, With Array Ref, With Field Ref, With Class \nField, and With Rectangular Array to true.", defaultBool))); 5333 5334 5335 5336 defKey = "p"+" "+"jap.abc"+" "+"with-cse"; 5337 defKey = defKey.trim(); 5338 5339 if (isInDefList(defKey)) { 5340 defaultBool = getBoolDef(defKey); 5341 } 5342 else { 5343 5344 defaultBool = false; 5345 5346 } 5347 5348 setjapjap_abcwith_cse_widget(new BooleanOptionWidget(editGroupjapjap_abc, SWT.NONE, new OptionData("With Common Sub-expressions", "p", "jap.abc","with-cse", "\nThe analysis will consider common subexpressions. For example, \nconsider the situation where r1 is assigned a*b; later, r2 is \nassigned a*b, where neither a nor b have changed between the two \nstatements. The analysis can conclude that r2 has the same value \nas r1. Experiments show that this option can improve the result \nslightly.", defaultBool))); 5349 5350 5351 5352 defKey = "p"+" "+"jap.abc"+" "+"with-arrayref"; 5353 defKey = defKey.trim(); 5354 5355 if (isInDefList(defKey)) { 5356 defaultBool = getBoolDef(defKey); 5357 } 5358 else { 5359 5360 defaultBool = false; 5361 5362 } 5363 5364 setjapjap_abcwith_arrayref_widget(new BooleanOptionWidget(editGroupjapjap_abc, SWT.NONE, new OptionData("With Array References", "p", "jap.abc","with-arrayref", "\nWith this option enabled, array references can be considered as \ncommon subexpressions; however, we are more conservative when \nwriting into an array, because array objects may be aliased. We \nalso assume that the application is single-threaded or that the \narray references occur in a synchronized block. That is, we \nassume that an array element may not be changed by other threads \nbetween two array references.", defaultBool))); 5365 5366 5367 5368 defKey = "p"+" "+"jap.abc"+" "+"with-fieldref"; 5369 defKey = defKey.trim(); 5370 5371 if (isInDefList(defKey)) { 5372 defaultBool = getBoolDef(defKey); 5373 } 5374 else { 5375 5376 defaultBool = false; 5377 5378 } 5379 5380 setjapjap_abcwith_fieldref_widget(new BooleanOptionWidget(editGroupjapjap_abc, SWT.NONE, new OptionData("With Field References", "p", "jap.abc","with-fieldref", "\nThe analysis treats field references (static and instance) as \ncommon subexpressions; however, we are more conservative when \nwriting to a field, because the base of the field reference may \nbe aliased. We also assume that the application is \nsingle-threaded or that the field references occur in a \nsynchronized block. That is, we assume that a field may not be \nchanged by other threads between two field references.", defaultBool))); 5381 5382 5383 5384 defKey = "p"+" "+"jap.abc"+" "+"with-classfield"; 5385 defKey = defKey.trim(); 5386 5387 if (isInDefList(defKey)) { 5388 defaultBool = getBoolDef(defKey); 5389 } 5390 else { 5391 5392 defaultBool = false; 5393 5394 } 5395 5396 setjapjap_abcwith_classfield_widget(new BooleanOptionWidget(editGroupjapjap_abc, SWT.NONE, new OptionData("With Class Field", "p", "jap.abc","with-classfield", "\nThis option makes the analysis work on the class level. The \nalgorithm analyzes final or private class fields first. It can \nrecognize the fields that hold array objects of constant length. \nIn an application using lots of array fields, this option can \nimprove the analysis results dramatically.", defaultBool))); 5397 5398 5399 5400 defKey = "p"+" "+"jap.abc"+" "+"with-rectarray"; 5401 defKey = defKey.trim(); 5402 5403 if (isInDefList(defKey)) { 5404 defaultBool = getBoolDef(defKey); 5405 } 5406 else { 5407 5408 defaultBool = false; 5409 5410 } 5411 5412 setjapjap_abcwith_rectarray_widget(new BooleanOptionWidget(editGroupjapjap_abc, SWT.NONE, new OptionData("With Rectangular Array", "p", "jap.abc","with-rectarray", "\nThis option is used together with wjap.ra to make Soot run the \nwhole-program analysis for rectangular array objects. This \nanalysis is based on the call graph, and it usually takes a long \ntime. If the application uses rectangular arrays, these options \ncan improve the analysis result. ", defaultBool))); 5413 5414 5415 5416 defKey = "p"+" "+"jap.abc"+" "+"profiling"; 5417 defKey = defKey.trim(); 5418 5419 if (isInDefList(defKey)) { 5420 defaultBool = getBoolDef(defKey); 5421 } 5422 else { 5423 5424 defaultBool = false; 5425 5426 } 5427 5428 setjapjap_abcprofiling_widget(new BooleanOptionWidget(editGroupjapjap_abc, SWT.NONE, new OptionData("Profiling", "p", "jap.abc","profiling", "\nProfile the results of array bounds check analysis. The \ninserted profiling code assumes the existence of a MultiCounter \nclass implementing the methods invoked. For details, see the \nArrayBoundsChecker source code.", defaultBool))); 5429 5430 5431 5432 defKey = "p"+" "+"jap.abc"+" "+"add-color-tags"; 5433 defKey = defKey.trim(); 5434 5435 if (isInDefList(defKey)) { 5436 defaultBool = getBoolDef(defKey); 5437 } 5438 else { 5439 5440 defaultBool = false; 5441 5442 } 5443 5444 setjapjap_abcadd_color_tags_widget(new BooleanOptionWidget(editGroupjapjap_abc, SWT.NONE, new OptionData("Add Color Tags", "p", "jap.abc","add-color-tags", "\nAdd color tags to the results of the array bounds check \nanalysis.", defaultBool))); 5445 5446 5447 5448 5449 return editGroupjapjap_abc; 5450 } 5451 5452 5453 5454 private Composite japjap_profilingCreate(Composite parent) { 5455 String defKey; 5456 String defaultString; 5457 boolean defaultBool = false; 5458 String defaultArray; 5459 5460 Group editGroupjapjap_profiling = new Group(parent, SWT.NONE); 5461 GridLayout layout = new GridLayout(); 5462 editGroupjapjap_profiling.setLayout(layout); 5463 5464 editGroupjapjap_profiling.setText("Profiling Generator"); 5465 5466 editGroupjapjap_profiling.setData("id", "japjap_profiling"); 5467 5468 String descjapjap_profiling = "Instruments null pointer and array checks"; 5469 if (descjapjap_profiling.length() > 0) { 5470 Label descLabeljapjap_profiling = new Label(editGroupjapjap_profiling, SWT.WRAP); 5471 descLabeljapjap_profiling.setText(descjapjap_profiling); 5472 } 5473 OptionData [] data; 5474 5475 5476 5477 5478 defKey = "p"+" "+"jap.profiling"+" "+"enabled"; 5479 defKey = defKey.trim(); 5480 5481 if (isInDefList(defKey)) { 5482 defaultBool = getBoolDef(defKey); 5483 } 5484 else { 5485 5486 defaultBool = false; 5487 5488 } 5489 5490 setjapjap_profilingenabled_widget(new BooleanOptionWidget(editGroupjapjap_profiling, SWT.NONE, new OptionData("Enabled", "p", "jap.profiling","enabled", "\n", defaultBool))); 5491 5492 5493 5494 defKey = "p"+" "+"jap.profiling"+" "+"notmainentry"; 5495 defKey = defKey.trim(); 5496 5497 if (isInDefList(defKey)) { 5498 defaultBool = getBoolDef(defKey); 5499 } 5500 else { 5501 5502 defaultBool = false; 5503 5504 } 5505 5506 setjapjap_profilingnotmainentry_widget(new BooleanOptionWidget(editGroupjapjap_profiling, SWT.NONE, new OptionData("Not Main Entry", "p", "jap.profiling","notmainentry", "\nInsert the calls to the MultiCounter at the beginning and end \nof methods with the signature long \nrunBenchmark(java.lang.String[]) instead of the signature void \nmain(java.lang.String[]).", defaultBool))); 5507 5508 5509 5510 5511 return editGroupjapjap_profiling; 5512 } 5513 5514 5515 5516 private Composite japjap_seaCreate(Composite parent) { 5517 String defKey; 5518 String defaultString; 5519 boolean defaultBool = false; 5520 String defaultArray; 5521 5522 Group editGroupjapjap_sea = new Group(parent, SWT.NONE); 5523 GridLayout layout = new GridLayout(); 5524 editGroupjapjap_sea.setLayout(layout); 5525 5526 editGroupjapjap_sea.setText("Side Effect tagger"); 5527 5528 editGroupjapjap_sea.setData("id", "japjap_sea"); 5529 5530 String descjapjap_sea = "Side effect tagger"; 5531 if (descjapjap_sea.length() > 0) { 5532 Label descLabeljapjap_sea = new Label(editGroupjapjap_sea, SWT.WRAP); 5533 descLabeljapjap_sea.setText(descjapjap_sea); 5534 } 5535 OptionData [] data; 5536 5537 5538 5539 5540 defKey = "p"+" "+"jap.sea"+" "+"enabled"; 5541 defKey = defKey.trim(); 5542 5543 if (isInDefList(defKey)) { 5544 defaultBool = getBoolDef(defKey); 5545 } 5546 else { 5547 5548 defaultBool = false; 5549 5550 } 5551 5552 setjapjap_seaenabled_widget(new BooleanOptionWidget(editGroupjapjap_sea, SWT.NONE, new OptionData("Enabled", "p", "jap.sea","enabled", "\n", defaultBool))); 5553 5554 5555 5556 defKey = "p"+" "+"jap.sea"+" "+"naive"; 5557 defKey = defKey.trim(); 5558 5559 if (isInDefList(defKey)) { 5560 defaultBool = getBoolDef(defKey); 5561 } 5562 else { 5563 5564 defaultBool = false; 5565 5566 } 5567 5568 setjapjap_seanaive_widget(new BooleanOptionWidget(editGroupjapjap_sea, SWT.NONE, new OptionData("Build naive dependence graph", "p", "jap.sea","naive", "\nWhen set to true, the dependence graph is built with a node for \neach statement, without merging the nodes for equivalent \nstatements. This makes it possible to measure the effect of \nmerging nodes for equivalent statements on the size of the \ndependence graph.", defaultBool))); 5569 5570 5571 5572 5573 return editGroupjapjap_sea; 5574 } 5575 5576 5577 5578 private Composite japjap_fieldrwCreate(Composite parent) { 5579 String defKey; 5580 String defaultString; 5581 boolean defaultBool = false; 5582 String defaultArray; 5583 5584 Group editGroupjapjap_fieldrw = new Group(parent, SWT.NONE); 5585 GridLayout layout = new GridLayout(); 5586 editGroupjapjap_fieldrw.setLayout(layout); 5587 5588 editGroupjapjap_fieldrw.setText("Field Read/Write Tagger"); 5589 5590 editGroupjapjap_fieldrw.setData("id", "japjap_fieldrw"); 5591 5592 String descjapjap_fieldrw = "Field read/write tagger"; 5593 if (descjapjap_fieldrw.length() > 0) { 5594 Label descLabeljapjap_fieldrw = new Label(editGroupjapjap_fieldrw, SWT.WRAP); 5595 descLabeljapjap_fieldrw.setText(descjapjap_fieldrw); 5596 } 5597 OptionData [] data; 5598 5599 5600 5601 5602 defKey = "p"+" "+"jap.fieldrw"+" "+"enabled"; 5603 defKey = defKey.trim(); 5604 5605 if (isInDefList(defKey)) { 5606 defaultBool = getBoolDef(defKey); 5607 } 5608 else { 5609 5610 defaultBool = false; 5611 5612 } 5613 5614 setjapjap_fieldrwenabled_widget(new BooleanOptionWidget(editGroupjapjap_fieldrw, SWT.NONE, new OptionData("Enabled", "p", "jap.fieldrw","enabled", "\n", defaultBool))); 5615 5616 5617 5618 defKey = "p"+" "+"jap.fieldrw"+" "+"threshold"; 5619 defKey = defKey.trim(); 5620 5621 if (isInDefList(defKey)) { 5622 defaultString = getStringDef(defKey); 5623 } 5624 else { 5625 5626 defaultString = "100"; 5627 5628 } 5629 5630 setjapjap_fieldrwthreshold_widget(new StringOptionWidget(editGroupjapjap_fieldrw, SWT.NONE, new OptionData("Maximum number of fields", "p", "jap.fieldrw","threshold", "\nIf a statement reads/writes more than this number of fields, no \ntag will be produced for it, in order to keep the size of the \ntags reasonable. ", defaultString))); 5631 5632 5633 5634 return editGroupjapjap_fieldrw; 5635 } 5636 5637 5638 5639 private Composite japjap_cgtaggerCreate(Composite parent) { 5640 String defKey; 5641 String defaultString; 5642 boolean defaultBool = false; 5643 String defaultArray; 5644 5645 Group editGroupjapjap_cgtagger = new Group(parent, SWT.NONE); 5646 GridLayout layout = new GridLayout(); 5647 editGroupjapjap_cgtagger.setLayout(layout); 5648 5649 editGroupjapjap_cgtagger.setText("Call Graph Tagger"); 5650 5651 editGroupjapjap_cgtagger.setData("id", "japjap_cgtagger"); 5652 5653 String descjapjap_cgtagger = "Call graph tagger"; 5654 if (descjapjap_cgtagger.length() > 0) { 5655 Label descLabeljapjap_cgtagger = new Label(editGroupjapjap_cgtagger, SWT.WRAP); 5656 descLabeljapjap_cgtagger.setText(descjapjap_cgtagger); 5657 } 5658 OptionData [] data; 5659 5660 5661 5662 5663 defKey = "p"+" "+"jap.cgtagger"+" "+"enabled"; 5664 defKey = defKey.trim(); 5665 5666 if (isInDefList(defKey)) { 5667 defaultBool = getBoolDef(defKey); 5668 } 5669 else { 5670 5671 defaultBool = false; 5672 5673 } 5674 5675 setjapjap_cgtaggerenabled_widget(new BooleanOptionWidget(editGroupjapjap_cgtagger, SWT.NONE, new OptionData("Enabled", "p", "jap.cgtagger","enabled", "\n", defaultBool))); 5676 5677 5678 5679 5680 return editGroupjapjap_cgtagger; 5681 } 5682 5683 5684 5685 private Composite japjap_parityCreate(Composite parent) { 5686 String defKey; 5687 String defaultString; 5688 boolean defaultBool = false; 5689 String defaultArray; 5690 5691 Group editGroupjapjap_parity = new Group(parent, SWT.NONE); 5692 GridLayout layout = new GridLayout(); 5693 editGroupjapjap_parity.setLayout(layout); 5694 5695 editGroupjapjap_parity.setText("Parity Tagger"); 5696 5697 editGroupjapjap_parity.setData("id", "japjap_parity"); 5698 5699 String descjapjap_parity = "Parity tagger"; 5700 if (descjapjap_parity.length() > 0) { 5701 Label descLabeljapjap_parity = new Label(editGroupjapjap_parity, SWT.WRAP); 5702 descLabeljapjap_parity.setText(descjapjap_parity); 5703 } 5704 OptionData [] data; 5705 5706 5707 5708 5709 defKey = "p"+" "+"jap.parity"+" "+"enabled"; 5710 defKey = defKey.trim(); 5711 5712 if (isInDefList(defKey)) { 5713 defaultBool = getBoolDef(defKey); 5714 } 5715 else { 5716 5717 defaultBool = false; 5718 5719 } 5720 5721 setjapjap_parityenabled_widget(new BooleanOptionWidget(editGroupjapjap_parity, SWT.NONE, new OptionData("Enabled", "p", "jap.parity","enabled", "\n", defaultBool))); 5722 5723 5724 5725 5726 return editGroupjapjap_parity; 5727 } 5728 5729 5730 5731 private Composite japjap_patCreate(Composite parent) { 5732 String defKey; 5733 String defaultString; 5734 boolean defaultBool = false; 5735 String defaultArray; 5736 5737 Group editGroupjapjap_pat = new Group(parent, SWT.NONE); 5738 GridLayout layout = new GridLayout(); 5739 editGroupjapjap_pat.setLayout(layout); 5740 5741 editGroupjapjap_pat.setText("Parameter Alias Tagger"); 5742 5743 editGroupjapjap_pat.setData("id", "japjap_pat"); 5744 5745 String descjapjap_pat = "Colour-codes method parameters that may be aliased"; 5746 if (descjapjap_pat.length() > 0) { 5747 Label descLabeljapjap_pat = new Label(editGroupjapjap_pat, SWT.WRAP); 5748 descLabeljapjap_pat.setText(descjapjap_pat); 5749 } 5750 OptionData [] data; 5751 5752 5753 5754 5755 defKey = "p"+" "+"jap.pat"+" "+"enabled"; 5756 defKey = defKey.trim(); 5757 5758 if (isInDefList(defKey)) { 5759 defaultBool = getBoolDef(defKey); 5760 } 5761 else { 5762 5763 defaultBool = false; 5764 5765 } 5766 5767 setjapjap_patenabled_widget(new BooleanOptionWidget(editGroupjapjap_pat, SWT.NONE, new OptionData("Enabled", "p", "jap.pat","enabled", "\n", defaultBool))); 5768 5769 5770 5771 5772 return editGroupjapjap_pat; 5773 } 5774 5775 5776 5777 private Composite japjap_lvtaggerCreate(Composite parent) { 5778 String defKey; 5779 String defaultString; 5780 boolean defaultBool = false; 5781 String defaultArray; 5782 5783 Group editGroupjapjap_lvtagger = new Group(parent, SWT.NONE); 5784 GridLayout layout = new GridLayout(); 5785 editGroupjapjap_lvtagger.setLayout(layout); 5786 5787 editGroupjapjap_lvtagger.setText("Live Variables Tagger"); 5788 5789 editGroupjapjap_lvtagger.setData("id", "japjap_lvtagger"); 5790 5791 String descjapjap_lvtagger = "Creates color tags for live variables"; 5792 if (descjapjap_lvtagger.length() > 0) { 5793 Label descLabeljapjap_lvtagger = new Label(editGroupjapjap_lvtagger, SWT.WRAP); 5794 descLabeljapjap_lvtagger.setText(descjapjap_lvtagger); 5795 } 5796 OptionData [] data; 5797 5798 5799 5800 5801 defKey = "p"+" "+"jap.lvtagger"+" "+"enabled"; 5802 defKey = defKey.trim(); 5803 5804 if (isInDefList(defKey)) { 5805 defaultBool = getBoolDef(defKey); 5806 } 5807 else { 5808 5809 defaultBool = false; 5810 5811 } 5812 5813 setjapjap_lvtaggerenabled_widget(new BooleanOptionWidget(editGroupjapjap_lvtagger, SWT.NONE, new OptionData("Enabled", "p", "jap.lvtagger","enabled", "\n", defaultBool))); 5814 5815 5816 5817 5818 return editGroupjapjap_lvtagger; 5819 } 5820 5821 5822 5823 private Composite japjap_rdtaggerCreate(Composite parent) { 5824 String defKey; 5825 String defaultString; 5826 boolean defaultBool = false; 5827 String defaultArray; 5828 5829 Group editGroupjapjap_rdtagger = new Group(parent, SWT.NONE); 5830 GridLayout layout = new GridLayout(); 5831 editGroupjapjap_rdtagger.setLayout(layout); 5832 5833 editGroupjapjap_rdtagger.setText("Reaching Defs Tagger"); 5834 5835 editGroupjapjap_rdtagger.setData("id", "japjap_rdtagger"); 5836 5837 String descjapjap_rdtagger = "Creates link tags for reaching defs"; 5838 if (descjapjap_rdtagger.length() > 0) { 5839 Label descLabeljapjap_rdtagger = new Label(editGroupjapjap_rdtagger, SWT.WRAP); 5840 descLabeljapjap_rdtagger.setText(descjapjap_rdtagger); 5841 } 5842 OptionData [] data; 5843 5844 5845 5846 5847 defKey = "p"+" "+"jap.rdtagger"+" "+"enabled"; 5848 defKey = defKey.trim(); 5849 5850 if (isInDefList(defKey)) { 5851 defaultBool = getBoolDef(defKey); 5852 } 5853 else { 5854 5855 defaultBool = false; 5856 5857 } 5858 5859 setjapjap_rdtaggerenabled_widget(new BooleanOptionWidget(editGroupjapjap_rdtagger, SWT.NONE, new OptionData("Enabled", "p", "jap.rdtagger","enabled", "\n", defaultBool))); 5860 5861 5862 5863 5864 return editGroupjapjap_rdtagger; 5865 } 5866 5867 5868 5869 private Composite japjap_cheCreate(Composite parent) { 5870 String defKey; 5871 String defaultString; 5872 boolean defaultBool = false; 5873 String defaultArray; 5874 5875 Group editGroupjapjap_che = new Group(parent, SWT.NONE); 5876 GridLayout layout = new GridLayout(); 5877 editGroupjapjap_che.setLayout(layout); 5878 5879 editGroupjapjap_che.setText("Cast Elimination Check Tagger"); 5880 5881 editGroupjapjap_che.setData("id", "japjap_che"); 5882 5883 String descjapjap_che = "Indicates whether cast checks can be eliminated"; 5884 if (descjapjap_che.length() > 0) { 5885 Label descLabeljapjap_che = new Label(editGroupjapjap_che, SWT.WRAP); 5886 descLabeljapjap_che.setText(descjapjap_che); 5887 } 5888 OptionData [] data; 5889 5890 5891 5892 5893 defKey = "p"+" "+"jap.che"+" "+"enabled"; 5894 defKey = defKey.trim(); 5895 5896 if (isInDefList(defKey)) { 5897 defaultBool = getBoolDef(defKey); 5898 } 5899 else { 5900 5901 defaultBool = false; 5902 5903 } 5904 5905 setjapjap_cheenabled_widget(new BooleanOptionWidget(editGroupjapjap_che, SWT.NONE, new OptionData("Enabled", "p", "jap.che","enabled", "\n", defaultBool))); 5906 5907 5908 5909 5910 return editGroupjapjap_che; 5911 } 5912 5913 5914 5915 private Composite japjap_umtCreate(Composite parent) { 5916 String defKey; 5917 String defaultString; 5918 boolean defaultBool = false; 5919 String defaultArray; 5920 5921 Group editGroupjapjap_umt = new Group(parent, SWT.NONE); 5922 GridLayout layout = new GridLayout(); 5923 editGroupjapjap_umt.setLayout(layout); 5924 5925 editGroupjapjap_umt.setText("Unreachable Method Transformer"); 5926 5927 editGroupjapjap_umt.setData("id", "japjap_umt"); 5928 5929 String descjapjap_umt = "Inserts assertions into unreachable methods"; 5930 if (descjapjap_umt.length() > 0) { 5931 Label descLabeljapjap_umt = new Label(editGroupjapjap_umt, SWT.WRAP); 5932 descLabeljapjap_umt.setText(descjapjap_umt); 5933 } 5934 OptionData [] data; 5935 5936 5937 5938 5939 defKey = "p"+" "+"jap.umt"+" "+"enabled"; 5940 defKey = defKey.trim(); 5941 5942 if (isInDefList(defKey)) { 5943 defaultBool = getBoolDef(defKey); 5944 } 5945 else { 5946 5947 defaultBool = false; 5948 5949 } 5950 5951 setjapjap_umtenabled_widget(new BooleanOptionWidget(editGroupjapjap_umt, SWT.NONE, new OptionData("Enabled", "p", "jap.umt","enabled", "\n", defaultBool))); 5952 5953 5954 5955 5956 return editGroupjapjap_umt; 5957 } 5958 5959 5960 5961 private Composite japjap_litCreate(Composite parent) { 5962 String defKey; 5963 String defaultString; 5964 boolean defaultBool = false; 5965 String defaultArray; 5966 5967 Group editGroupjapjap_lit = new Group(parent, SWT.NONE); 5968 GridLayout layout = new GridLayout(); 5969 editGroupjapjap_lit.setLayout(layout); 5970 5971 editGroupjapjap_lit.setText("Loop Invariant Tagger"); 5972 5973 editGroupjapjap_lit.setData("id", "japjap_lit"); 5974 5975 String descjapjap_lit = "Tags loop invariants"; 5976 if (descjapjap_lit.length() > 0) { 5977 Label descLabeljapjap_lit = new Label(editGroupjapjap_lit, SWT.WRAP); 5978 descLabeljapjap_lit.setText(descjapjap_lit); 5979 } 5980 OptionData [] data; 5981 5982 5983 5984 5985 defKey = "p"+" "+"jap.lit"+" "+"enabled"; 5986 defKey = defKey.trim(); 5987 5988 if (isInDefList(defKey)) { 5989 defaultBool = getBoolDef(defKey); 5990 } 5991 else { 5992 5993 defaultBool = false; 5994 5995 } 5996 5997 setjapjap_litenabled_widget(new BooleanOptionWidget(editGroupjapjap_lit, SWT.NONE, new OptionData("Enabled", "p", "jap.lit","enabled", "\n", defaultBool))); 5998 5999 6000 6001 6002 return editGroupjapjap_lit; 6003 } 6004 6005 6006 6007 private Composite japjap_aetCreate(Composite parent) { 6008 String defKey; 6009 String defaultString; 6010 boolean defaultBool = false; 6011 String defaultArray; 6012 6013 Group editGroupjapjap_aet = new Group(parent, SWT.NONE); 6014 GridLayout layout = new GridLayout(); 6015 editGroupjapjap_aet.setLayout(layout); 6016 6017 editGroupjapjap_aet.setText("Available Expressions Tagger"); 6018 6019 editGroupjapjap_aet.setData("id", "japjap_aet"); 6020 6021 String descjapjap_aet = "Tags statements with sets of available expressions"; 6022 if (descjapjap_aet.length() > 0) { 6023 Label descLabeljapjap_aet = new Label(editGroupjapjap_aet, SWT.WRAP); 6024 descLabeljapjap_aet.setText(descjapjap_aet); 6025 } 6026 OptionData [] data; 6027 6028 6029 6030 6031 defKey = "p"+" "+"jap.aet"+" "+"enabled"; 6032 defKey = defKey.trim(); 6033 6034 if (isInDefList(defKey)) { 6035 defaultBool = getBoolDef(defKey); 6036 } 6037 else { 6038 6039 defaultBool = false; 6040 6041 } 6042 6043 setjapjap_aetenabled_widget(new BooleanOptionWidget(editGroupjapjap_aet, SWT.NONE, new OptionData("Enabled", "p", "jap.aet","enabled", "\n", defaultBool))); 6044 6045 6046 6047 data = new OptionData [] { 6048 6049 new OptionData("Optimistic", 6050 "optimistic", 6051 "\n", 6052 6053 true), 6054 6055 new OptionData("Pessimistic", 6056 "pessimistic", 6057 "\n", 6058 6059 false), 6060 6061 }; 6062 6063 6064 setjapjap_aetkind_widget(new MultiOptionWidget(editGroupjapjap_aet, SWT.NONE, data, new OptionData("Kind", "p", "jap.aet","kind", "\n"))); 6065 6066 defKey = "p"+" "+"jap.aet"+" "+"kind"; 6067 defKey = defKey.trim(); 6068 6069 if (isInDefList(defKey)) { 6070 defaultString = getStringDef(defKey); 6071 6072 getjapjap_aetkind_widget().setDef(defaultString); 6073 } 6074 6075 6076 6077 6078 return editGroupjapjap_aet; 6079 } 6080 6081 6082 6083 private Composite japjap_dmtCreate(Composite parent) { 6084 String defKey; 6085 String defaultString; 6086 boolean defaultBool = false; 6087 String defaultArray; 6088 6089 Group editGroupjapjap_dmt = new Group(parent, SWT.NONE); 6090 GridLayout layout = new GridLayout(); 6091 editGroupjapjap_dmt.setLayout(layout); 6092 6093 editGroupjapjap_dmt.setText("Dominators Tagger"); 6094 6095 editGroupjapjap_dmt.setData("id", "japjap_dmt"); 6096 6097 String descjapjap_dmt = "Tags dominators of statement"; 6098 if (descjapjap_dmt.length() > 0) { 6099 Label descLabeljapjap_dmt = new Label(editGroupjapjap_dmt, SWT.WRAP); 6100 descLabeljapjap_dmt.setText(descjapjap_dmt); 6101 } 6102 OptionData [] data; 6103 6104 6105 6106 6107 defKey = "p"+" "+"jap.dmt"+" "+"enabled"; 6108 defKey = defKey.trim(); 6109 6110 if (isInDefList(defKey)) { 6111 defaultBool = getBoolDef(defKey); 6112 } 6113 else { 6114 6115 defaultBool = false; 6116 6117 } 6118 6119 setjapjap_dmtenabled_widget(new BooleanOptionWidget(editGroupjapjap_dmt, SWT.NONE, new OptionData("Enabled", "p", "jap.dmt","enabled", "\n", defaultBool))); 6120 6121 6122 6123 6124 return editGroupjapjap_dmt; 6125 } 6126 6127 6128 6129 private Composite gbCreate(Composite parent) { 6130 String defKey; 6131 String defaultString; 6132 boolean defaultBool = false; 6133 String defaultArray; 6134 6135 Group editGroupgb = new Group(parent, SWT.NONE); 6136 GridLayout layout = new GridLayout(); 6137 editGroupgb.setLayout(layout); 6138 6139 editGroupgb.setText("Grimp Body Creation"); 6140 6141 editGroupgb.setData("id", "gb"); 6142 6143 String descgb = "Creates a GrimpBody for each method"; 6144 if (descgb.length() > 0) { 6145 Label descLabelgb = new Label(editGroupgb, SWT.WRAP); 6146 descLabelgb.setText(descgb); 6147 } 6148 OptionData [] data; 6149 6150 6151 6152 6153 defKey = "p"+" "+"gb"+" "+"enabled"; 6154 defKey = defKey.trim(); 6155 6156 if (isInDefList(defKey)) { 6157 defaultBool = getBoolDef(defKey); 6158 } 6159 else { 6160 6161 defaultBool = true; 6162 6163 } 6164 6165 setgbenabled_widget(new BooleanOptionWidget(editGroupgb, SWT.NONE, new OptionData("Enabled", "p", "gb","enabled", "\n", defaultBool))); 6166 6167 6168 6169 6170 return editGroupgb; 6171 } 6172 6173 6174 6175 private Composite gbgb_a1Create(Composite parent) { 6176 String defKey; 6177 String defaultString; 6178 boolean defaultBool = false; 6179 String defaultArray; 6180 6181 Group editGroupgbgb_a1 = new Group(parent, SWT.NONE); 6182 GridLayout layout = new GridLayout(); 6183 editGroupgbgb_a1.setLayout(layout); 6184 6185 editGroupgbgb_a1.setText("Grimp Pre-folding Aggregator"); 6186 6187 editGroupgbgb_a1.setData("id", "gbgb_a1"); 6188 6189 String descgbgb_a1 = "Aggregator: removes some copies, pre-folding"; 6190 if (descgbgb_a1.length() > 0) { 6191 Label descLabelgbgb_a1 = new Label(editGroupgbgb_a1, SWT.WRAP); 6192 descLabelgbgb_a1.setText(descgbgb_a1); 6193 } 6194 OptionData [] data; 6195 6196 6197 6198 6199 defKey = "p"+" "+"gb.a1"+" "+"enabled"; 6200 defKey = defKey.trim(); 6201 6202 if (isInDefList(defKey)) { 6203 defaultBool = getBoolDef(defKey); 6204 } 6205 else { 6206 6207 defaultBool = true; 6208 6209 } 6210 6211 setgbgb_a1enabled_widget(new BooleanOptionWidget(editGroupgbgb_a1, SWT.NONE, new OptionData("Enabled", "p", "gb.a1","enabled", "\n", defaultBool))); 6212 6213 6214 6215 defKey = "p"+" "+"gb.a1"+" "+"only-stack-locals"; 6216 defKey = defKey.trim(); 6217 6218 if (isInDefList(defKey)) { 6219 defaultBool = getBoolDef(defKey); 6220 } 6221 else { 6222 6223 defaultBool = true; 6224 6225 } 6226 6227 setgbgb_a1only_stack_locals_widget(new BooleanOptionWidget(editGroupgbgb_a1, SWT.NONE, new OptionData("Only Stack Locals", "p", "gb.a1","only-stack-locals", "\nAggregate only values stored in stack locals. ", defaultBool))); 6228 6229 6230 6231 6232 return editGroupgbgb_a1; 6233 } 6234 6235 6236 6237 private Composite gbgb_cfCreate(Composite parent) { 6238 String defKey; 6239 String defaultString; 6240 boolean defaultBool = false; 6241 String defaultArray; 6242 6243 Group editGroupgbgb_cf = new Group(parent, SWT.NONE); 6244 GridLayout layout = new GridLayout(); 6245 editGroupgbgb_cf.setLayout(layout); 6246 6247 editGroupgbgb_cf.setText("Grimp Constructor Folder"); 6248 6249 editGroupgbgb_cf.setData("id", "gbgb_cf"); 6250 6251 String descgbgb_cf = "Constructor folder"; 6252 if (descgbgb_cf.length() > 0) { 6253 Label descLabelgbgb_cf = new Label(editGroupgbgb_cf, SWT.WRAP); 6254 descLabelgbgb_cf.setText(descgbgb_cf); 6255 } 6256 OptionData [] data; 6257 6258 6259 6260 6261 defKey = "p"+" "+"gb.cf"+" "+"enabled"; 6262 defKey = defKey.trim(); 6263 6264 if (isInDefList(defKey)) { 6265 defaultBool = getBoolDef(defKey); 6266 } 6267 else { 6268 6269 defaultBool = true; 6270 6271 } 6272 6273 setgbgb_cfenabled_widget(new BooleanOptionWidget(editGroupgbgb_cf, SWT.NONE, new OptionData("Enabled", "p", "gb.cf","enabled", "\n", defaultBool))); 6274 6275 6276 6277 6278 return editGroupgbgb_cf; 6279 } 6280 6281 6282 6283 private Composite gbgb_a2Create(Composite parent) { 6284 String defKey; 6285 String defaultString; 6286 boolean defaultBool = false; 6287 String defaultArray; 6288 6289 Group editGroupgbgb_a2 = new Group(parent, SWT.NONE); 6290 GridLayout layout = new GridLayout(); 6291 editGroupgbgb_a2.setLayout(layout); 6292 6293 editGroupgbgb_a2.setText("Grimp Post-folding Aggregator"); 6294 6295 editGroupgbgb_a2.setData("id", "gbgb_a2"); 6296 6297 String descgbgb_a2 = "Aggregator: removes some copies, post-folding"; 6298 if (descgbgb_a2.length() > 0) { 6299 Label descLabelgbgb_a2 = new Label(editGroupgbgb_a2, SWT.WRAP); 6300 descLabelgbgb_a2.setText(descgbgb_a2); 6301 } 6302 OptionData [] data; 6303 6304 6305 6306 6307 defKey = "p"+" "+"gb.a2"+" "+"enabled"; 6308 defKey = defKey.trim(); 6309 6310 if (isInDefList(defKey)) { 6311 defaultBool = getBoolDef(defKey); 6312 } 6313 else { 6314 6315 defaultBool = true; 6316 6317 } 6318 6319 setgbgb_a2enabled_widget(new BooleanOptionWidget(editGroupgbgb_a2, SWT.NONE, new OptionData("Enabled", "p", "gb.a2","enabled", "\n", defaultBool))); 6320 6321 6322 6323 defKey = "p"+" "+"gb.a2"+" "+"only-stack-locals"; 6324 defKey = defKey.trim(); 6325 6326 if (isInDefList(defKey)) { 6327 defaultBool = getBoolDef(defKey); 6328 } 6329 else { 6330 6331 defaultBool = true; 6332 6333 } 6334 6335 setgbgb_a2only_stack_locals_widget(new BooleanOptionWidget(editGroupgbgb_a2, SWT.NONE, new OptionData("Only Stack Locals", "p", "gb.a2","only-stack-locals", "\nAggregate only values stored in stack locals. ", defaultBool))); 6336 6337 6338 6339 6340 return editGroupgbgb_a2; 6341 } 6342 6343 6344 6345 private Composite gbgb_uleCreate(Composite parent) { 6346 String defKey; 6347 String defaultString; 6348 boolean defaultBool = false; 6349 String defaultArray; 6350 6351 Group editGroupgbgb_ule = new Group(parent, SWT.NONE); 6352 GridLayout layout = new GridLayout(); 6353 editGroupgbgb_ule.setLayout(layout); 6354 6355 editGroupgbgb_ule.setText("Grimp Unused Local Eliminator"); 6356 6357 editGroupgbgb_ule.setData("id", "gbgb_ule"); 6358 6359 String descgbgb_ule = "Unused local eliminator"; 6360 if (descgbgb_ule.length() > 0) { 6361 Label descLabelgbgb_ule = new Label(editGroupgbgb_ule, SWT.WRAP); 6362 descLabelgbgb_ule.setText(descgbgb_ule); 6363 } 6364 OptionData [] data; 6365 6366 6367 6368 6369 defKey = "p"+" "+"gb.ule"+" "+"enabled"; 6370 defKey = defKey.trim(); 6371 6372 if (isInDefList(defKey)) { 6373 defaultBool = getBoolDef(defKey); 6374 } 6375 else { 6376 6377 defaultBool = true; 6378 6379 } 6380 6381 setgbgb_uleenabled_widget(new BooleanOptionWidget(editGroupgbgb_ule, SWT.NONE, new OptionData("Enabled", "p", "gb.ule","enabled", "\n", defaultBool))); 6382 6383 6384 6385 6386 return editGroupgbgb_ule; 6387 } 6388 6389 6390 6391 private Composite gopCreate(Composite parent) { 6392 String defKey; 6393 String defaultString; 6394 boolean defaultBool = false; 6395 String defaultArray; 6396 6397 Group editGroupgop = new Group(parent, SWT.NONE); 6398 GridLayout layout = new GridLayout(); 6399 editGroupgop.setLayout(layout); 6400 6401 editGroupgop.setText("Grimp Optimization"); 6402 6403 editGroupgop.setData("id", "gop"); 6404 6405 String descgop = "Grimp optimization pack"; 6406 if (descgop.length() > 0) { 6407 Label descLabelgop = new Label(editGroupgop, SWT.WRAP); 6408 descLabelgop.setText(descgop); 6409 } 6410 OptionData [] data; 6411 6412 6413 6414 6415 defKey = "p"+" "+"gop"+" "+"enabled"; 6416 defKey = defKey.trim(); 6417 6418 if (isInDefList(defKey)) { 6419 defaultBool = getBoolDef(defKey); 6420 } 6421 else { 6422 6423 defaultBool = false; 6424 6425 } 6426 6427 setgopenabled_widget(new BooleanOptionWidget(editGroupgop, SWT.NONE, new OptionData("Enabled", "p", "gop","enabled", "\n", defaultBool))); 6428 6429 6430 6431 6432 return editGroupgop; 6433 } 6434 6435 6436 6437 private Composite bbCreate(Composite parent) { 6438 String defKey; 6439 String defaultString; 6440 boolean defaultBool = false; 6441 String defaultArray; 6442 6443 Group editGroupbb = new Group(parent, SWT.NONE); 6444 GridLayout layout = new GridLayout(); 6445 editGroupbb.setLayout(layout); 6446 6447 editGroupbb.setText("Baf Body Creation"); 6448 6449 editGroupbb.setData("id", "bb"); 6450 6451 String descbb = "Creates Baf bodies"; 6452 if (descbb.length() > 0) { 6453 Label descLabelbb = new Label(editGroupbb, SWT.WRAP); 6454 descLabelbb.setText(descbb); 6455 } 6456 OptionData [] data; 6457 6458 6459 6460 6461 defKey = "p"+" "+"bb"+" "+"enabled"; 6462 defKey = defKey.trim(); 6463 6464 if (isInDefList(defKey)) { 6465 defaultBool = getBoolDef(defKey); 6466 } 6467 else { 6468 6469 defaultBool = true; 6470 6471 } 6472 6473 setbbenabled_widget(new BooleanOptionWidget(editGroupbb, SWT.NONE, new OptionData("Enabled", "p", "bb","enabled", "\n", defaultBool))); 6474 6475 6476 6477 6478 return editGroupbb; 6479 } 6480 6481 6482 6483 private Composite bbbb_lsoCreate(Composite parent) { 6484 String defKey; 6485 String defaultString; 6486 boolean defaultBool = false; 6487 String defaultArray; 6488 6489 Group editGroupbbbb_lso = new Group(parent, SWT.NONE); 6490 GridLayout layout = new GridLayout(); 6491 editGroupbbbb_lso.setLayout(layout); 6492 6493 editGroupbbbb_lso.setText("Load Store Optimizer"); 6494 6495 editGroupbbbb_lso.setData("id", "bbbb_lso"); 6496 6497 String descbbbb_lso = "Load store optimizer"; 6498 if (descbbbb_lso.length() > 0) { 6499 Label descLabelbbbb_lso = new Label(editGroupbbbb_lso, SWT.WRAP); 6500 descLabelbbbb_lso.setText(descbbbb_lso); 6501 } 6502 OptionData [] data; 6503 6504 6505 6506 6507 defKey = "p"+" "+"bb.lso"+" "+"enabled"; 6508 defKey = defKey.trim(); 6509 6510 if (isInDefList(defKey)) { 6511 defaultBool = getBoolDef(defKey); 6512 } 6513 else { 6514 6515 defaultBool = true; 6516 6517 } 6518 6519 setbbbb_lsoenabled_widget(new BooleanOptionWidget(editGroupbbbb_lso, SWT.NONE, new OptionData("Enabled", "p", "bb.lso","enabled", "\n", defaultBool))); 6520 6521 6522 6523 defKey = "p"+" "+"bb.lso"+" "+"debug"; 6524 defKey = defKey.trim(); 6525 6526 if (isInDefList(defKey)) { 6527 defaultBool = getBoolDef(defKey); 6528 } 6529 else { 6530 6531 defaultBool = false; 6532 6533 } 6534 6535 setbbbb_lsodebug_widget(new BooleanOptionWidget(editGroupbbbb_lso, SWT.NONE, new OptionData("Debug", "p", "bb.lso","debug", "\nProduces voluminous debugging output describing the progress of \nthe load store optimizer. ", defaultBool))); 6536 6537 6538 6539 defKey = "p"+" "+"bb.lso"+" "+"inter"; 6540 defKey = defKey.trim(); 6541 6542 if (isInDefList(defKey)) { 6543 defaultBool = getBoolDef(defKey); 6544 } 6545 else { 6546 6547 defaultBool = false; 6548 6549 } 6550 6551 setbbbb_lsointer_widget(new BooleanOptionWidget(editGroupbbbb_lso, SWT.NONE, new OptionData("Inter", "p", "bb.lso","inter", "\nEnables two simple inter-block optimizations which attempt to \nkeep some variables on the stack between blocks. Both are \nintended to catch if-like constructions where control flow \nbranches temporarily into two paths that converge at a later \npoint. ", defaultBool))); 6552 6553 6554 6555 defKey = "p"+" "+"bb.lso"+" "+"sl"; 6556 defKey = defKey.trim(); 6557 6558 if (isInDefList(defKey)) { 6559 defaultBool = getBoolDef(defKey); 6560 } 6561 else { 6562 6563 defaultBool = true; 6564 6565 } 6566 6567 setbbbb_lsosl_widget(new BooleanOptionWidget(editGroupbbbb_lso, SWT.NONE, new OptionData("sl", "p", "bb.lso","sl", "\nEnables an optimization which attempts to eliminate store/load \npairs. ", defaultBool))); 6568 6569 6570 6571 defKey = "p"+" "+"bb.lso"+" "+"sl2"; 6572 defKey = defKey.trim(); 6573 6574 if (isInDefList(defKey)) { 6575 defaultBool = getBoolDef(defKey); 6576 } 6577 else { 6578 6579 defaultBool = false; 6580 6581 } 6582 6583 setbbbb_lsosl2_widget(new BooleanOptionWidget(editGroupbbbb_lso, SWT.NONE, new OptionData("sl2", "p", "bb.lso","sl2", "\nEnables an a second pass of the optimization which attempts to \neliminate store/load pairs. ", defaultBool))); 6584 6585 6586 6587 defKey = "p"+" "+"bb.lso"+" "+"sll"; 6588 defKey = defKey.trim(); 6589 6590 if (isInDefList(defKey)) { 6591 defaultBool = getBoolDef(defKey); 6592 } 6593 else { 6594 6595 defaultBool = true; 6596 6597 } 6598 6599 setbbbb_lsosll_widget(new BooleanOptionWidget(editGroupbbbb_lso, SWT.NONE, new OptionData("sll", "p", "bb.lso","sll", "\nEnables an optimization which attempts to eliminate \nstore/load/load trios with some variant of dup. ", defaultBool))); 6600 6601 6602 6603 defKey = "p"+" "+"bb.lso"+" "+"sll2"; 6604 defKey = defKey.trim(); 6605 6606 if (isInDefList(defKey)) { 6607 defaultBool = getBoolDef(defKey); 6608 } 6609 else { 6610 6611 defaultBool = false; 6612 6613 } 6614 6615 setbbbb_lsosll2_widget(new BooleanOptionWidget(editGroupbbbb_lso, SWT.NONE, new OptionData("sll2", "p", "bb.lso","sll2", "\nEnables an a second pass of the optimization which attempts to \neliminate store/load/load trios with some variant of dup. ", defaultBool))); 6616 6617 6618 6619 6620 return editGroupbbbb_lso; 6621 } 6622 6623 6624 6625 private Composite bbbb_phoCreate(Composite parent) { 6626 String defKey; 6627 String defaultString; 6628 boolean defaultBool = false; 6629 String defaultArray; 6630 6631 Group editGroupbbbb_pho = new Group(parent, SWT.NONE); 6632 GridLayout layout = new GridLayout(); 6633 editGroupbbbb_pho.setLayout(layout); 6634 6635 editGroupbbbb_pho.setText("Peephole Optimizer"); 6636 6637 editGroupbbbb_pho.setData("id", "bbbb_pho"); 6638 6639 String descbbbb_pho = "Peephole optimizer"; 6640 if (descbbbb_pho.length() > 0) { 6641 Label descLabelbbbb_pho = new Label(editGroupbbbb_pho, SWT.WRAP); 6642 descLabelbbbb_pho.setText(descbbbb_pho); 6643 } 6644 OptionData [] data; 6645 6646 6647 6648 6649 defKey = "p"+" "+"bb.pho"+" "+"enabled"; 6650 defKey = defKey.trim(); 6651 6652 if (isInDefList(defKey)) { 6653 defaultBool = getBoolDef(defKey); 6654 } 6655 else { 6656 6657 defaultBool = true; 6658 6659 } 6660 6661 setbbbb_phoenabled_widget(new BooleanOptionWidget(editGroupbbbb_pho, SWT.NONE, new OptionData("Enabled", "p", "bb.pho","enabled", "\n", defaultBool))); 6662 6663 6664 6665 6666 return editGroupbbbb_pho; 6667 } 6668 6669 6670 6671 private Composite bbbb_uleCreate(Composite parent) { 6672 String defKey; 6673 String defaultString; 6674 boolean defaultBool = false; 6675 String defaultArray; 6676 6677 Group editGroupbbbb_ule = new Group(parent, SWT.NONE); 6678 GridLayout layout = new GridLayout(); 6679 editGroupbbbb_ule.setLayout(layout); 6680 6681 editGroupbbbb_ule.setText("Unused Local Eliminator"); 6682 6683 editGroupbbbb_ule.setData("id", "bbbb_ule"); 6684 6685 String descbbbb_ule = "Unused local eliminator"; 6686 if (descbbbb_ule.length() > 0) { 6687 Label descLabelbbbb_ule = new Label(editGroupbbbb_ule, SWT.WRAP); 6688 descLabelbbbb_ule.setText(descbbbb_ule); 6689 } 6690 OptionData [] data; 6691 6692 6693 6694 6695 defKey = "p"+" "+"bb.ule"+" "+"enabled"; 6696 defKey = defKey.trim(); 6697 6698 if (isInDefList(defKey)) { 6699 defaultBool = getBoolDef(defKey); 6700 } 6701 else { 6702 6703 defaultBool = true; 6704 6705 } 6706 6707 setbbbb_uleenabled_widget(new BooleanOptionWidget(editGroupbbbb_ule, SWT.NONE, new OptionData("Enabled", "p", "bb.ule","enabled", "\n", defaultBool))); 6708 6709 6710 6711 6712 return editGroupbbbb_ule; 6713 } 6714 6715 6716 6717 private Composite bbbb_lpCreate(Composite parent) { 6718 String defKey; 6719 String defaultString; 6720 boolean defaultBool = false; 6721 String defaultArray; 6722 6723 Group editGroupbbbb_lp = new Group(parent, SWT.NONE); 6724 GridLayout layout = new GridLayout(); 6725 editGroupbbbb_lp.setLayout(layout); 6726 6727 editGroupbbbb_lp.setText("Local Packer"); 6728 6729 editGroupbbbb_lp.setData("id", "bbbb_lp"); 6730 6731 String descbbbb_lp = "Local packer: minimizes number of locals"; 6732 if (descbbbb_lp.length() > 0) { 6733 Label descLabelbbbb_lp = new Label(editGroupbbbb_lp, SWT.WRAP); 6734 descLabelbbbb_lp.setText(descbbbb_lp); 6735 } 6736 OptionData [] data; 6737 6738 6739 6740 6741 defKey = "p"+" "+"bb.lp"+" "+"enabled"; 6742 defKey = defKey.trim(); 6743 6744 if (isInDefList(defKey)) { 6745 defaultBool = getBoolDef(defKey); 6746 } 6747 else { 6748 6749 defaultBool = true; 6750 6751 } 6752 6753 setbbbb_lpenabled_widget(new BooleanOptionWidget(editGroupbbbb_lp, SWT.NONE, new OptionData("Enabled", "p", "bb.lp","enabled", "\n", defaultBool))); 6754 6755 6756 6757 defKey = "p"+" "+"bb.lp"+" "+"unsplit-original-locals"; 6758 defKey = defKey.trim(); 6759 6760 if (isInDefList(defKey)) { 6761 defaultBool = getBoolDef(defKey); 6762 } 6763 else { 6764 6765 defaultBool = false; 6766 6767 } 6768 6769 setbbbb_lpunsplit_original_locals_widget(new BooleanOptionWidget(editGroupbbbb_lp, SWT.NONE, new OptionData("Unsplit Original Locals", "p", "bb.lp","unsplit-original-locals", "\nUse the variable names in the original source as a guide when \ndetermining how to share local variables across non-interfering \nvariable usages. This recombines named locals which were split \nby the Local Splitter. ", defaultBool))); 6770 6771 6772 6773 6774 return editGroupbbbb_lp; 6775 } 6776 6777 6778 6779 private Composite bopCreate(Composite parent) { 6780 String defKey; 6781 String defaultString; 6782 boolean defaultBool = false; 6783 String defaultArray; 6784 6785 Group editGroupbop = new Group(parent, SWT.NONE); 6786 GridLayout layout = new GridLayout(); 6787 editGroupbop.setLayout(layout); 6788 6789 editGroupbop.setText("Baf Optimization"); 6790 6791 editGroupbop.setData("id", "bop"); 6792 6793 String descbop = "Baf optimization pack"; 6794 if (descbop.length() > 0) { 6795 Label descLabelbop = new Label(editGroupbop, SWT.WRAP); 6796 descLabelbop.setText(descbop); 6797 } 6798 OptionData [] data; 6799 6800 6801 6802 6803 defKey = "p"+" "+"bop"+" "+"enabled"; 6804 defKey = defKey.trim(); 6805 6806 if (isInDefList(defKey)) { 6807 defaultBool = getBoolDef(defKey); 6808 } 6809 else { 6810 6811 defaultBool = false; 6812 6813 } 6814 6815 setbopenabled_widget(new BooleanOptionWidget(editGroupbop, SWT.NONE, new OptionData("Enabled", "p", "bop","enabled", "\n", defaultBool))); 6816 6817 6818 6819 6820 return editGroupbop; 6821 } 6822 6823 6824 6825 private Composite tagCreate(Composite parent) { 6826 String defKey; 6827 String defaultString; 6828 boolean defaultBool = false; 6829 String defaultArray; 6830 6831 Group editGrouptag = new Group(parent, SWT.NONE); 6832 GridLayout layout = new GridLayout(); 6833 editGrouptag.setLayout(layout); 6834 6835 editGrouptag.setText("Tag Aggregator"); 6836 6837 editGrouptag.setData("id", "tag"); 6838 6839 String desctag = "Tag aggregator: turns tags into attributes"; 6840 if (desctag.length() > 0) { 6841 Label descLabeltag = new Label(editGrouptag, SWT.WRAP); 6842 descLabeltag.setText(desctag); 6843 } 6844 OptionData [] data; 6845 6846 6847 6848 6849 defKey = "p"+" "+"tag"+" "+"enabled"; 6850 defKey = defKey.trim(); 6851 6852 if (isInDefList(defKey)) { 6853 defaultBool = getBoolDef(defKey); 6854 } 6855 else { 6856 6857 defaultBool = true; 6858 6859 } 6860 6861 settagenabled_widget(new BooleanOptionWidget(editGrouptag, SWT.NONE, new OptionData("Enabled", "p", "tag","enabled", "\n", defaultBool))); 6862 6863 6864 6865 6866 return editGrouptag; 6867 } 6868 6869 6870 6871 private Composite tagtag_lnCreate(Composite parent) { 6872 String defKey; 6873 String defaultString; 6874 boolean defaultBool = false; 6875 String defaultArray; 6876 6877 Group editGrouptagtag_ln = new Group(parent, SWT.NONE); 6878 GridLayout layout = new GridLayout(); 6879 editGrouptagtag_ln.setLayout(layout); 6880 6881 editGrouptagtag_ln.setText("Line Number Tag Aggregator"); 6882 6883 editGrouptagtag_ln.setData("id", "tagtag_ln"); 6884 6885 String desctagtag_ln = "Line number aggregator"; 6886 if (desctagtag_ln.length() > 0) { 6887 Label descLabeltagtag_ln = new Label(editGrouptagtag_ln, SWT.WRAP); 6888 descLabeltagtag_ln.setText(desctagtag_ln); 6889 } 6890 OptionData [] data; 6891 6892 6893 6894 6895 defKey = "p"+" "+"tag.ln"+" "+"enabled"; 6896 defKey = defKey.trim(); 6897 6898 if (isInDefList(defKey)) { 6899 defaultBool = getBoolDef(defKey); 6900 } 6901 else { 6902 6903 defaultBool = true; 6904 6905 } 6906 6907 settagtag_lnenabled_widget(new BooleanOptionWidget(editGrouptagtag_ln, SWT.NONE, new OptionData("Enabled", "p", "tag.ln","enabled", "\n", defaultBool))); 6908 6909 6910 6911 6912 return editGrouptagtag_ln; 6913 } 6914 6915 6916 6917 private Composite tagtag_anCreate(Composite parent) { 6918 String defKey; 6919 String defaultString; 6920 boolean defaultBool = false; 6921 String defaultArray; 6922 6923 Group editGrouptagtag_an = new Group(parent, SWT.NONE); 6924 GridLayout layout = new GridLayout(); 6925 editGrouptagtag_an.setLayout(layout); 6926 6927 editGrouptagtag_an.setText("Array Bounds and Null Pointer Check Tag Aggregator"); 6928 6929 editGrouptagtag_an.setData("id", "tagtag_an"); 6930 6931 String desctagtag_an = "Array bounds and null pointer check aggregator"; 6932 if (desctagtag_an.length() > 0) { 6933 Label descLabeltagtag_an = new Label(editGrouptagtag_an, SWT.WRAP); 6934 descLabeltagtag_an.setText(desctagtag_an); 6935 } 6936 OptionData [] data; 6937 6938 6939 6940 6941 defKey = "p"+" "+"tag.an"+" "+"enabled"; 6942 defKey = defKey.trim(); 6943 6944 if (isInDefList(defKey)) { 6945 defaultBool = getBoolDef(defKey); 6946 } 6947 else { 6948 6949 defaultBool = false; 6950 6951 } 6952 6953 settagtag_anenabled_widget(new BooleanOptionWidget(editGrouptagtag_an, SWT.NONE, new OptionData("Enabled", "p", "tag.an","enabled", "\n", defaultBool))); 6954 6955 6956 6957 6958 return editGrouptagtag_an; 6959 } 6960 6961 6962 6963 private Composite tagtag_depCreate(Composite parent) { 6964 String defKey; 6965 String defaultString; 6966 boolean defaultBool = false; 6967 String defaultArray; 6968 6969 Group editGrouptagtag_dep = new Group(parent, SWT.NONE); 6970 GridLayout layout = new GridLayout(); 6971 editGrouptagtag_dep.setLayout(layout); 6972 6973 editGrouptagtag_dep.setText("Dependence Tag Aggregator"); 6974 6975 editGrouptagtag_dep.setData("id", "tagtag_dep"); 6976 6977 String desctagtag_dep = "Dependence aggregator"; 6978 if (desctagtag_dep.length() > 0) { 6979 Label descLabeltagtag_dep = new Label(editGrouptagtag_dep, SWT.WRAP); 6980 descLabeltagtag_dep.setText(desctagtag_dep); 6981 } 6982 OptionData [] data; 6983 6984 6985 6986 6987 defKey = "p"+" "+"tag.dep"+" "+"enabled"; 6988 defKey = defKey.trim(); 6989 6990 if (isInDefList(defKey)) { 6991 defaultBool = getBoolDef(defKey); 6992 } 6993 else { 6994 6995 defaultBool = false; 6996 6997 } 6998 6999 settagtag_depenabled_widget(new BooleanOptionWidget(editGrouptagtag_dep, SWT.NONE, new OptionData("Enabled", "p", "tag.dep","enabled", "\n", defaultBool))); 7000 7001 7002 7003 7004 return editGrouptagtag_dep; 7005 } 7006 7007 7008 7009 private Composite tagtag_fieldrwCreate(Composite parent) { 7010 String defKey; 7011 String defaultString; 7012 boolean defaultBool = false; 7013 String defaultArray; 7014 7015 Group editGrouptagtag_fieldrw = new Group(parent, SWT.NONE); 7016 GridLayout layout = new GridLayout(); 7017 editGrouptagtag_fieldrw.setLayout(layout); 7018 7019 editGrouptagtag_fieldrw.setText("Field Read/Write Tag Aggregator"); 7020 7021 editGrouptagtag_fieldrw.setData("id", "tagtag_fieldrw"); 7022 7023 String desctagtag_fieldrw = "Field read/write aggregator"; 7024 if (desctagtag_fieldrw.length() > 0) { 7025 Label descLabeltagtag_fieldrw = new Label(editGrouptagtag_fieldrw, SWT.WRAP); 7026 descLabeltagtag_fieldrw.setText(desctagtag_fieldrw); 7027 } 7028 OptionData [] data; 7029 7030 7031 7032 7033 defKey = "p"+" "+"tag.fieldrw"+" "+"enabled"; 7034 defKey = defKey.trim(); 7035 7036 if (isInDefList(defKey)) { 7037 defaultBool = getBoolDef(defKey); 7038 } 7039 else { 7040 7041 defaultBool = false; 7042 7043 } 7044 7045 settagtag_fieldrwenabled_widget(new BooleanOptionWidget(editGrouptagtag_fieldrw, SWT.NONE, new OptionData("Enabled", "p", "tag.fieldrw","enabled", "\n", defaultBool))); 7046 7047 7048 7049 7050 return editGrouptagtag_fieldrw; 7051 } 7052 7053 7054 7055 private Composite dbCreate(Composite parent) { 7056 String defKey; 7057 String defaultString; 7058 boolean defaultBool = false; 7059 String defaultArray; 7060 7061 Group editGroupdb = new Group(parent, SWT.NONE); 7062 GridLayout layout = new GridLayout(); 7063 editGroupdb.setLayout(layout); 7064 7065 editGroupdb.setText("Dava Body Creation"); 7066 7067 editGroupdb.setData("id", "db"); 7068 7069 String descdb = "Dummy phase to store options for Dava"; 7070 if (descdb.length() > 0) { 7071 Label descLabeldb = new Label(editGroupdb, SWT.WRAP); 7072 descLabeldb.setText(descdb); 7073 } 7074 OptionData [] data; 7075 7076 7077 7078 7079 defKey = "p"+" "+"db"+" "+"enabled"; 7080 defKey = defKey.trim(); 7081 7082 if (isInDefList(defKey)) { 7083 defaultBool = getBoolDef(defKey); 7084 } 7085 else { 7086 7087 defaultBool = true; 7088 7089 } 7090 7091 setdbenabled_widget(new BooleanOptionWidget(editGroupdb, SWT.NONE, new OptionData("Enabled", "p", "db","enabled", "\n", defaultBool))); 7092 7093 7094 7095 7096 return editGroupdb; 7097 } 7098 7099 7100 7101 private Composite dbdb_transformationsCreate(Composite parent) { 7102 String defKey; 7103 String defaultString; 7104 boolean defaultBool = false; 7105 String defaultArray; 7106 7107 Group editGroupdbdb_transformations = new Group(parent, SWT.NONE); 7108 GridLayout layout = new GridLayout(); 7109 editGroupdbdb_transformations.setLayout(layout); 7110 7111 editGroupdbdb_transformations.setText("Transformations"); 7112 7113 editGroupdbdb_transformations.setData("id", "dbdb_transformations"); 7114 7115 String descdbdb_transformations = "The Dava back-end with all its transformations"; 7116 if (descdbdb_transformations.length() > 0) { 7117 Label descLabeldbdb_transformations = new Label(editGroupdbdb_transformations, SWT.WRAP); 7118 descLabeldbdb_transformations.setText(descdbdb_transformations); 7119 } 7120 OptionData [] data; 7121 7122 7123 7124 7125 defKey = "p"+" "+"db.transformations"+" "+"enabled"; 7126 defKey = defKey.trim(); 7127 7128 if (isInDefList(defKey)) { 7129 defaultBool = getBoolDef(defKey); 7130 } 7131 else { 7132 7133 defaultBool = true; 7134 7135 } 7136 7137 setdbdb_transformationsenabled_widget(new BooleanOptionWidget(editGroupdbdb_transformations, SWT.NONE, new OptionData("Enabled", "p", "db.transformations","enabled", "\n", defaultBool))); 7138 7139 7140 7141 7142 return editGroupdbdb_transformations; 7143 } 7144 7145 7146 7147 private Composite dbdb_renamerCreate(Composite parent) { 7148 String defKey; 7149 String defaultString; 7150 boolean defaultBool = false; 7151 String defaultArray; 7152 7153 Group editGroupdbdb_renamer = new Group(parent, SWT.NONE); 7154 GridLayout layout = new GridLayout(); 7155 editGroupdbdb_renamer.setLayout(layout); 7156 7157 editGroupdbdb_renamer.setText("Renamer"); 7158 7159 editGroupdbdb_renamer.setData("id", "dbdb_renamer"); 7160 7161 String descdbdb_renamer = "Apply heuristics based naming of local variables"; 7162 if (descdbdb_renamer.length() > 0) { 7163 Label descLabeldbdb_renamer = new Label(editGroupdbdb_renamer, SWT.WRAP); 7164 descLabeldbdb_renamer.setText(descdbdb_renamer); 7165 } 7166 OptionData [] data; 7167 7168 7169 7170 7171 defKey = "p"+" "+"db.renamer"+" "+"enabled"; 7172 defKey = defKey.trim(); 7173 7174 if (isInDefList(defKey)) { 7175 defaultBool = getBoolDef(defKey); 7176 } 7177 else { 7178 7179 defaultBool = false; 7180 7181 } 7182 7183 setdbdb_renamerenabled_widget(new BooleanOptionWidget(editGroupdbdb_renamer, SWT.NONE, new OptionData("Enabled", "p", "db.renamer","enabled", "\n", defaultBool))); 7184 7185 7186 7187 defKey = "p"+" "+"db.renamer"+" "+"remove-fully-qualified"; 7188 defKey = defKey.trim(); 7189 7190 if (isInDefList(defKey)) { 7191 defaultBool = getBoolDef(defKey); 7192 } 7193 else { 7194 7195 defaultBool = false; 7196 7197 } 7198 7199 setdbdb_renamerremove_fully_qualified_widget(new BooleanOptionWidget(editGroupdbdb_renamer, SWT.NONE, new OptionData("Remove Fully Qualified Names", "p", "db.renamer","remove-fully-qualified", "\nThe conversion works to remove java.lang. from java.lang.String \netc. However this might not always be \ncorrect and might cause recompilability errors in which case the \nflag should be turned off.", defaultBool))); 7200 7201 7202 7203 7204 return editGroupdbdb_renamer; 7205 } 7206 7207 7208 7209 private Composite dbdb_deobfuscateCreate(Composite parent) { 7210 String defKey; 7211 String defaultString; 7212 boolean defaultBool = false; 7213 String defaultArray; 7214 7215 Group editGroupdbdb_deobfuscate = new Group(parent, SWT.NONE); 7216 GridLayout layout = new GridLayout(); 7217 editGroupdbdb_deobfuscate.setLayout(layout); 7218 7219 editGroupdbdb_deobfuscate.setText("De-obfuscate"); 7220 7221 editGroupdbdb_deobfuscate.setData("id", "dbdb_deobfuscate"); 7222 7223 String descdbdb_deobfuscate = " Apply de-obfuscation analyses"; 7224 if (descdbdb_deobfuscate.length() > 0) { 7225 Label descLabeldbdb_deobfuscate = new Label(editGroupdbdb_deobfuscate, SWT.WRAP); 7226 descLabeldbdb_deobfuscate.setText(descdbdb_deobfuscate); 7227 } 7228 OptionData [] data; 7229 7230 7231 7232 7233 defKey = "p"+" "+"db.deobfuscate"+" "+"enabled"; 7234 defKey = defKey.trim(); 7235 7236 if (isInDefList(defKey)) { 7237 defaultBool = getBoolDef(defKey); 7238 } 7239 else { 7240 7241 defaultBool = true; 7242 7243 } 7244 7245 setdbdb_deobfuscateenabled_widget(new BooleanOptionWidget(editGroupdbdb_deobfuscate, SWT.NONE, new OptionData("Enabled", "p", "db.deobfuscate","enabled", "\n", defaultBool))); 7246 7247 7248 7249 7250 return editGroupdbdb_deobfuscate; 7251 } 7252 7253 7254 7255 private Composite dbdb_force_recompileCreate(Composite parent) { 7256 String defKey; 7257 String defaultString; 7258 boolean defaultBool = false; 7259 String defaultArray; 7260 7261 Group editGroupdbdb_force_recompile = new Group(parent, SWT.NONE); 7262 GridLayout layout = new GridLayout(); 7263 editGroupdbdb_force_recompile.setLayout(layout); 7264 7265 editGroupdbdb_force_recompile.setText("Force Recompilability"); 7266 7267 editGroupdbdb_force_recompile.setData("id", "dbdb_force_recompile"); 7268 7269 String descdbdb_force_recompile = " Try to get recompilable code."; 7270 if (descdbdb_force_recompile.length() > 0) { 7271 Label descLabeldbdb_force_recompile = new Label(editGroupdbdb_force_recompile, SWT.WRAP); 7272 descLabeldbdb_force_recompile.setText(descdbdb_force_recompile); 7273 } 7274 OptionData [] data; 7275 7276 7277 7278 7279 defKey = "p"+" "+"db.force-recompile"+" "+"enabled"; 7280 defKey = defKey.trim(); 7281 7282 if (isInDefList(defKey)) { 7283 defaultBool = getBoolDef(defKey); 7284 } 7285 else { 7286 7287 defaultBool = true; 7288 7289 } 7290 7291 setdbdb_force_recompileenabled_widget(new BooleanOptionWidget(editGroupdbdb_force_recompile, SWT.NONE, new OptionData("Enabled", "p", "db.force-recompile","enabled", "\n", defaultBool))); 7292 7293 7294 7295 7296 return editGroupdbdb_force_recompile; 7297 } 7298 7299 7300 7301 private Composite Application_Mode_OptionsCreate(Composite parent) { 7302 String defKey; 7303 String defaultString; 7304 boolean defaultBool = false; 7305 String defaultArray; 7306 7307 Group editGroupApplication_Mode_Options = new Group(parent, SWT.NONE); 7308 GridLayout layout = new GridLayout(); 7309 editGroupApplication_Mode_Options.setLayout(layout); 7310 7311 editGroupApplication_Mode_Options.setText("Application Mode Options"); 7312 7313 editGroupApplication_Mode_Options.setData("id", "Application_Mode_Options"); 7314 7315 String descApplication_Mode_Options = ""; 7316 if (descApplication_Mode_Options.length() > 0) { 7317 Label descLabelApplication_Mode_Options = new Label(editGroupApplication_Mode_Options, SWT.WRAP); 7318 descLabelApplication_Mode_Options.setText(descApplication_Mode_Options); 7319 } 7320 OptionData [] data; 7321 7322 7323 7324 7325 defKey = ""+" "+""+" "+"include-all"; 7326 defKey = defKey.trim(); 7327 7328 if (isInDefList(defKey)) { 7329 defaultBool = getBoolDef(defKey); 7330 } 7331 else { 7332 7333 defaultBool = false; 7334 7335 } 7336 7337 setApplication_Mode_Optionsinclude_all_widget(new BooleanOptionWidget(editGroupApplication_Mode_Options, SWT.NONE, new OptionData("Include All Packages", "", "","include-all", "\nSoot uses a default list of packages (such as java.) which are \ndeemed to contain library classes. This switch removes the \ndefault packages from the list of packages containing library \nclasses. Individual packages can then be added using the exclude \noption. ", defaultBool))); 7338 7339 7340 7341 defKey = ""+" "+""+" "+"i"; 7342 defKey = defKey.trim(); 7343 7344 if (isInDefList(defKey)) { 7345 defaultString = getArrayDef(defKey); 7346 } 7347 else { 7348 7349 defaultString = ""; 7350 7351 } 7352 7353 setApplication_Mode_Optionsinclude_widget(new ListOptionWidget(editGroupApplication_Mode_Options, SWT.NONE, new OptionData("Include Package", "", "","i", "\nDesignate classes in packages whose names begin with PKG (e.g. \njava.util.) as application classes which should be analyzed and \noutput. This option allows you to selectively analyze classes in \nsome packages that Soot normally treats as library classes. You \ncan use the include option multiple times, to designate the \nclasses of multiple packages as application classes. If you \nspecify both include and exclude options, first the classes from \nall excluded packages are marked as library classes, then the \nclasses from all included packages are marked as application \nclasses.", defaultString))); 7354 7355 7356 defKey = ""+" "+""+" "+"x"; 7357 defKey = defKey.trim(); 7358 7359 if (isInDefList(defKey)) { 7360 defaultString = getArrayDef(defKey); 7361 } 7362 else { 7363 7364 defaultString = ""; 7365 7366 } 7367 7368 setApplication_Mode_Optionsexclude_widget(new ListOptionWidget(editGroupApplication_Mode_Options, SWT.NONE, new OptionData("Exclude Package", "", "","x", "\nExcludes any classes in packages whose names begin with PKG \nfrom the set of application classes which are analyzed and \noutput, treating them as library classes instead. This option \nallows you to selectively exclude classes which would normally \nbe treated as application classes You can use the exclude \noption multiple times, to designate the classes of multiple \npackages as library classes. If you specify both include and \nexclude options, first the classes from all excluded packages \nare marked as library classes, then the classes from all \nincluded packages are marked as application classes.", defaultString))); 7369 7370 7371 defKey = ""+" "+""+" "+"dynamic-class"; 7372 defKey = defKey.trim(); 7373 7374 if (isInDefList(defKey)) { 7375 defaultString = getArrayDef(defKey); 7376 } 7377 else { 7378 7379 defaultString = ""; 7380 7381 } 7382 7383 setApplication_Mode_Optionsdynamic_class_widget(new ListOptionWidget(editGroupApplication_Mode_Options, SWT.NONE, new OptionData("Dynamic Classes", "", "","dynamic-class", "\nMark CLASS as a class which the application may load \ndynamically. Soot will read it as a library class even if it is \nnot referenced from the argument classes. This permits whole \nprogram optimizations on programs which load classes dynamically \nif the set of classes that can be loaded is known at compile \ntime. You can use the dynamic class option multiple times to \nspecify more than one dynamic class.", defaultString))); 7384 7385 7386 defKey = ""+" "+""+" "+"dynamic-dir"; 7387 defKey = defKey.trim(); 7388 7389 if (isInDefList(defKey)) { 7390 defaultString = getArrayDef(defKey); 7391 } 7392 else { 7393 7394 defaultString = ""; 7395 7396 } 7397 7398 setApplication_Mode_Optionsdynamic_dir_widget(new ListOptionWidget(editGroupApplication_Mode_Options, SWT.NONE, new OptionData("Dynamic Directories", "", "","dynamic-dir", "\nMark all class files in DIR as classes that may be loaded \ndynamically. Soot will read them as library classes even if they \nare not referenced from the argument classes. You can specify \nmore than one directory of potentially dynamic classes by \nspecifying multiple dynamic directory options.", defaultString))); 7399 7400 7401 defKey = ""+" "+""+" "+"dynamic-package"; 7402 defKey = defKey.trim(); 7403 7404 if (isInDefList(defKey)) { 7405 defaultString = getArrayDef(defKey); 7406 } 7407 else { 7408 7409 defaultString = ""; 7410 7411 } 7412 7413 setApplication_Mode_Optionsdynamic_package_widget(new ListOptionWidget(editGroupApplication_Mode_Options, SWT.NONE, new OptionData("Dynamic Package", "", "","dynamic-package", "\nMarks all class files belonging to the package PKG or any of \nits subpackages as classes which the application may load \ndynamically. Soot will read all classes in PKG as library \nclasses, even if they are not referenced by any of the argument \nclasses.To specify more than one dynamic package, use the \ndynamic package option multiple times.", defaultString))); 7414 7415 7416 7417 return editGroupApplication_Mode_Options; 7418 } 7419 7420 7421 7422 private Composite Input_Attribute_OptionsCreate(Composite parent) { 7423 String defKey; 7424 String defaultString; 7425 boolean defaultBool = false; 7426 String defaultArray; 7427 7428 Group editGroupInput_Attribute_Options = new Group(parent, SWT.NONE); 7429 GridLayout layout = new GridLayout(); 7430 editGroupInput_Attribute_Options.setLayout(layout); 7431 7432 editGroupInput_Attribute_Options.setText("Input Attribute Options"); 7433 7434 editGroupInput_Attribute_Options.setData("id", "Input_Attribute_Options"); 7435 7436 String descInput_Attribute_Options = ""; 7437 if (descInput_Attribute_Options.length() > 0) { 7438 Label descLabelInput_Attribute_Options = new Label(editGroupInput_Attribute_Options, SWT.WRAP); 7439 descLabelInput_Attribute_Options.setText(descInput_Attribute_Options); 7440 } 7441 OptionData [] data; 7442 7443 7444 7445 7446 defKey = ""+" "+""+" "+"keep-line-number"; 7447 defKey = defKey.trim(); 7448 7449 if (isInDefList(defKey)) { 7450 defaultBool = getBoolDef(defKey); 7451 } 7452 else { 7453 7454 defaultBool = false; 7455 7456 } 7457 7458 setInput_Attribute_Optionskeep_line_number_widget(new BooleanOptionWidget(editGroupInput_Attribute_Options, SWT.NONE, new OptionData("Keep Line Number", "", "","keep-line-number", "\nPreserve line number tables for class files throughout the \ntransformations. ", defaultBool))); 7459 7460 7461 7462 defKey = ""+" "+""+" "+"keep-bytecode-offset"; 7463 defKey = defKey.trim(); 7464 7465 if (isInDefList(defKey)) { 7466 defaultBool = getBoolDef(defKey); 7467 } 7468 else { 7469 7470 defaultBool = false; 7471 7472 } 7473 7474 setInput_Attribute_Optionskeep_offset_widget(new BooleanOptionWidget(editGroupInput_Attribute_Options, SWT.NONE, new OptionData("Keep Bytecode Offset", "", "","keep-bytecode-offset", "\nMaintain bytecode offset tables for class files throughout the \ntransformations.", defaultBool))); 7475 7476 7477 7478 7479 return editGroupInput_Attribute_Options; 7480 } 7481 7482 7483 7484 private Composite Annotation_OptionsCreate(Composite parent) { 7485 String defKey; 7486 String defaultString; 7487 boolean defaultBool = false; 7488 String defaultArray; 7489 7490 Group editGroupAnnotation_Options = new Group(parent, SWT.NONE); 7491 GridLayout layout = new GridLayout(); 7492 editGroupAnnotation_Options.setLayout(layout); 7493 7494 editGroupAnnotation_Options.setText("Annotation Options"); 7495 7496 editGroupAnnotation_Options.setData("id", "Annotation_Options"); 7497 7498 String descAnnotation_Options = ""; 7499 if (descAnnotation_Options.length() > 0) { 7500 Label descLabelAnnotation_Options = new Label(editGroupAnnotation_Options, SWT.WRAP); 7501 descLabelAnnotation_Options.setText(descAnnotation_Options); 7502 } 7503 OptionData [] data; 7504 7505 7506 7507 7508 defKey = ""+" "+""+" "+"annot-purity"; 7509 defKey = defKey.trim(); 7510 7511 if (isInDefList(defKey)) { 7512 defaultBool = getBoolDef(defKey); 7513 } 7514 else { 7515 7516 defaultBool = false; 7517 7518 } 7519 7520 setAnnotation_Optionsannot_purity_widget(new BooleanOptionWidget(editGroupAnnotation_Options, SWT.NONE, new OptionData("Purity Annotation [AM]", "", "","annot-purity", "\nPurity anaysis implemented by Antoine Mine and based on the \npaper A Combined Pointer and Purity Analysis Java Programs by \nAlexandru Salcianu and Martin Rinard. ", defaultBool))); 7521 7522 7523 7524 defKey = ""+" "+""+" "+"annot-nullpointer"; 7525 defKey = defKey.trim(); 7526 7527 if (isInDefList(defKey)) { 7528 defaultBool = getBoolDef(defKey); 7529 } 7530 else { 7531 7532 defaultBool = false; 7533 7534 } 7535 7536 setAnnotation_Optionsannot_nullpointer_widget(new BooleanOptionWidget(editGroupAnnotation_Options, SWT.NONE, new OptionData("Null Pointer Annotation", "", "","annot-nullpointer", "\nPerform a static analysis of which dereferenced pointers may \nhave null values, and annotate class files with attributes \nencoding the results of the analysis. For details, see the \ndocumentation for Null Pointer Annotation and for the Array \nBounds and Null Pointer Check Tag Aggregator. ", defaultBool))); 7537 7538 7539 7540 defKey = ""+" "+""+" "+"annot-arraybounds"; 7541 defKey = defKey.trim(); 7542 7543 if (isInDefList(defKey)) { 7544 defaultBool = getBoolDef(defKey); 7545 } 7546 else { 7547 7548 defaultBool = false; 7549 7550 } 7551 7552 setAnnotation_Optionsannot_arraybounds_widget(new BooleanOptionWidget(editGroupAnnotation_Options, SWT.NONE, new OptionData("Array Bounds Annotation", "", "","annot-arraybounds", "\nPerform a static analysis of which array bounds checks may \nsafely be eliminated and annotate output class files with \nattributes encoding the results of the analysis. For details, \nsee the documentation for Array Bounds Annotation and for the \nArray Bounds and Null Pointer Check Tag Aggregator. ", defaultBool))); 7553 7554 7555 7556 defKey = ""+" "+""+" "+"annot-side-effect"; 7557 defKey = defKey.trim(); 7558 7559 if (isInDefList(defKey)) { 7560 defaultBool = getBoolDef(defKey); 7561 } 7562 else { 7563 7564 defaultBool = false; 7565 7566 } 7567 7568 setAnnotation_Optionsannot_side_effect_widget(new BooleanOptionWidget(editGroupAnnotation_Options, SWT.NONE, new OptionData("Side effect annotation", "", "","annot-side-effect", "\nEnable the generation of side-effect attributes. ", defaultBool))); 7569 7570 7571 7572 defKey = ""+" "+""+" "+"annot-fieldrw"; 7573 defKey = defKey.trim(); 7574 7575 if (isInDefList(defKey)) { 7576 defaultBool = getBoolDef(defKey); 7577 } 7578 else { 7579 7580 defaultBool = false; 7581 7582 } 7583 7584 setAnnotation_Optionsannot_fieldrw_widget(new BooleanOptionWidget(editGroupAnnotation_Options, SWT.NONE, new OptionData("Field read/write annotation", "", "","annot-fieldrw", "\nEnable the generation of field read/write attributes.", defaultBool))); 7585 7586 7587 7588 7589 return editGroupAnnotation_Options; 7590 } 7591 7592 7593 7594 private Composite Miscellaneous_OptionsCreate(Composite parent) { 7595 String defKey; 7596 String defaultString; 7597 boolean defaultBool = false; 7598 String defaultArray; 7599 7600 Group editGroupMiscellaneous_Options = new Group(parent, SWT.NONE); 7601 GridLayout layout = new GridLayout(); 7602 editGroupMiscellaneous_Options.setLayout(layout); 7603 7604 editGroupMiscellaneous_Options.setText("Miscellaneous Options"); 7605 7606 editGroupMiscellaneous_Options.setData("id", "Miscellaneous_Options"); 7607 7608 String descMiscellaneous_Options = ""; 7609 if (descMiscellaneous_Options.length() > 0) { 7610 Label descLabelMiscellaneous_Options = new Label(editGroupMiscellaneous_Options, SWT.WRAP); 7611 descLabelMiscellaneous_Options.setText(descMiscellaneous_Options); 7612 } 7613 OptionData [] data; 7614 7615 7616 7617 7618 defKey = ""+" "+""+" "+"time"; 7619 defKey = defKey.trim(); 7620 7621 if (isInDefList(defKey)) { 7622 defaultBool = getBoolDef(defKey); 7623 } 7624 else { 7625 7626 defaultBool = false; 7627 7628 } 7629 7630 setMiscellaneous_Optionstime_widget(new BooleanOptionWidget(editGroupMiscellaneous_Options, SWT.NONE, new OptionData("Time", "", "","time", "\nReport the time required to perform some of Soot's \ntransformations. ", defaultBool))); 7631 7632 7633 7634 defKey = ""+" "+""+" "+"subtract-gc"; 7635 defKey = defKey.trim(); 7636 7637 if (isInDefList(defKey)) { 7638 defaultBool = getBoolDef(defKey); 7639 } 7640 else { 7641 7642 defaultBool = false; 7643 7644 } 7645 7646 setMiscellaneous_Optionssubtract_gc_widget(new BooleanOptionWidget(editGroupMiscellaneous_Options, SWT.NONE, new OptionData("Subtract Garbage Collection Time", "", "","subtract-gc", "\nAttempt to subtract time spent in garbage collection from the \nreports of times required for transformations. ", defaultBool))); 7647 7648 7649 7650 7651 return editGroupMiscellaneous_Options; 7652 } 7653 7654 7655 7656 7657} 7658 7659 | Popular Tags |