Package org.apache.tools.ant.taskdefs.rmic

# Class DefaultRmicAdapter

java.lang.Object
org.apache.tools.ant.taskdefs.rmic.DefaultRmicAdapter

All Implemented Interfaces:
  `RmicAdapter`

Direct Known Subclasses:
  `ForkingSunRmic`, `KaffeRmic`, `SunRmic`, `WLRmic`

public abstract class DefaultRmicAdapter extends Object implements RmicAdapter
This is the default implementation for the RmicAdapter interface. Currently, this is a cut-and-paste of the original rmic task and DefaultCompilerAdapter.

Since:
  Ant 1.4

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static String`
  `RMI_SKEL_SUFFIX`
  suffix denoting a skel file: "_Skel"
  `static String`
  `RMI_STUB_SUFFIX`
  suffix denoting a stub file: "_Stub"
  `static String`
  `RMI_TIE_SUFFIX`
  suffix denoting a tie file: "_Tie"
  `static String`
  `STUB_1_1`
  arg for 1.1: "-v1.1"
  `static String`
  `STUB_1_2`
  arg for 1.2: "-v1.2"
  `static String`
  `STUB_COMPAT`
  arg for compat: "-vcompat"
  `static String`
  `STUB_OPTION_1_1`
  option for stub 1.1 in the rmic task: "1.1"
  `static String`
  `STUB_OPTION_1_2`
  option for stub 1.2 in the rmic task: "1.2"
  `static String`
  `STUB_OPTION_COMPAT`
  option for stub compat in the rmic task: "compat"

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DefaultRmicAdapter()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected String`
  `addStubVersionOptions()`
  This is an override point; get the stub version off the rmic command and translate that into a compiler-specific argument
  `protected boolean`
  `areIiopAndIdlSupported()`
  Whether the iiop and idl switches are supported.
  `protected String[]`
  `filterJvmCompilerArgs​(String[] compilerArgs)`
  Strip out all -J args from the command list.
  `Path`
  `getClasspath()`
  Gets the CLASSPATH this rmic process will use.
  `protected Path`
  `getCompileClasspath()`
  Builds the compilation classpath.
  `FileNameMapper`
  `getMapper()`
  This implementation returns a mapper that may return up to two file names.
  `Rmic`
  `getRmic()`
  Get the Rmic attributes
  `protected String`
  `getSkelClassSuffix()`
  Gets the skeleton class suffix
  `protected String`
  `getStubClassSuffix()`
  Gets the stub class suffix
  `protected String`
  `getTieClassSuffix()`
  Gets the tie class suffix
  `protected void`
  `logAndAddFilesToCompile​(Commandline cmd)`
  Logs the compilation parameters, adds the files to compile and logs the "niceSourceList"
  `protected String[]`
  `preprocessCompilerArgs​(String[] compilerArgs)`
  Preprocess the compiler arguments in any way you see fit.
  `void`
  `setRmic​(Rmic attributes)`
  Sets Rmic attributes
  `protected Commandline`
  `setupRmicCommand()`
  Setup rmic argument for rmic.
  `protected Commandline`
  `setupRmicCommand​(String[] options)`
  Setup rmic argument for rmic.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.apache.tools.ant.taskdefs.rmic.RmicAdapter

  `execute`

- ## Field Details

  - ### RMI_STUB_SUFFIX

    public static final String RMI_STUB_SUFFIX
    suffix denoting a stub file: "_Stub"
    See Also:
      Constant Field Values

  - ### RMI_SKEL_SUFFIX

    public static final String RMI_SKEL_SUFFIX
    suffix denoting a skel file: "_Skel"
    See Also:
      Constant Field Values

  - ### RMI_TIE_SUFFIX

    public static final String RMI_TIE_SUFFIX
    suffix denoting a tie file: "_Tie"
    See Also:
      Constant Field Values

  - ### STUB_COMPAT

    public static final String STUB_COMPAT
    arg for compat: "-vcompat"
    See Also:
      Constant Field Values

  - ### STUB_1_1

    public static final String STUB_1_1
    arg for 1.1: "-v1.1"
    See Also:
      Constant Field Values

  - ### STUB_1_2

    public static final String STUB_1_2
    arg for 1.2: "-v1.2"
    See Also:
      Constant Field Values

  - ### STUB_OPTION_1_1

    public static final String STUB_OPTION_1_1
    option for stub 1.1 in the rmic task: "1.1"
    See Also:
      Constant Field Values

  - ### STUB_OPTION_1_2

    public static final String STUB_OPTION_1_2
    option for stub 1.2 in the rmic task: "1.2"
    See Also:
      Constant Field Values

  - ### STUB_OPTION_COMPAT

    public static final String STUB_OPTION_COMPAT
    option for stub compat in the rmic task: "compat"
    See Also:
      Constant Field Values

- ## Constructor Details

  - ### DefaultRmicAdapter

    public DefaultRmicAdapter()

- ## Method Details

  - ### setRmic

    public void setRmic​(Rmic attributes)
    Sets Rmic attributes
    Specified by:
      `setRmic` in interface `RmicAdapter`
    Parameters:
      `attributes` - the rmic attributes

  - ### getRmic

    public Rmic getRmic()
    Get the Rmic attributes
    Returns:
      the attributes as a Rmic taskdef

  - ### getStubClassSuffix

    protected String getStubClassSuffix()
    Gets the stub class suffix
    Returns:
      the stub suffix "_Stub"

  - ### getSkelClassSuffix

    protected String getSkelClassSuffix()
    Gets the skeleton class suffix
    Returns:
      the skeleton suffix "_Skel"

  - ### getTieClassSuffix

    protected String getTieClassSuffix()
    Gets the tie class suffix
    Returns:
      the tie suffix "_Tie"

  - ### getMapper

    public FileNameMapper getMapper()
    This implementation returns a mapper that may return up to two file names.
    - for JRMP it will return *_getStubClassSuffix (and *_getSkelClassSuffix if JDK 1.1 is used)
    - for IDL it will return a random name, causing <rmic> to always recompile.
    - for IIOP it will return _*_getStubClassSuffix for interfaces and _*_getStubClassSuffix for non-interfaces (and determine the interface and create _*_Stub from that).
    Specified by:
      `getMapper` in interface `RmicAdapter`
    Returns:
      a `FileNameMapper`

  - ### getClasspath

    public Path getClasspath()
    Gets the CLASSPATH this rmic process will use.
    Specified by:
      `getClasspath` in interface `RmicAdapter`
    Returns:
      the classpath

  - ### getCompileClasspath

    protected Path getCompileClasspath()
    Builds the compilation classpath.
    Returns:
      the classpath

  - ### areIiopAndIdlSupported

    protected boolean areIiopAndIdlSupported()
    Whether the iiop and idl switches are supported.

    This implementation returns false if running on Java 11 onwards and true otherwise.

    Returns:
      true if the iiop and idl switches are supported
    Since:
      Ant 1.10.3

  - ### setupRmicCommand

    protected Commandline setupRmicCommand()
    Setup rmic argument for rmic.
    Returns:
      the command line

  - ### setupRmicCommand

    protected Commandline setupRmicCommand​(String[] options)
    Setup rmic argument for rmic.
    Parameters:
      `options` - additional parameters needed by a specific implementation.
    Returns:
      the command line

  - ### addStubVersionOptions

    protected String addStubVersionOptions()
    This is an override point; get the stub version off the rmic command and translate that into a compiler-specific argument
    Returns:
      a string to use for the stub version; can be null
    Since:
      Ant1.7.1

  - ### preprocessCompilerArgs

    protected String[] preprocessCompilerArgs​(String[] compilerArgs)
    Preprocess the compiler arguments in any way you see fit. This is to allow compiler adapters to validate or filter the arguments. The base implementation returns the original compiler arguments unchanged.
    Parameters:
      `compilerArgs` - the original compiler arguments
    Returns:
      the filtered set.

  - ### filterJvmCompilerArgs

    protected String[] filterJvmCompilerArgs​(String[] compilerArgs)
    Strip out all -J args from the command list. Invoke this from `preprocessCompilerArgs(String[])` if you have a non-forking compiler.
    Parameters:
      `compilerArgs` - the original compiler arguments
    Returns:
      the filtered set.

  - ### logAndAddFilesToCompile

    protected void logAndAddFilesToCompile​(Commandline cmd)
    Logs the compilation parameters, adds the files to compile and logs the "niceSourceList"
    Parameters:
      `cmd` - the commandline args