Extension SDK 9.0.5

oracle.jdeveloper.externaltools.macro
Interface MacroExpander

All Superinterfaces:
Displayable

public interface MacroExpander
extends 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.


Method Summary
 java.lang.String expand(Context context)
          Expand the specified context into a String.
 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.
 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.
 
Methods inherited from interface oracle.ide.model.Displayable
getIcon, getLongLabel, getShortLabel, getToolTipText, toString
 

Method Detail

getMacro

public 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.

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.

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.

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

expand

public 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?

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

Extension SDK

 

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