Conditional compilation and import statements

I have a web application written in Flex and I'm trying  to build an AIR application from the same code base using conditional  compilation.
In the AIR application, I need to have import statements  such as the following:
import flash.data.SQLConnection;
import  flash.filesystem.File;
but I cannot have these import statements in the web  application because they are AIR only classes.
I thought I could use conditional compilation to  overcome this issue but then I read the following on page http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7abd.html:
"You cannot use constant Boolean values to conditionalize metadata or import statements."
If that's the case, how can I have common codebase for Flex based web as well as desktop applications? Has anyone solved this conundrum?
Thanks,
Dilip

DilipShah, as far as I see the classes are still included if referenced by import.
Example:
I have this statement in my class A
if(CONFIG::platform == "ios") {
                    import B;
I can see in linkreport that class B is still included and is included because A is referencing it.
Flex harUI, classes are included into final swf file if any other class is referencing it through import even though not using it. I've experimented with it quiet a bit.

Similar Messages

  • Difference Betwen #include statement and Import statement

    What is the Difference between #include and Import statements!

    Why do you need to shout! Are you unware that English has a question mark that is used at the end of a question sentence! Java doesn't have #include! It only has import!
    Import in Java simply tells the compiler that when you say, for example, List, you mean, for example, java.util.List! It does not affect the generated class file in anyway!
    #include in C/C++ causes the body of the reference file to be inserted into the compilation stream! So, unlike Java's import, that file actually gets compiled into the final output!

  • Condition record and import pricing procedure

    hi sap gurus
    i want to know abt condition record and import pricing procedure in detail can u pls help me

    You use Condition Types as,
    PB00 -- Gross Price
    FRA1 -- Freight
    FRB1 -- Freight (value)
    RA01 -- Discount.    etc.,
    and in Import PO, 
    the Pricing Procedure has to be defined by including the CVD condition Type like
    JCDB  -- Basic customs duty
    JCV1  -- CVD Percentage
    JECV -- Edu Cess on CVD
    J1CV  -- SECess on CVD
    JEDB -- ECess Basic customs   etc.,
    Then in J1ID, you have to maintain JCV1(CVD Percentage)
    in Default values of TAXINN

  • Jsp declaration and import statement

    Hi All
    I have some problems with JSP.
    I have wrtten a declaration in jsp like this.....
    <%@ page language="java"%>
    <%!
    Date date = new Date();
    List al new ArrayList();
    public List getList(){
    al.add("Hi");
    return al;
    %>
    The List is-> <%= getList()%>
    Note that i did not import anything, it gives the output without any compile time/runtime error. How it is happening?
    If i write any thing in scriplets.......like List, Date, it is giving compile time error asking to import this.
    I am using weblogic8.1
    May i get the correct answer for this ASAP?
    Thanks and Regards
    Kasim
    [b]

    weblogic includes certain import statements in the JSP page when it is compiled.
    That is why u r not getting an error some times!!
    Check your weblogic documentation to find more details abt that
    But it is better to include the import statements , so the code will work in any server.

  • Package scope and import statements

    Hi everubody,
    I'm studing a code: foo.java written by sb. else. In the code, I have:
    package com.dir1.dir2.dir3;
    import com.dir1.dir4.code1;
    import com.dir1.dir5.code2;
    The code: foo.java exists in the directory: com/dir1/dir2/dir3 as expected. However, in the import statements, there is NO dir4 and dir5 under com/dir1? Shouldn't the import statements be relative to the directory of package?
    Guess I'm missing a point here... Any help is greatly apprecited.

    When you import:
    import co.mycompany.my.MyClass
    then MyClass should reside in the directory:
    co/mycompany/my, right?Right. Somewhere in the classpath there would have to be that directory structure. Again, that could be an actual directory name, or a path name in a Jar.
    Then if the code: foo.java resides in the directory:
    com/dir2/dir3 with the:
    package com.dir1.dir2.dir3;
    How the compiler and JVM finds the code MyClass
    (which you imported in foo.java)?Thru the magic known as the classpath.

  • Is there such thing as a "compile and execute statement" in Java?

    I wanted to know if there's any way to compile and execute a program "within" another program.

    Yes, but the classes to do so aren't officially supported by Sun as far as I know.
    And you must be able to assume a thing or two about the stuff you compile, such as existing constructors or factory methods etc, otherwise it gets hairy.
    Here's some example code (haven't tried it, so excuse any spelling errors etc) to compile the source code in a file called MyClass.java:
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    new sun.tools.javac.Main(baos,null).compile("MyClass.java");
    String theMsg = baos.toString();
    if (theMsg.length() > 0)
        // NiftyErrorHandlingHere
    }After that, you can load it with a simple ClassLoader.loadClass() call and create instances of it.
    It must be compiled with the tools.jar file in the classpath, to find the sun.tools.javac.Main class.
    However, for any such dynamically compiled class to be of any use to you, you must be able to assume something about it, such as implementing interfaces or whatever, otherwise it's a kind of pointless exercise.
    HTH,
    F

  • Export and import statements

    HI,
    I've developed a report which calls another standard report, which exports values to memory.
    i will import those values to my program. I am calling that standard program in b/g mode.
    I've used wait statement to make the program to wait for a while to update the exported values in the database cluster. This is working fine for small amount of data like 100 records like that.
    It's not working when data is more like more than 500 records. If i run the report in debugging mode i am getting output. But if i run directly (F8) the values are not exporting to memory and not getting the output. Not able to import data with F8, even i increase the wait time and used commit statment in the program.
    what wud be the problem and how can we rectify it?
    points assured for quick response.
    regards,
    Pra

    Hi Praneet,
    Consider the use of CALL FUNCTION <function> STARTING NEW TASK for your background process. Add
    PERFORMING subr ON END OF TASK.
    to continue processing.
    Put the export/import data into function interface.
    Regards,
    Clemens
    Message was edited by:
            Clemens Li

  • Export and import statement.

    what will be exported after the execution of follwoing 3 lines?
    It will be ship-to party or sold-to party?
    CUST1   =  tkomk-kunnr.
    CUSt2    =  TKOMK-KUNWE.
    export CUST1 to memory id cust2
    what is use of second statement in above lines?

    Hi,
    CUST1 = tkomk-kunnr.    --->  Contains Ship to party value
    CUSt2 = TKOMK-KUNWE.  --->  Contains Sold to party value
    Export CUST1 to memory id <b>cust2</>  -
    > Exporting the ship to party value to memory .   The bolded Cust2 is the name of the memory id it holds the value of cust1 i.e., Ship to party.
    So.. Ship to party value will be exported. and CUST1 contains Ship to party and CUST2 contains Sold to party value and CUST2of memory ID contains ship to party values.
    CUST2 of memory ID and CUST2 contains different values.
    Br,
    Laxmi

  • A problem from "import" statement

    When I was doing some test on "package" and "import" statement, I had a problem.
    1 I compiled one class:
    package com.sheng.population;
    public class A {
         public static int sum (int k, int l) {
              return (k+l);
    2 I tried to call the method 'sum' in A:
    import com.sheng.population.*;
    public class B {
         public static void main(String[] args){
              int i=9;
              int j=100;
              int k = A.sum(i, j);
              System.out.println(k);
    Then I got the error message:
    "B.java:7: cannot access A
    bad class file: E:\newjava\analysis\LDmeasure\A.java
    file does not contain class A"
    Only after I changed the import statement to "import com.sheng.population.A;" , then it worked.
    I just do not know why the '.*' does not work?
    Thanks

    Let's say your directory structure is "e:\newjava\com\sheng\population\A.class" and "e:\newjava\analysis\LDmeasure\A.java"
    If your Classpath is .;e:\newjava and when you compile, your current directory is e:\newjava\analysis\LDmeasure then you have A.java and A.class in your Classpath. When you use "import com.sheng.population.*;" the compiler does not know you mean com.sheng.population.A. The compiler finds A.java and thinks it is the A class that the B class needs. When it tries to compile A.java it finds the class name is com.sheng.population.A which causes the error. When you use "import com.sheng.population.A;" the compiler does not try to use A.java.
    If you are keeping the source code in a different directory from the compiled classes, then you should not have the source code in the Classpath. So, if you make sure the current directory is not e:\newjava\analysis\LDmeasure then it should compile.

  • Import statement .. what does it do ??

    Hi All,
    What is IMPORT statement doing ??
    IMPORT order_items_in to w_order_items_in from MEMORY ID
    'FREEGOODSTERMS'.
    can you kindly explain what this statement is doing ?
    I was by my friend that this is used to pass order_items from one session to this sesssion, but when I searched for FREEGOODSTERMS, I could find export after this statment. I was wondering how can import me first and then export.
    Please let me know.
    Thanks
    venkat.

    Hello Venkat,
    Sorry for late reply..
    Please see the program which other program submitting somewhere.
    if they are using multiple purpose then export and import statement may possible in one include.
    Best way just use where used list for that include and other programs searching like export and submit..
    For better understanding about export and import then see the below sample programs.
    Create one program and paste below code :
    REPORT  ZTEST_AMEM1.
    tables : lfa1.
    data : begin of i_lfa1 occurs 0 ,
           lifnr like lfa1-lifnr,
           name1 like lfa1-name1,
           land1 like lfa1-land1,
           end of i_lfa1.
    start-of-selection.
    select lifnr
           name1
           land1 from lfa1
           into table i_lfa1 up to 100 rows.
    Export
    export i_lfa1 to memory id 'SAP'.
    submit ztest_amem2 and return.
    write:/ 'hello'.
    Now create one more program  and paste below code :
    REPORT  ZTEST_AMEM2.
    data : begin of j_lfa1 occurs 0,
           lifnr like lfa1-lifnr,
           name1 like lfa1-name1,
           land1 like lfa1-land1,
           end of j_lfa1.
    start-of-selection.
    import i_lfa1 to j_lfa1 from memory id 'SAP'.
    loop at j_lfa1.
    write:/ j_lfa1-lifnr,j_lfa1-name1,j_lfa1-land1.
    endloop.
    Thanks
    Seshu

  • Additions required in portalapp.xml to import statements in JSPDynPage

    Hi all,
    What additions are required in portalapp.xml and import statements in JSPDynPage to include the equivalent of following JCO Clientservice in EP6 SP11?
    com.sap.portal.runtime.application.jcoclient.jcoclient
    The piece of code requiring the above is also given below.
    IJCOClientService clientService = (IJCOClientService) PortalRuntime.getRuntimeResources().getService("com.sap.portal.runtime.application.jcoclient.jcoclient");
    Thanking you ,
    Med venlig hilsen/Best regards
    Prabahar N.R

    Hi Prabahar,
    portalapp.xml: Add "com.sap.portal.runtime.application.jcoclient" to the SharingsReferences.
    import: com.sapportals.portal.prt.service.jco.IJCOClientService
    Hope it helps
    Detlev

  • Import statement and directory structure

    First of all, sorry for such a long post, I believe part of it is because I am unsure of the concept of importing in Java. Secondly, Thanks to anyone who can ultimately enlighten me to the concept of import. I did ask this question before in the "erorr and error handling" forum, and the people who have helped me there did a great job. But, I believe I require a little more clarification and thus have decided to post here.
    Anyhow, my question..
    Could someone explain to me the concept of the import statement, or direct me to a webpage with sort of explanation for newbies? For some reason, I am having a hard time grasping the concept.
    As I understand it, the import statement in Java, is very similar to the namespace keyword in C. That is to say, import doesn't actually "import" any source code, the way that the #include statement does in C.
    So I suppose what my question is, say I have a java class file like below:
    //filename: sentence.java
    //located: c:\school\csc365
    package csc365;
    class sentence
    //some variables here..
    //some constructor here..
    //some methods here..
    And some sample program like the one below which implements the above..
    //filename: test.java
    //located: c:\school\csc365
    import csc365.*;
    import java.io.*;
    class test.java
    //creates some sentence object
    //uses the object's methods
    //some other things.
    As I understand it, the test.java file should not compile because the csc365 package is not in the correct directory. (assuming of course, the classpath is like c:\school\csc365;c:\school )
    But, ... where then should the sentence.java be located? In a subdirectory of c:\school called csc365 (i.e c:\school\csc365\) ?
    And thus that would mean the test.java file could be located anywhere on the hard drive?
    I suppose, I just need a little clarification on the correlation between a package's "name" (i.e package csc365; ) and its corresponding directory's name, and also how the javac compiler searches the classpath for java classes.
    ..So, theoretically if I were to set the classpath to look in every conceivable directory(provided the directory names were all unique) of the harddrive, then I could compile a test.java anywhere?
    As a note: I have been able to get the test.java file to compile, by leaving out the import statement in the test.java file, and also leaving out the package statement for the sentence class, but I assume this is because the files are defaulted to the same package?

    Hi Mary,
    No, import isn't analogous to C++ namespace - Java package is closer to the namespace mark.
    import is just a convenience for the programmer. You can go your whole Java career without ever writing an import statement if you wish. All that means is that you'll have to type out the fully-resolved class name every time you want to use a class that's in a package other than java.lang. Example:
    // NOTE: No import statements
    public class Family
       // NOTE: fully-resolved class names
       private java.util.List children = new java.util.ArrayList();
    }If you use the import statement, you can save yourself from typing:
    import java.util.ArrayList;
    import java.util.List;
    public class Family
       // NOTE: fully-resolved class names
       private List children = new ArrayList();
    }import isn't the same as class loader. It does not bring in any source code at all.
    import comes into play when you're compiling or running your code. Java will check to make sure that any "shorthand" class names you give it live in one of the packages you've imported. If it can't find a matching fully-resolved class name, it'll give you a message like "Symbol not found" or something like that.
    I arrange Java source in a directory structure that matches the package structure in the .class files.
    If I've got a Java source file like this:
    package foo.bar;
    public class Baz
       public static void main(String [] args)
            Baz baz = new Baz();
            System.out.println(baz);
       public String toString()
           return "I am a Baz";
    }I'll store it in a directory structure like this:
    root
    +---classes
    +---src
          +---foo
               +---bar
                    +---Baz.javaWhen I compile, I go to root and compile by typing this:
    javac -d classes foo/bar/*.javaI can run the code from root by typing:
    java -classpath classes foo.bar.BazI hope this wasn't patronizing or beneath you. I don't mean to be insulting. - MOD

  • Import statement in .java files and .jsp files

    Guys I have few mysteries about this import statement.
    Please correct me if I am wrong.
    1)Suppose if I have a folder c:\SourceFolder it has one.java and two.java files.If I compile one.java then one.class files is created in c:\ClassFolder .Now two.java uses one of the method of one.java,and without using import statement I am able to compile two.java, and two.class file is created in c:\ClassFolder.I assume that the path of one.class was taken from the CLASSPATH environment variable,hence I there was no need for import statement .........am i right ?
    BUT... in My.jsp,which is in C:\JspFolder, if I want to use one.class,then I have to specifically import the class I want to use.That is i have to say
    <%@page import="one"%>
    and since the classpath is C:\ClassFolder ,it finds one.class in the C:\ClassFolder.(Note that My.class is created in a folder different from c:\ClassFolder )
    But I am wondering why was there no need for me to import one.class in two.java.
    (Note I am using JDeveloper and Apache server)
    Please help.
    In this case the pSo I am wondering in JSP why it doesn't take the class I am looking for from the classpath .
    Help.

    You have to understand Java scoping rules. In the 1st scenario with the two Java files I am guessing neither one of them begins with a package statement. This means that they belong to the default package. When you compile the compiler uses the classpath to resolve method calls looking in the default package since there was no import statement specified in two.java. JSP is a little different. Now I just read this here in these forums a couple of days ago. Since the classfiles generated from the JSP files are not in the CLASSPATH they are loaded by a different classloader. This is why you have to import all references to all classes in the default package.

  • Import statement in .java files and .jsp files ..correction

    Guys I have few mysteries about this import statement.
    Please correct me if I am wrong.
    1)Suppose if I have a folder c:\SourceFolder it has one.java and two.java files.If I compile one.java then one.class files is created in c:\ClassFolder .Now two.java uses one of the method of one.java,and without using import statement in two.java I am able to compile two.java, and two.class file is created in c:\ClassFolder.I assume that the path of one.class was taken from the CLASSPATH environment variable,hence I there was no need for import statement .........am i right ?
    BUT... in My.jsp,which is in C:\JspFolder, if I want to use one.class,then I have to specifically import one.class in My.jsp .That is i have to say
    <%@page import="one"%>
    in My.jsp.
    and since the classpath is C:\ClassFolder ,it finds one.class in the C:\ClassFolder and MyJsp is compiled sucessfully.(Note that My.class is created in a folder different from c:\ClassFolder )
    But I am wondering why was there no need for me to import one.class in two.java.
    (Note I am using JDeveloper and Apache server)
    Please help.

    It has to do with packages. Most java classes are in a package, the name of which must conform to its place on the filesystem relative to the classpath. By that I mean that if you have com.mystuff.One.java, it must be in a folder com/mystuff where com is located somewhere in the classpath.
    What you've done is a little different. I'm assuming a couple of things:
    1. you have no package declaration at the top of one.java or two.java
    2. you have the current directory "." in your classpath.
    Java has the concept of the "default package", which covers classes without a declared package, and in your case is the current directory.
    So when you're in c:\sourcefolder and run the compiler, then "."="c:\sourcefolder", and that directory is part of the default package. No import statements are necessary for classes that are in the same package. This is why two.java can call methods in one.java without an import statement.
    When you run your jsp, the "current directory" part of your classpath is not c:\sourcefolder, but some other value (probably the directory you start your jsp engine from) You will have to import all non-java-library classes because the jsp itself becomes a java class, with a package that is determined by the jsp engine.

  • Confused about CLASSPATH and how java handles import statements...

    Hello,
    I must admit I don't get it. I read the articles about setting CLASSPATH etc. but I still wonder:
    If you use an import statement, what does the compiler do? I.e. where does it look for the specified classes? I find it confusing because I see in different locations different .jar files:
    C:\jdk1.3.1_03\lib\dt.jar
    C:\jdk1.3.1_03\lib\htmlconvertor.jar
    C:\jdk1.3.1_03\lib\tools.jar
    and also
    C:\jdk1.3.1_03\jre\lib\i18n.jar
    C:\jdk1.3.1_03\jre\lib\rt.jar
    C:\jdk1.3.1_03\jre\lib\jaws.jar
    C:\jdk1.3.1_03\jre\lib\sunrassign.jar
    Can someone explain me what the purpose is of these files?
    And why do I have the same contents in
    C:\Program Files\JavaSoft\JRE\1.3.1_03\lib
    and in
    C:\jdk1.3.1_03\jre\lib
    Why is that?
    Thanks for answering my questions!
    -mike

    Thanx for the answers, but I still wonder, everyone
    here says I need to set the classpath, but I don't.Probably because your classes are already in the class path. The compiler/jvm also look for classes by themselves not just in jar files, when just a directory is supplied in the class path. And a period (".") is a valid directory.
    Programs importing different classes compile with no
    problem. So what's up with that?
    Presumably you are referring to your own code - because they are in the class path.
    Second, I still don't understand why the runtime needs
    the .jar files. The runtime uses classes, like String, that have to come from somewhere.
    This would also mean that end-users
    need to set the classpath to the .jar files in their
    JRE directory to be able to run programs that import
    classes from these .jars. But this is not true, right?No it is true. The end-users will have to set the class path. There are variations on this which make it seem like no class path is set. For instance applets in a browser are java but the end-user does not need to set a class path. That is because the browser knows how to download classes/jars and how to set it up so it uses them. (Actually it uses a class loader, but that is probably more information that you need.)
    Because if I make some nice classes myself and import
    them, how can I expect my end-user to install these
    classes and make a classpath for them?That would be between you and you end-user.
    First installation is not part of java. For installation you will have to find something outside of java to accomplish the goal.
    Additionally how the class path gets set is OS specific. Java does not deal with that. You will also have to find some way to deal with this (most likely part of the installation.)
    There are also variations on this. For example the browser example I gave above. Or using the ext directory. Or creating an executable jar. Or simply setting the class path.
    In my understanding it should only be needed in the JDK, not
    in the JRE. True or am I mistaken?Mistaken. The class path is needed in the JRE as well. You will need to set it.

Maybe you are looking for

  • Help Scripting for PDF Form List Box

    I am attempting to write JavaScript for an Adobe Acrobat X Pro form. I would like to set an action script for a List Box titled "customer_name" so that when a specific customer name is selected, a corresponding text box titled "cutomer_number" will a

  • "set deadlock_priority" not effective in SQL Server 2012?

    I am trying to control which of two sessions is chosen as the deadlock victim in SQL Server 2012. I have set up a test that induces a deadlock by updating two tables in opposite order with a "waitfor" in between the updates. I can consistently repro

  • How can I report degraded service in a location?

    I want to report a relatively busy part of town where service is degraded to the point that phones and hotspots won't connect reliably to the internet on Verizon service. I can't find a way to do this through the website or even a link to call. Sugge

  • Background colour of a screen

    Hello friends,                      Is it possible to change the background color in user defined screen in module pool. Please advice me on this issue Regards Ashish

  • Type mismatch on CRVS2010 appl. after install Crystal Reports 2011

    Hi, I've a Windows application built in VS2010 with Crystal Reports for VS2010 that exports a report to a PDF, Excel or Word file. The application runs fine, but after the installation of Crystal Reports 2011 I got the "Type mismatch" error when the