home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / VCAFE.3.0A / Main.bin / CompilerOptions.java < prev    next >
Text File  |  1998-10-25  |  9KB  |  220 lines

  1. /*
  2.  * Copyright 1998 Symantec Corporation, All Rights Reserved.
  3.  */
  4.  
  5. package com.symantec.itools.vcafe.openapi.options;
  6.  
  7. /**
  8.  * The API used to represent and access the options that appear in the "Compiler" tab
  9.  * in the Options dialog of a Visual Cafe project.
  10.  * <p>Use <code>ProjectOptionSet.getCompilerOptions()</code> to get an instance of this object.
  11.  *
  12.  * @see com.symantec.itools.vcafe.openapi.VisualProject#getOptionSet
  13.  * @see ProjectOptionSet#getCompilerOptions
  14.  *
  15.  * @author Symantec Internet Tools Division
  16.  * @version 1.0
  17.  * @since VCafe 3.0
  18.  */
  19. public abstract class CompilerOptions
  20. {
  21.     /**
  22.      * Determines whether the compiler will optimize its generated code.
  23.      * <p>Optimizing results in a smaller executable that runs faster.
  24.      * @return <code>true</code> if optimizations are on, <code>false</code> otherwise.
  25.      */
  26.     public abstract boolean isUseJavaOptimizations();
  27.  
  28.     /**
  29.      * Determines whether the compiler will prevent the "inlining" optimization.
  30.      * Inlining means that Visual Cafe takes a method's code and imbeds it in the calling method instead of
  31.      * calling the method.
  32.      * <p>Inlining increases execution speed but also increases executable size.
  33.      * @return <code>true</code> if inlining is <i>disabled</i>, <code>false</code> otherwise.
  34.      */
  35.     public abstract boolean isDisableFunctionInlining();
  36.  
  37.     /**
  38.      * Determines whether the compiler will generate debug information used by the Visual Cafe debugger.
  39.      * @return <code>true</code> if debug information is generated, <code>false</code> otherwise.
  40.      */
  41.     public abstract boolean isGenerateDebugInformation();
  42.  
  43.     /**
  44.      * Determines whether Sun's java compiler will be used.
  45.      * @return <code>true</code> if so, <code>false</code> otherwise.
  46.      */
  47.     public abstract boolean isUseSunsJavaCompiler();
  48.  
  49.     /**
  50.      * Determines whether the compiler will generate warning messsages.
  51.      * @return <code>true</code> if so, <code>false</code> otherwise.
  52.      */
  53.     public abstract boolean isShowCompilerWarnings();
  54.  
  55.     /**
  56.      * Determines whether the compiler will generate warning messages about deprecated code.
  57.      * @return <code>true</code> if so, <code>false</code> otherwise.
  58.      */
  59.     public abstract boolean isWarnOnDeprecated();
  60.  
  61.     /**
  62.      * Determines whether the compiler will generate progress messages
  63.      * @return <code>true</code> if so, <code>false</code> otherwise.
  64.      */
  65.     public abstract boolean isShowProgressMessages();
  66.  
  67.     /**
  68.      * Determines whether the compiler will generate file dependency messages.
  69.      * @return <code>true</code> if so, <code>false</code> otherwise.
  70.      */
  71.     public abstract boolean isShowDependencies();
  72.  
  73.     /**
  74.      * Determines whether the compiler will generate all possible messages.
  75.      * @return <code>true</code> if so, <code>false</code> otherwise.
  76.      */
  77.     public abstract boolean isShowAllJavaMessages();
  78.  
  79.  
  80.         /**
  81.          * Indicates project build should not check import depencies.
  82.          * @see #getMakeSettings
  83.          */
  84.         public static final int        MAKESETTINGS_DONT_CHECK_DEPENDENCIES_ON_IMPORTS = 0;
  85.         /**
  86.          * Indicates project build should warn of out-of-date imports.
  87.          * @see #getMakeSettings
  88.          */
  89.         public static final int        MAKESETTINGS_WARN_ON_OUT_OF_DATE_IMPORTS = 1;
  90.         /**
  91.          * Indicates project build should check imported classes and build them as necessary.
  92.          * @see #getMakeSettings
  93.          */
  94.         public static final int        MAKESETTINGS_GENERATE_CLASS_FOR_OUT_OF_DATE_IMPORTS = 2;
  95.  
  96.     /**
  97.      * Gets make (i.e. build) options.
  98.      * @return One of:<ul type=circle>
  99.      * <li>MAKESETTINGS_DONT_CHECK_DEPENDENCIES_ON_IMPORTS - doesn't check imported classes,
  100.      * <li>MAKESETTINGS_WARN_ON_OUT_OF_DATE_IMPORTS - warns of out-of-date imported classes, or
  101.      * <li>MAKESETTINGS_GENERATE_CLASS_FOR_OUT_OF_DATE_IMPORTS - builds out-of-date imported classes.
  102.      * </ul>
  103.      */
  104.     public abstract int getMakeSettings();
  105.  
  106.     /**
  107.      * Determines whether this native Windows project is a GUI or a console application.
  108.      * If it is a GUI application, the console window will be suprressed.
  109.      * <p>Note: this option is only valid when generating native Windows targets.
  110.      * @return <code>true</code> indicates GUI, <code>false</code> indicates console.
  111.      * @see ProjectOptions#getTargetType
  112.      */
  113.     public abstract boolean isGUIApplication();
  114.  
  115.     /**
  116.      * Determines whether this native Windows project will include profiling calls in the generated code.
  117.      * <p>Note: this option is only valid when generating native Windows targets.
  118.      * @return <code>true</code> indicates profiling calls included, <code>false</code> indicates no profiling calls.
  119.      * @see ProjectOptions#getTargetType
  120.      */
  121.     public abstract boolean isUsePerformanceProfiling();
  122.  
  123.     /**
  124.      * Determines whether this native Windows project will gnerate P6 or P5 Pentium code.
  125.      * <p>Note: this option is only valid when generating native Windows targets.
  126.      * @return <code>true</code> indicates P6 Pentium code generated, <code>false</code> indicates P5 Pentium code generated.
  127.      * @see ProjectOptions#getTargetType
  128.      */
  129.     public abstract boolean isP6PentiumCodeGeneration();
  130.  
  131.     /**
  132.      * Gets the current custom flags that will be passed to the SJ compiler.
  133.      * @return the custom compiler flags.
  134.      */
  135.     public abstract String getCustomCompilerFlags();
  136.  
  137.     /**
  138.      * Determines whether compiling the project will always run Javadoc as well.
  139.      * @return <code>true</code> if so, <code>false</code> otherwise.  This is <code>false</code> by default.
  140.      */
  141.     public abstract boolean isAlwaysProduceJavadocWhenCompiling();
  142.  
  143.     /**
  144.      * Determines whether Javadoc will include "@version" paragraphs.
  145.      * @return <code>true</code> if so, <code>false</code> otherwise.  This is <code>true</code> by default.
  146.      */
  147.     public abstract boolean isJavadocIncludeVersion();
  148.  
  149.     /**
  150.      * Determines whether Javadoc will include "@author" paragraphs.
  151.      * @return <code>true</code> if so, <code>false</code> otherwise.  This is <code>true</code> by default.
  152.      */
  153.     public abstract boolean isJavadocIncludeAuthor();
  154.  
  155.     /**
  156.      * Determines whether Javadoc will generate a method and field index.
  157.      * @return <code>true</code> if so, <code>false</code> otherwise.  This is <code>true</code> by default.
  158.      */
  159.     public abstract boolean isJavadocGenerateIndex();
  160.  
  161.     /**
  162.      * Determines whether Javadoc will split the index by initial letter.
  163.      * <p>Note: this option is only valid when <code>isJavadocGenerateIndex</code> is <code>true</code>.
  164.      * @return <code>true</code> if so, <code>false</code> otherwise.  This is <code>false</code> by default.
  165.      */
  166.     public abstract boolean isJavadocSplitIndex();
  167.  
  168.     /**
  169.      * Determines whether Javadoc will generate a class hierarchy.
  170.      * @return <code>true</code> if so, <code>false</code> otherwise.  This is <code>true</code> by default.
  171.      */
  172.     public abstract boolean isJavadocGenerateTree();
  173.  
  174.     /**
  175.      * Determines whether Javadoc will include imported system classes.
  176.      * @return <code>true</code> if so, <code>false</code> otherwise.  This is <code>false</code> by default.
  177.      */
  178.     public abstract boolean isJavadocIncludeImportedSystemClasses();
  179.  
  180.  
  181.         /**
  182.          * Indicates Javadoc will only document classes and members that are "public".
  183.          * @see #getJavadocClassesToDocument
  184.          */
  185.         public static final int        CLASSESTODOCUMENT_PUBLIC = 0;
  186.         /**
  187.          * Indicates Javadoc will only document classes and members that are "public" and "protected" (default).
  188.          * @see #getJavadocClassesToDocument
  189.          */
  190.         public static final int        CLASSESTODOCUMENT_ANDPROTECTED = 1;
  191.         /**
  192.          * Indicates Javadoc will only document classes and members that are "public", "protected" and "package".
  193.          * @see #getJavadocClassesToDocument
  194.          */
  195.         public static final int        CLASSESTODOCUMENT_ANDPACKAGE = 2;
  196.         /**
  197.          * Indicates Javadoc will document classes and members that are "public", "protected", "package" and "private".
  198.          * @see #getJavadocClassesToDocument
  199.          */
  200.         public static final int        CLASSESTODOCUMENT_ANDPRIVATE = 3;
  201.  
  202.     /**
  203.      * Get the type of classes and members that Javadoc will document.
  204.      * This is <code>CLASSESTODOCUMENT_ANDPROTECTED</code> by default.
  205.      * @return One of:<ul type=circle>
  206.      * <li>CLASSESTODOCUMENT_PUBLIC - public classes/members only,
  207.      * <li>CLASSESTODOCUMENT_ANDPROTECTED - public and protected classes/members only, or
  208.      * <li>CLASSESTODOCUMENT_ANDPACKAGE - public, protected and package classes/members only, or
  209.      * <li>CLASSESTODOCUMENT_ANDPRIVATE - public, protected, package and private classes/members.
  210.      * </ul>
  211.      */
  212.     public abstract int getJavadocClassesToDocument();
  213.  
  214.     /**
  215.      * Determines whether Sun's Javadoc compiler will be used.
  216.      * @return <code>true</code> if so, <code>false</code> otherwise.  This is <code>false</code> by default.
  217.      */
  218.     public abstract boolean isUseSunJavadoc();
  219. }
  220.