| 
 | Oracle Fusion Middleware Java API Reference for Oracle Extension SDK 11g Release 2 (11.1.2.4.0) E17493-05 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectoracle.ide.externaltools.macro.MacroExpander
public abstract class MacroExpander
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.
 
 Note: as of 11.1.2.0.0 
 Macros now must be registered in the extension.xml file in a trigger hook section
 where most of the information will be defined (short/long label, macro, tooltip, isDirectoryMacro)
 The methods to get this information are now effectively no-ops in this class as they will be 
 handled by LazyMacroExpander which will wrap this class and resolve these from the registered data.
 Thus the following methods must be implemented but can essentially do nothing as they will be
 provided by the wrapper class LazyMacroExpander which will resolve them based on declarative data:
 - getShortLabel()
 - getLongLabel()
 - getIcon()
 - getToolTipText()
 - isAvailableForType()
 - isDirectoryMacro()
 - getMacro()
| 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. | 
|  java.lang.String | getLongLabel()Returns a long label that can be displayed to the user. | 
|  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 | getShortLabel()Returns a short label that can be displayed to the user. | 
|  java.lang.String | getToolTipText()Get the tool tip text for this macro. | 
|  boolean | isAvailableForType(ExternalToolType type)Deprecated. since 11.1.2.0.0 use isAvailableForType that takes id instead | 
|  boolean | isAvailableForType(java.lang.String typeId)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 | 
| Constructor Detail | 
|---|
public MacroExpander()
| Method Detail | 
|---|
public javax.swing.Icon getIcon()
getIcon in interface Displayablepublic java.lang.String getToolTipText()
getToolTipText in interface Displayablepublic java.lang.String toString()
getShortLabel().
toString in interface DisplayabletoString in class java.lang.ObjectObject.toString(), 
Displayable.getShortLabel()public java.lang.String getMacro()
public java.lang.String getShortLabel()
DisplayableString is considered
  translatable and should therefore be placed in an appropriate
  resource file.  When possible, the returned label should be
  reasonably short enough to show in the navigator or explorer
  windows but long enough to clearly identify and distinguish the
  Displayable.
getShortLabel in interface DisplayableDisplayable
  that can be shown to the user.public java.lang.String getLongLabel()
DisplayableString is considered translatable
  and should therefore be placed in an appropriate resource file.
  The long label differs from the short label essentially on length.
  Usually the long label will only be shown on-demand and in places
  where horizontal space is more available.  Examples are the status
  bar and tooltips.
getLongLabel in interface DisplayableDisplayable that
  can be shown to the user.public java.lang.String toMacroString()
 
 This implementation returns "${" + 
getMacro() + "}"
public boolean isDirectoryMacro()
This implementation returns false.
public java.lang.String getSampleExpansion(Context context)
 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.
 
 Note:  the implementation for this method will only be called if the 
 extension that registered the implementation is already loaded.  
 Otherwise the LazyMacroExpander will return null rather than calling
 the true implementation.
context - an IDE context
public abstract java.lang.String expand(Context context)
context - an IDE context
public boolean isAvailableForType(ExternalToolType type)
This implementation returns true.
public boolean isAvailableForType(java.lang.String typeId)
This implementation returns true.
| 
 | Oracle Fusion Middleware Java API Reference for Oracle Extension SDK 11g Release 2 (11.1.2.4.0) E17493-05 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||