Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference
11g Release 1 (11.1.1.6.0)

E13403-07

oracle.ide.externaltools.macro
Class MacroExpander

java.lang.Object
  extended by oracle.ide.externaltools.macro.MacroExpander
All Implemented Interfaces:
Displayable
Direct Known Subclasses:
ParameterizedMacro

public abstract class MacroExpander
extends java.lang.Object
implements Displayable

Macro expanders are registered with the MacroRegistry and can be used to expand macros prior to running external tools.

This interface extends Displayable. The getShortLabel() method is used when this macro is displayed to users in the external tools UI. When a longer description of the macro is displayed to users, the getLongLabel() method is used.

The getMacro() method should be used to return a short string that will be recognized in input strings as belonging to this macro expander. For example, if the getMacro() method returns "mymacro", then the sequence "${mymacro}" will be recognized in input strings as belonging to this expander. Note that the string should not contain the macro escape characters "${...}".

Implement the expand( Context ) method to actually expand an IDE context into a String. Whenever possible, this should happen automatically, however it's acceptable to display UI (e.g. a prompt) while expanding a macro - macro expansion occurs just prior to running external tools.


Constructor Summary
MacroExpander()
           
 
Method Summary
abstract  java.lang.String expand(Context context)
          Expand the specified context into a String.
 javax.swing.Icon getIcon()
          Get the icon for this macro.
abstract  java.lang.String getMacro()
          Get the macro string recognized by this expander.
 java.lang.String getSampleExpansion(Context context)
          Get a sample expansion of this macro.
 java.lang.String getToolTipText()
          Get the tool tip text for this macro.
 boolean isAvailableForType(ExternalToolType type)
          Should this macro be made available for external tools of the specified type?
 boolean isDirectoryMacro()
          Does this macro expand to a directory? Some of the external tools UI provides a restricted list of macros where only directory values can be used.
 java.lang.String toMacroString()
          Gets the text of this macro exactly as it appears in an unexpanded string.
 java.lang.String toString()
          Get a string representation of this macro.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface oracle.ide.model.Displayable
getLongLabel, getShortLabel
 

Constructor Detail

MacroExpander

public MacroExpander()
Method Detail

getIcon

public javax.swing.Icon getIcon()
Get the icon for this macro. This implementation returns null.

Specified by:
getIcon in interface Displayable
Returns:
the icon for this macr.

getToolTipText

public java.lang.String getToolTipText()
Get the tool tip text for this macro. This implementation returns null.

Specified by:
getToolTipText in interface Displayable
Returns:
the tooltip text for this macro.

toString

public java.lang.String toString()
Get a string representation of this macro. This implementation returns Displayable.getShortLabel().

Specified by:
toString in interface Displayable
Overrides:
toString in class java.lang.Object
Returns:
a string representation of this macro.
See Also:
Object.toString(), Displayable.getShortLabel()

getMacro

public abstract java.lang.String getMacro()
Get the macro string recognized by this expander.

Returns:
a string. On macro expansion, if an escaped string matching the specified string exists, this macro expander will be used to do the expansion.

toMacroString

public java.lang.String toMacroString()
Gets the text of this macro exactly as it appears in an unexpanded string. This includes macro escape characters ( ${}).

This implementation returns "${" + getMacro() + "}"

Returns:
the text of this macro exactly as it appears in an unexpanded string.

isDirectoryMacro

public boolean isDirectoryMacro()
Does this macro expand to a directory? Some of the external tools UI provides a restricted list of macros where only directory values can be used. If this macro may represent a directory, it should return true from this method.

This implementation returns false.

Returns:
true if the expansion of this macro may result in a String containining the path of a directory.

getSampleExpansion

public java.lang.String getSampleExpansion(Context context)
Get a sample expansion of this macro. This is used by the external tools UI when displaying example command lines.

The simplest implementation of this method just returns the same result as expand( Context ).

Because these commmand lines are displayed while the external tools UI is on screen, and are not necessarily related to actually running an external tool, you should avoid displaying UI in this method.

In addition, because this is an example string, you may choose to ignore the specified context and just provide a string that resembles the expansion of this macro.

This implementation just calls expand( Context ). You should override this if expand() displays UI or takes a long time.

Parameters:
context - an IDE context
Returns:
a String representing an example evaluation of this macro.

expand

public abstract java.lang.String expand(Context context)
Expand the specified context into a String.

Parameters:
context - an IDE context
Returns:
a String (which may be empty) representing the evaluation of this macro on the specified context.

isAvailableForType

public boolean isAvailableForType(ExternalToolType type)
Should this macro be made available for external tools of the specified type?

This implementation returns true.

Returns:
true if the macro is available, false otherwise.

Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference
11g Release 1 (11.1.1.6.0)

E13403-07

Copyright © 1997, 2011, Oracle. All rights reserved.