Java Decompiler Help !

Well ... I`m working on Java Decompiler Project as my
College Project.Now, my softare is already decompiling
simple programs but i`ve got stuck now at decompiling
characters, short ints & bytes because all of them are
stored as integers according to JVM Specification.
Simply,
These 2 Statements :-
int a=97;
AND
char b='a';
Result in same set of ByteCode Instructions :-
bipush 97
istore_<n>
Now, how can differentiate between the 2 so that i can
regenerate the source file ?
Any help is appreciated !!
Thx
Amit

Hi,
If you're talking about class variables then the type is in the "Field Info" structure of the class file.
http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#2877
If you're talking about local variables, then there's a LocalVariableTable structure, per method which has that information.
http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html#5956
The localVariableTable information is only available when a java source is compiled with debugging information.
What I done, when I'd no localvariabletable in the class file, was to create my own dynamic localVariableTable object, and fill in the types based on the operations performed on them, or their operands type.
I'd use the narrowest data type to start with, and widen it as needed.
So, in your example, it would guess character, until another operation conflicted with that. It's not bulletproof, but better than nothing.
regards,
Owen

Similar Messages

  • Java Decompiler for Inner classes

    Hi,
    I am looking for a Java Decompiler that can handle the decompiling of inner classes fairly well. Any help will be appreciated. Thanks.

    dj decomplier is probably the best one. u can look for it on google.

  • Recommended Java Decompiler ?

    Hi there,
    Can anyone recommend a good and free or trial java decompiler that decompiles jar/class file back to source code?
    I had use Mocha, but some of the class file it fails to convert.
    Any help please?
    Thanks.

    Just do a search of the forums (upper right corner of the page) and get a list like this
    http://onesearch.sun.com/search/developers/index.jsp?qt=decompiler+disassembler&col=javadoc&col=devforums&col=javatecharticles&col=javatutorials&col=devarchive&col=javasc&col=devall
    I use Jode, FWIW

  • Java Decompiler Code

    Hi,
    im a fresher in java
    im trying to develop my own java decompiler which translates class file to java file ,can anyone help me please how to start and give some guidelines .. wud b really helpful
    looking forward for your support .. thanks !!

    A decompiler is a very advanced project to take on, not for a "fresher".
    1. You must write a disassembler first.
    This involves being able to parse the binary class file, and convert it into java
    byte code instructions.
    As mentioned, the class file format is documented here, and is the sole reference I needed to write a disassembler.
    http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html
    2. After you have the disassembled instructions, you can then try to reassemble
    them into higher level java source code.
    This isn't a trivial project.
    In my free time, I spent ( on and off ), 1 year writing my own disassembler to support Java 1.5, and I haven't even attempted a decompiler ( yet ).
    It has 279 classes, most fairly complex.
    Just to give you an idea of my experience, 7 years java, 5 years C++ and assembly. And you'll need some experience/concepts of assembly language to work out the stack frame to break the java byte code instructions into java statements.
    In my opinion, you're better off experimenting with the BCEL ( byte code engineering lab ), to extract details about the class file.
    regards,
    Owen

  • What features would you like to see in a Java Decompiler?

    Hello all,
    (I'm assuming if you're viewing this thread you use(d) a decompiler for development purposes).
    I'm just about to embark on my final year dissertation for university and I am going to develop a Java decompiler.
    I have researched existing decompilers, e.g. Mocha, DeJaVu etc and have come up with my own feature set, but I was wondering what other Java developers would like to see in a decompiler. e.g. Support for Generics (and other v.5 features)
    So please let me know of anything you would like to see in a decompiler; possible IDEs to plug into, GUI, backwards compatibility, possible plugins, J2EE support, anything at all...
    Thank you for your time.
    Cheers, joe

    Support for DICOM SR, DICOM SEG, and Annotation and Image Markup (AIM) as output formats for the segmentation and reports would be helpful.
    It would also be great to see support for native DICOM files as input rather than needing to convert to one of the other formats you currently accept.

  • Java Access Helper Jar file problem

    I just downloaded Java Access Helper zip file, and unzipped, and run the following command in UNIX
    % java -jar jaccesshelper.jar -install
    I get the following error message, and the installation stopped.
    Exception in thread "main" java.lang.NumberFormatException: Empty version string
    at java.lang.Package.isCompatibleWith(Package.java:206)
    at jaccesshelper.main.JAccessHelperApp.checkJavaVersion(JAccessHelperApp.java:1156)
    at jaccesshelper.main.JAccessHelperApp.instanceMain(JAccessHelperApp.java:159)
    at JAccessHelper.main(JAccessHelper.java:39)
    If I try to run the jar file, I get the same error message.
    Does anyone know how I can fix this?
    Thanks

    Cross-posted, to waste yours and my time...
    http://forum.java.sun.com/thread.jsp?thread=552805&forum=54&message=2704318

  • I need java decompiler for multiple class

    Hello, i need a java decompiler for multiple class.
    avoiding of decompile one to one.
    Thanks

    Use JAD it has recursive decompiles.

  • Java Access Helper problem

    I just downloaded Java Access Helper zip file, and unzipped, and run the following command in UNIX
    % java -jar jaccesshelper.jar -install
    I get the following error message, and the installation stopped.
    Exception in thread "main" java.lang.NumberFormatException: Empty version string
    at java.lang.Package.isCompatibleWith(Package.java:206)
    at jaccesshelper.main.JAccessHelperApp.checkJavaVersion(JAccessHelperApp.java:1156)
    at jaccesshelper.main.JAccessHelperApp.instanceMain(JAccessHelperApp.java:159)
    at JAccessHelper.main(JAccessHelper.java:39)
    If I try to run the jar file, I get the same error message.
    Does anyone know how I can fix this?
    Thanks

    sorry ab the multiple post, it was urgent for me to
    know the answer.
    I've JDK 1.4.2 and JAccessHelper should work with 1.3
    or later
    Can there be some kind of path problems?No, I doubt it. It's just some internal app failure - looks like it's trying to determine the running Java version, and is not doing a good job at it. But the failure has nothing per se to Java, it's that specific app - what are we supposed to know about that app though?

  • Java decompiler

    Sometimes I use java decompiler, so I know so easy is to decompile a jar file and get the code.
    Know, I want to make a jar file, to encrypt somethig, so I shoult have the code secret.
    anyone knows how o do it?
    Thanks.

    you can crypt .class files and write your own class loader that can read&load them normally...
    you could also compile the whole think to .exe but the only prog I know of that can accomplish that is Excelsior JET... and it's big and expensive... but you can try out the trial..

  • New to java(need help on access specifier)

    hi! i am new to java.plzzzzz help me i have to make a project on access specifier's i know all theroy.but
    i am unable to understand how i can define all specifiers practicly.i mean in a program.
    thanks.plzzzzzzzz help me

    the most common project i can think of is a payroll system..
    you can have real implementation of all the access specifiers
    good luck

  • Pascal to Java Please help me!

    I am truobled in creating a validation method for the user loging in....
    As I am perfect at Pascal can anyone translate the following pascla code to Java Please help me with this.
    PROGRAM USERLOGIN;
    TYPE
      USER_TYPE = RECORD
        USERNAME : STRING[15];
        PASSWORD : STRING[15];
    END;
        USFILE = FILE OF USER_TYPE;
    VAR
       USER: USER_TYPE;
       CKUSER: USER_TYPE;
       RECFILE : USFILE;
       I,J     : INTEGER;
    BEGIN
    WRITE('ENTER USERNAME:');READLN(CKUSER.USERNAME);
    WRITE('ENTER PASSWORD:');READLN(CKUSER.PASSWORD);
    FILESPEC :='USERFILE.USR';
    ASSIGN(RECFILE, FILESPEC);
    RESET(RECFILE);
      WHILE NOT EOF(RECFILE) DO
       BEGIN
         READ(RECFILE, USER);
         IF CKUSER.USERNAME = USER.USERNAME AND CKUSER.PASSWORD = USER.PASSWORD THEN
              LOGIN
        ELSE
              WRITE('USER NOT FOUND');
       END;
    END.Thank you

    Don't bother:
    http://forum.java.sun.com/thread.jsp?forum=54&thread=539277

  • Where can I find a free java Decompiler?

    Where can I find a free java Decompiler?

    Look for JAD in Google:
    http://www.tripod.lycos.com/bin/membership/suspended?member_name=kpdus

  • How I can enable Java ssv helper plugin silently for win7 users with IE9

    here is what happens:
    when I deploy java 7.21 on win7 users, after deployment when users try to Open their IE they get a login screen and apparently it is related to Java ssv helper plugin. it is trying to enable it and needs admin account/password. I am trying to deploy this to about 3000 computers and I dont want all of them start calling helpdesk for this.
    your help is appreciated.

    The following article describes how to create a shared preference file. You can either create preferences that individual users can override, or create locked preferences that individual users cannot override.
    http://kb.mozillazine.org/Lock_Prefs
    (Note: I don't have any personal experience with these files, but another volunteer might post some additional tips and tricks.)

  • Best java decompiler

    Guys, what's the best java decompiler (accurate and reliable) out there today?

    I never said a developer will never be in need ofa
    decompiler. That's why I said after the onesentence
    you quoted: "Without some more detail, I think
    it
    is justified to point the OP to a searchengine."
    I was just providing an example of one thathappened
    to me.I believe this would have happened to most of us.
    Fortunately for me, the application only had 10 odd
    classes.And that's why any project that's worth anything has a source control system in place...
    Bad enough to loose a day's (or a few days') work in a harddisk crash, worse to loose manmonths worth due to something like that (or worse, your network being vandalised as happened to a company I worked for once, we had to revert to a 1 month old backup tape, all later tapes had failed).

  • Issue with Java Decompiler, please help

    I'm using Mocha to decompile a *.class file from the standard OAF. I'd like to reuse some logic which Oracle has previously developed. I'd like to decompile DetailDataInputCO.class but Mocha errors out with "Ignoring field attribute Synthetic".
    If anyone has a good decompiler, could you please decompile a class file for me. Please contact me at [email protected] and I can send you the file. It would be greatly appreciated.
    Thanks,
    -Scott

    // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
    // Jad home page: http://www.kpdus.com/jad.html
    // Decompiler options: packimports(3)
    // Source File Name: DetailDataInputCO.java
    package oracle.apps.ap.oie.webui;
    import com.sun.java.util.collections.HashMap;
    import java.io.Serializable;
    import java.util.Vector;
    import oracle.apps.ap.oie.entry.AttendeeRuleUI;
    import oracle.apps.ap.oie.server.DetailAMImpl;
    import oracle.apps.ap.oie.utility.OIEConstants;
    import oracle.apps.ap.oie.utility.OIEUtil;
    import oracle.apps.fnd.common.MessageToken;
    import oracle.apps.fnd.common.VersionInfo;
    import oracle.apps.fnd.flexj.*;
    import oracle.apps.fnd.framework.*;
    import oracle.apps.fnd.framework.webui.*;
    import oracle.apps.fnd.framework.webui.beans.*;
    import oracle.apps.fnd.framework.webui.beans.form.OAChoiceBean;
    import oracle.apps.fnd.framework.webui.beans.form.OASubmitButtonBean;
    import oracle.apps.fnd.framework.webui.beans.layout.*;
    import oracle.apps.fnd.framework.webui.beans.message.*;
    import oracle.apps.fnd.framework.webui.beans.nav.OANavigationBarBean;
    import oracle.apps.fnd.framework.webui.beans.nav.OAPageButtonBarBean;
    import oracle.apps.fnd.framework.webui.beans.table.*;
    import oracle.cabo.ui.*;
    import oracle.cabo.ui.beans.*;
    import oracle.cabo.ui.beans.form.*;
    import oracle.cabo.ui.beans.layout.*;
    import oracle.cabo.ui.beans.message.MessageStyledTextBean;
    import oracle.cabo.ui.beans.message.MessageTextInputBean;
    import oracle.cabo.ui.beans.nav.NavigationBarBean;
    import oracle.cabo.ui.beans.table.ColumnBean;
    import oracle.cabo.ui.beans.table.TableBean;
    import oracle.jbo.domain.Number;
    // Referenced classes of package oracle.apps.ap.oie.webui:
    // ExpensesCO, NavigationUtility
    public class DetailDataInputCO extends OAControllerImpl
    public void processRequest(OAPageContext oapagecontext, OAWebBean oawebbean)
    if(oapagecontext.isLoggingEnabled(2))
    oapagecontext.writeDiagnostics(this, "start processRequest", 2);
    boolean flag = false;
    super.processRequest(oapagecontext, oawebbean);
    OAApplicationModule oaapplicationmodule = oapagecontext.getRootApplicationModule();
    OAApplicationModule oaapplicationmodule1 = oapagecontext.getApplicationModule(oawebbean);
    String s = (String)oaapplicationmodule.invokeMethod("getMultipleCurrenciesFlag");
    String s1 = (String)oapagecontext.getTransactionValue("ApWebTaxEnable");
    String s2 = (String)oapagecontext.getTransactionValue("PaymentCurrencyCode");
    String s3 = (String)oapagecontext.getTransactionValue("ApWebDescFlexName");
    String s4 = (String)oapagecontext.getTransactionValue("CCPage");
    boolean flag2 = s4 == null || s4.equals("Y");
    boolean flag3 = ((String)oapagecontext.getTransactionValue("IsProjectEnabled")).equals("Y") || ((String)oapagecontext.getTransactionValue("IsProjectEnabled")).equals("R");
    String s5 = (String)oapagecontext.getTransactionValue("ApWebEnableGrantsAccounting");
    boolean flag4 = flag3 && s5 != null && s5.equals("Y");
    boolean flag5 = ((Boolean)oaapplicationmodule.invokeMethod("isVATEnabled")).booleanValue();
    String _tmp = (String)oapagecontext.getTransactionValue("ApWebEnableLineLevelAccounting");
    oapagecontext.getParameter("ButtonLink");
    String s6 = "N";
    oracle.apps.ap.oie.setup.OIESetup.Setup setup = (oracle.apps.ap.oie.setup.OIESetup.Setup)oaapplicationmodule.invokeMethod("getSetup");
    OADescriptiveFlexBean oadescriptiveflexbean = null;
    OAStackLayoutBean oastacklayoutbean = (OAStackLayoutBean)createWebBean(oapagecontext, "STACK_LAYOUT");
    oawebbean.addIndexedChild(oastacklayoutbean);
    OATableLayoutBean oatablelayoutbean = (OATableLayoutBean)createWebBean(oapagecontext, "TABLE_LAYOUT");
    oastacklayoutbean.addIndexedChild(oatablelayoutbean);
    oatablelayoutbean.setWidth("100%");
    OASpacerRowBean oaspacerrowbean = (OASpacerRowBean)createWebBean(oapagecontext, "SPACER_ROW");
    if(flag5)
    OARowLayoutBean oarowlayoutbean = (OARowLayoutBean)createWebBean(oapagecontext, "ROW_LAYOUT");
    oatablelayoutbean.addRowLayout(oarowlayoutbean);
    OACellFormatBean oacellformatbean = (OACellFormatBean)createWebBean(oapagecontext, "CELL_FORMAT");
    oarowlayoutbean.addIndexedChild(oacellformatbean);
    OARawTextBean oarawtextbean = (OARawTextBean)createWebBean(oapagecontext, "RAW_TEXT");
    oacellformatbean.addIndexedChild(oarawtextbean);
    oacellformatbean.setHAlign("start");
    oacellformatbean.setColumnSpan(2);
    oarawtextbean.setText(oapagecontext.getMessage("SQLAP", "OIE_MERCHANT_HEADING", new MessageToken[0]));
    oarawtextbean.setStyleClass("OraInstructionText");
    oatablelayoutbean.addIndexedChild(oaspacerrowbean);
    OARowLayoutBean oarowlayoutbean1 = (OARowLayoutBean)createWebBean(oapagecontext, "ROW_LAYOUT");
    oatablelayoutbean.addRowLayout(oarowlayoutbean1);
    OACellFormatBean oacellformatbean1 = (OACellFormatBean)createWebBean(oapagecontext, "CELL_FORMAT");
    oarowlayoutbean1.addIndexedChild(oacellformatbean1);
    OATableLayoutBean oatablelayoutbean1 = (OATableLayoutBean)createWebBean(oapagecontext, oawebbean, "DRRequiredIconText");
    oacellformatbean1.addIndexedChild(oatablelayoutbean1);
    oatablelayoutbean.addIndexedChild(oaspacerrowbean);
    OARowLayoutBean oarowlayoutbean2 = (OARowLayoutBean)createWebBean(oapagecontext, "ROW_LAYOUT");
    oatablelayoutbean.addRowLayout(oarowlayoutbean2);
    OACellFormatBean oacellformatbean2 = (OACellFormatBean)createWebBean(oapagecontext, "CELL_FORMAT");
    OACellFormatBean oacellformatbean3 = (OACellFormatBean)createWebBean(oapagecontext, "CELL_FORMAT");
    oarowlayoutbean2.addIndexedChild(oacellformatbean2);
    oarowlayoutbean2.addIndexedChild(oacellformatbean3);
    OATableLayoutBean oatablelayoutbean2 = (OATableLayoutBean)createWebBean(oapagecontext, "TABLE_LAYOUT");
    OATableLayoutBean oatablelayoutbean3 = (OATableLayoutBean)createWebBean(oapagecontext, "TABLE_LAYOUT");
    oacellformatbean2.addIndexedChild(oatablelayoutbean2);
    oacellformatbean2.setVAlign("top");
    oacellformatbean3.addIndexedChild(oatablelayoutbean3);
    oacellformatbean3.setVAlign("top");
    oatablelayoutbean2.addIndexedChild(createWebBean(oapagecontext, oawebbean, "DetailStartDate"));
    oatablelayoutbean2.addIndexedChild(oaspacerrowbean);
    oatablelayoutbean2.addIndexedChild(createWebBean(oapagecontext, oawebbean, "DetailDailyRate"));
    oatablelayoutbean2.addIndexedChild(oaspacerrowbean);
    oatablelayoutbean2.addIndexedChild(createWebBean(oapagecontext, oawebbean, "DetailDays"));
    oatablelayoutbean2.addIndexedChild(oaspacerrowbean);
    if(flag2)
    OAMessageStyledTextBean oamessagestyledtextbean = (OAMessageStyledTextBean)createWebBean(oapagecontext, oawebbean, "DetailDisplayReceiptAmount");
    oatablelayoutbean2.addIndexedChild(oamessagestyledtextbean);
    oatablelayoutbean2.addIndexedChild(oaspacerrowbean);
    oamessagestyledtextbean.setText(oamessagestyledtextbean.getText(oapagecontext) != null ? oamessagestyledtextbean.getText(oapagecontext) + " " : "");
    if(oamessagestyledtextbean.getText(oapagecontext) != null && !oamessagestyledtextbean.getText(oapagecontext).equals(""))
    OAStyledTextBean oastyledtextbean = (OAStyledTextBean)createWebBean(oapagecontext, "TEXT");
    oastyledtextbean.setViewUsageName("OneReceiptBasedVO");
    oastyledtextbean.setViewAttributeName("ReceiptCurrencyCode");
    oastyledtextbean.setCSSClass("OraDataText");
    oamessagestyledtextbean.setEnd(oastyledtextbean);
    } else
    OAMessageTextInputBean oamessagetextinputbean = (OAMessageTextInputBean)createWebBean(oapagecontext, oawebbean, "DetailReceiptAmount");
    oatablelayoutbean2.addIndexedChild(oamessagetextinputbean);
    oatablelayoutbean2.addIndexedChild(oaspacerrowbean);
    if(s.equals("N"))
    OAStyledTextBean oastyledtextbean1 = (OAStyledTextBean)createWebBean(oapagecontext, "TEXT");
    oastyledtextbean1.setViewUsageName("OneReceiptBasedVO");
    oastyledtextbean1.setViewAttributeName("ReceiptCurrencyCode");
    oastyledtextbean1.setCSSClass("OraDataText");
    oamessagetextinputbean.setEnd(oastyledtextbean1);
    } else
    OAChoiceBean oachoicebean = (OAChoiceBean)createWebBean(oapagecontext, "POPLIST", null, "CurrencyPopList");
    oachoicebean.setViewUsageName("OneReceiptBasedVO");
    oachoicebean.setViewAttributeName("ReceiptCurrencyCode");
    oachoicebean.setPickListViewObjectDefinitionName("oracle.apps.ap.oie.server.CurrenciesVO");
    oachoicebean.setListValueAttribute("CurrencyCode");
    oachoicebean.setListDisplayAttribute("CurrencyCodeName");
    OAStaticStyledTextBean oastaticstyledtextbean = (OAStaticStyledTextBean)createWebBean(oapagecontext, oawebbean, "Currency");
    oachoicebean.setShortDesc(oastaticstyledtextbean.getLabel());
    oamessagetextinputbean.setEnd(oachoicebean);
    if(flag2 || s.equals("N"))
    OAMessageStyledTextBean oamessagestyledtextbean1 = (OAMessageStyledTextBean)createWebBean(oapagecontext, oawebbean, "DetailDisplayExchRate");
    oatablelayoutbean2.addIndexedChild(oamessagestyledtextbean1);
    oatablelayoutbean2.addIndexedChild(oaspacerrowbean);
    } else
    OAMessageTextInputBean oamessagetextinputbean1 = (OAMessageTextInputBean)createWebBean(oapagecontext, oawebbean, "DetailExchRate");
    oatablelayoutbean2.addIndexedChild(oamessagetextinputbean1);
    oatablelayoutbean2.addIndexedChild(oaspacerrowbean);
    oamessagetextinputbean1.setRequired("yes");
    OAMessageStyledTextBean oamessagestyledtextbean2 = (OAMessageStyledTextBean)createWebBean(oapagecontext, oawebbean, "DetailReimbursAmt");
    oatablelayoutbean2.addIndexedChild(oamessagestyledtextbean2);
    if(oamessagestyledtextbean2.getText(oapagecontext) != null)
    oamessagestyledtextbean2.setText(oamessagestyledtextbean2.getText(oapagecontext) + " " + s2);
    oatablelayoutbean2.addIndexedChild(oaspacerrowbean);
    OAMessageCheckBoxBean oamessagecheckboxbean = (OAMessageCheckBoxBean)createWebBean(oapagecontext, oawebbean, "DetailReceiptMissing");
    oatablelayoutbean2.addIndexedChild(oamessagecheckboxbean);
    oatablelayoutbean2.addIndexedChild(oaspacerrowbean);
    Integer integer = (Integer)oaapplicationmodule.invokeMethod("getNumberOfTaxCodes");
    String s7 = (String)oaapplicationmodule1.invokeMethod("getTaxCodeUpdateable");
    OAWebBeanDataAttribute oawebbeandataattribute;
    if(s7 == null || s7.equals("Y"))
    oawebbeandataattribute = (OAWebBeanDataAttribute)createWebBean(oapagecontext, oawebbean, "DetailTaxCode");
    else
    oawebbeandataattribute = (OAWebBeanDataAttribute)createWebBean(oapagecontext, oawebbean, "DetailTaxCodeDisplay");
    OAMessageCheckBoxBean oamessagecheckboxbean1 = (OAMessageCheckBoxBean)createWebBean(oapagecontext, oawebbean, "DetailAmtInclTax");
    if(s1 != null && s1.equals("Y") && integer.intValue() > 0)
    oatablelayoutbean2.addIndexedChild(oamessagecheckboxbean1);
    oatablelayoutbean2.addIndexedChild(oaspacerrowbean);
    oatablelayoutbean2.addIndexedChild(oawebbeandataattribute);
    oatablelayoutbean2.addIndexedChild(oaspacerrowbean);
    String s8 = (String)oaapplicationmodule1.invokeMethod("getExpTypeWebPrompt");
    Object obj = null;
    Object obj1 = null;
    Boolean boolean1 = (Boolean)oaapplicationmodule1.invokeMethod("isExpTypeInPoplist");
    if(flag4 && !boolean1.booleanValue())
    oaapplicationmodule1.invokeMethod("resetWebParameterId");
    String s11 = (String)oaapplicationmodule1.invokeMethod("getAwardNumber");
    MessageToken amessagetoken[] = {
    new MessageToken("EXP_TYPE", s8), new MessageToken("AWARD_NUM", s11 != null ? s11 : "")
    OAException oaexception = new OAException("SQLAP", "OIE_DEFAULT_EXPENDITURE_TYPE", amessagetoken, (byte)1, null);
    oaexception.setApplicationModule(oaapplicationmodule1);
    oapagecontext.putDialogMessage(oaexception);
    OAMessageLovInputBean oamessagelovinputbean = (OAMessageLovInputBean)createWebBean(oapagecontext, oawebbean, "DetailProjectNumber");
    OAMessageLovInputBean oamessagelovinputbean1 = (OAMessageLovInputBean)createWebBean(oapagecontext, oawebbean, "DetailTaskNumber");
    if(flag3)
    oatablelayoutbean3.addIndexedChild(oamessagelovinputbean);
    oatablelayoutbean3.addIndexedChild(oaspacerrowbean);
    oatablelayoutbean3.addIndexedChild(oamessagelovinputbean1);
    oatablelayoutbean3.addIndexedChild(oaspacerrowbean);
    String s12 = (String)oaapplicationmodule1.invokeMethod("getProjectNumber");
    if(s12 != null)
    oamessagelovinputbean1.setRequired("yes");
    else
    oamessagelovinputbean1.setRequired("no");
    if(flag4)
    OAMessageLovInputBean oamessagelovinputbean2 = (OAMessageLovInputBean)createWebBean(oapagecontext, oawebbean, "DetailAwardNumber");
    oatablelayoutbean3.addIndexedChild(oamessagelovinputbean2);
    oatablelayoutbean3.addIndexedChild(oaspacerrowbean);
    oatablelayoutbean3.addIndexedChild(createWebBean(oapagecontext, oawebbean, "RBWebParam"));
    if(s3 != null && ("Y".equals(s3) || "B".equals(s3)))
    oadescriptiveflexbean = (OADescriptiveFlexBean)createWebBean(oapagecontext, oawebbean, "DetailFlex");
    oatablelayoutbean3.addIndexedChild(oadescriptiveflexbean);
    oatablelayoutbean3.addIndexedChild(oaspacerrowbean);
    if(flag4)
    OAStyledTextBean oastyledtextbean2 = (OAStyledTextBean)createWebBean(oapagecontext, "TEXT");
    oatablelayoutbean3.addIndexedChild(oastyledtextbean2);
    String s9 = oapagecontext.getMessage("SQLAP", "OIE_EXPENDITURE_TYPE_TIP", null);
    oastyledtextbean2.setText(oapagecontext, s9);
    oastyledtextbean2.setStyleClass("OraInlineInfoText");
    OAWebBeanDataAttribute oawebbeandataattribute1 = null;
    if(oapagecontext.getParameter("_FORMEVENT") == null || !oapagecontext.getParameter("_FORMEVENT").startsWith("FLEX_CONTEXT_CHANGED"))
    if(!boolean1.booleanValue() && s8 != null)
    oadescriptiveflexbean.setFlexContext(oapagecontext, null);
    Serializable aserializable[] = {
    null
    oapagecontext.getApplicationModule(oawebbean).invokeMethod("onChangeExpenseDFFContext", aserializable);
    } else
    oadescriptiveflexbean.setFlexContext(oapagecontext, s8);
    oadescriptiveflexbean.processFlex(oapagecontext);
    oawebbeandataattribute1 = (OAWebBeanDataAttribute)oadescriptiveflexbean.getIndexedChild(null, 0);
    oadescriptiveflexbean.setFlexTableRendered(false);
    oatablelayoutbean3.addIndexedChild(oawebbeandataattribute1);
    oatablelayoutbean3.addIndexedChild(oaspacerrowbean);
    if(!boolean1.booleanValue() && s8 != null)
    oawebbeandataattribute1.setRequired("no");
    else
    oawebbeandataattribute1.setRequired("yes");
    DescriptiveFlexfield descriptiveflexfield = (DescriptiveFlexfield)oadescriptiveflexbean.getAttributeValue(OAWebBeanConstants.FLEXFIELD_REFERENCE);
    int i = descriptiveflexfield.indexOfContextSegment();
    if(oapagecontext.getParameter("_FORMEVENT") != null && oapagecontext.getParameter("_FORMEVENT").startsWith("FLEX_CONTEXT_CHANGED"))
    String s14 = descriptiveflexfield.getSegment(i).getValue().getDisplay();
    Serializable aserializable2[] = {
    s14
    oapagecontext.getApplicationModule(oawebbean).invokeMethod("onChangeExpenseDFFContext", aserializable2);
    } else
    OAMessageChoiceBean oamessagechoicebean = (OAMessageChoiceBean)createWebBean(oapagecontext, oawebbean, "DetailExpType");
    oatablelayoutbean3.addIndexedChild(oamessagechoicebean);
    oatablelayoutbean3.addIndexedChild(oaspacerrowbean);
    oamessagechoicebean.setPickListViewUsageName("DetailExpenseTypesVO");
    if(flag4)
    OAStyledTextBean oastyledtextbean3 = (OAStyledTextBean)createWebBean(oapagecontext, "TEXT");
    oatablelayoutbean3.addIndexedChild(oastyledtextbean3);
    String s10 = oapagecontext.getMessage("SQLAP", "OIE_EXPENDITURE_TYPE_TIP", null);
    oastyledtextbean3.setText(oapagecontext, s10);
    oastyledtextbean3.setStyleClass("OraInlineInfoText");
    if(flag3)
    String s13 = (String)oaapplicationmodule1.invokeMethod("getExpenditureType");
    boolean flag7 = ((String)oapagecontext.getTransactionValue("IsProjectEnabled")).equals("R") && s13 != null;
    if(flag7)
    oamessagelovinputbean.setRequired("yes");
    oamessagelovinputbean1.setRequired("yes");
    boolean flag6 = ((Boolean)oaapplicationmodule1.invokeMethod("isLocationSchedule")).booleanValue();
    boolean flag8 = flag5 || flag6;
    if(setup.getReceiptBasedLocation() != null)
    flag8 = setup.getReceiptBasedLocation().booleanValue() || flag8;
    if(flag8)
    if(flag6 || flag5)
    OAMessageLovInputBean oamessagelovinputbean3 = (OAMessageLovInputBean)createWebBean(oapagecontext, oawebbean, "LocationName");
    oatablelayoutbean3.addIndexedChild(oamessagelovinputbean3);
    oamessagelovinputbean3.setRequired("yes");
    oatablelayoutbean3.addIndexedChild(createWebBean(oapagecontext, oawebbean, "LocationId"));
    } else
    OAMessageTextInputBean oamessagetextinputbean2 = (OAMessageTextInputBean)createWebBean(oapagecontext, oawebbean, "RBLocation");
    oatablelayoutbean3.addIndexedChild(oamessagetextinputbean2);
    oatablelayoutbean3.addIndexedChild(oaspacerrowbean);
    if(flag2)
    OAMessageStyledTextBean oamessagestyledtextbean3 = (OAMessageStyledTextBean)createWebBean(oapagecontext, oawebbean, "TransactionLocation");
    oatablelayoutbean3.addIndexedChild(oamessagestyledtextbean3);
    oatablelayoutbean3.addIndexedChild(oaspacerrowbean);
    Object obj2 = null;
    Object obj3 = null;
    String s17 = null;
    if((OAMessageTextInputBean)oawebbean.findIndexedChildRecursive("RBLocation") != null)
    OAMessageTextInputBean oamessagetextinputbean5 = (OAMessageTextInputBean)oawebbean.findIndexedChildRecursive("RBLocation");
    s17 = (String)oamessagetextinputbean5.getValue(oapagecontext);
    } else
    if((OAMessageLovInputBean)oawebbean.findIndexedChildRecursive("LocationName") != null)
    OAMessageLovInputBean oamessagelovinputbean4 = (OAMessageLovInputBean)oawebbean.findIndexedChildRecursive("LocationName");
    s17 = (String)oamessagelovinputbean4.getValue(oapagecontext);
    OAMessageStyledTextBean oamessagestyledtextbean5 = (OAMessageStyledTextBean)oawebbean.findIndexedChildRecursive("TransactionLocation");
    String s19 = (String)oaapplicationmodule1.invokeMethod("getTransactionLocation");
    if(s19 != null && !s19.equalsIgnoreCase(s17))
    oamessagestyledtextbean5.setValue(oapagecontext, s19);
    oamessagestyledtextbean3.setRendered(true);
    boolean flag1 = true;
    } else
    oamessagestyledtextbean3.setRendered(false);
    if(flag2)
    OAMessageStyledTextBean oamessagestyledtextbean4 = (OAMessageStyledTextBean)createWebBean(oapagecontext, oawebbean, "DetailDisplayMerchantName");
    oatablelayoutbean3.addIndexedChild(oamessagestyledtextbean4);
    oatablelayoutbean3.addIndexedChild(oaspacerrowbean);
    } else
    OAMessageTextInputBean oamessagetextinputbean3 = (OAMessageTextInputBean)createWebBean(oapagecontext, oawebbean, "DetailMerchantName");
    Serializable aserializable1[] = {
    getLocationId(oapagecontext, oawebbean)
    Class aclass[] = {
    oracle.jbo.domain.Number.class
    if(((Boolean)oaapplicationmodule1.invokeMethod("isMerchantRequired", aserializable1, aclass)).booleanValue())
    oamessagetextinputbean3.setRequired("yes");
    oatablelayoutbean3.addIndexedChild(oamessagetextinputbean3);
    oatablelayoutbean3.addIndexedChild(oaspacerrowbean);
    }

Maybe you are looking for

  • Year and month wise results

    dear sir, i want to get data through find button. while i pass the perticuler date. data should come up inthe grid . how to use with find button and date how to get the data? pl help, thanks pullareddy

  • When I put my SIM card in too my iPhone 4 I get one bar and 0 in town what is wrong?

    When I put my SIM card in too my iPhone 4 I get one bar and 0 in town what is wrong?

  • Deposit Refund

    I was told when I gave almost $2,000.00 for my deposit that if I paid my bill on time for several months I coule request a refund on it. I have the conversation recorded. However when I went into the store I was told it took a year. Can anyone clear

  • HT2534 us itunes account from outside of us

    I followed the exact steps above to create a US itunes account with a gift certificate. At the last step of the process, they ask me to contact iTunes support to complete the transaction?? Could you please help me?

  • How create report at runtime

    hi master sir my director give me task that my user selet column in form and push button then create report that have only selected column only please give me idea how i create runtime report thank's aamir