aQute.lib.osgi
Class Macro

java.lang.Object
  extended by aQute.lib.osgi.Macro
All Implemented Interfaces:
aQute.libg.sed.Replacer

public class Macro
extends java.lang.Object
implements aQute.libg.sed.Replacer

Provide a macro processor. This processor can replace variables in strings based on a properties and a domain. The domain can implement functions that start with a "_" and take args[], the names of these functions are available as functions in the macro processor (without the _). Macros can nest to any depth but may not contain loops.


Field Summary
static java.lang.String _fmodifiedHelp
           
 
Constructor Summary
Macro(Processor processor)
           
Macro(java.util.Properties properties, Processor domain, java.lang.Object... targets)
           
 
Method Summary
 java.lang.String _basename(java.lang.String[] args)
           
 java.lang.String _cat(java.lang.String[] args)
          Get the contents of a file.
 java.lang.String _currenttime(java.lang.String[] args)
           
 java.lang.String _def(java.lang.String[] args)
           
 java.lang.String _dir(java.lang.String[] args)
           
 java.lang.String _error(java.lang.String[] args)
           
 java.lang.String _filter(java.lang.String[] args)
           
 java.lang.String _filterout(java.lang.String[] args)
           
 java.lang.String _fmodified(java.lang.String[] args)
           
 java.lang.String _if(java.lang.String[] args)
           
 java.lang.String _isdir(java.lang.String[] args)
           
 java.lang.String _isfile(java.lang.String[] args)
           
 java.lang.String _join(java.lang.String[] args)
           
 java.lang.String _literal(java.lang.String[] args)
           
 java.lang.String _long2date(java.lang.String[] args)
           
 java.lang.String _lsa(java.lang.String[] args)
           
 java.lang.String _lsr(java.lang.String[] args)
          Wildcard a directory.
 java.lang.String _now(java.lang.String[] args)
           
 java.lang.String _replace(java.lang.String[] args)
          replace ; ; regex ; replace
 java.lang.String _sort(java.lang.String[] args)
           
 java.lang.String _system(java.lang.String[] args)
          System command.
 java.lang.String _toclassname(java.lang.String[] args)
           
 java.lang.String _toclasspath(java.lang.String[] args)
           
 java.lang.String _tstamp(java.lang.String[] args)
           
 java.lang.String _uniq(java.lang.String[] args)
           
 java.lang.String _version(java.lang.String[] args)
           
 java.lang.String _warning(java.lang.String[] args)
           
 java.util.Properties getFlattenedProperties()
          Take all the properties and translate them to actual values.
static java.lang.String getString(java.io.InputStream in)
           
static char getTerminator(char c)
           
 java.lang.String process(java.lang.String line)
           
protected  java.lang.String replace(java.lang.String key, aQute.lib.osgi.Macro.Link link)
           
static void verifyCommand(java.lang.String[] args, java.lang.String help, java.util.regex.Pattern[] patterns, int low, int high)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_fmodifiedHelp

public static java.lang.String _fmodifiedHelp
Constructor Detail

Macro

public Macro(java.util.Properties properties,
             Processor domain,
             java.lang.Object... targets)

Macro

public Macro(Processor processor)
Method Detail

process

public java.lang.String process(java.lang.String line)
Specified by:
process in interface aQute.libg.sed.Replacer

getTerminator

public static char getTerminator(char c)

replace

protected java.lang.String replace(java.lang.String key,
                                   aQute.lib.osgi.Macro.Link link)

_uniq

public java.lang.String _uniq(java.lang.String[] args)

_filter

public java.lang.String _filter(java.lang.String[] args)

_filterout

public java.lang.String _filterout(java.lang.String[] args)

_sort

public java.lang.String _sort(java.lang.String[] args)

_join

public java.lang.String _join(java.lang.String[] args)

_if

public java.lang.String _if(java.lang.String[] args)

_now

public java.lang.String _now(java.lang.String[] args)

_fmodified

public java.lang.String _fmodified(java.lang.String[] args)
                            throws java.lang.Exception
Throws:
java.lang.Exception

_long2date

public java.lang.String _long2date(java.lang.String[] args)

_literal

public java.lang.String _literal(java.lang.String[] args)

_def

public java.lang.String _def(java.lang.String[] args)

_replace

public java.lang.String _replace(java.lang.String[] args)
replace ; ; regex ; replace

Parameters:
args -
Returns:

_warning

public java.lang.String _warning(java.lang.String[] args)

_error

public java.lang.String _error(java.lang.String[] args)

_toclassname

public java.lang.String _toclassname(java.lang.String[] args)

_toclasspath

public java.lang.String _toclasspath(java.lang.String[] args)

_dir

public java.lang.String _dir(java.lang.String[] args)

_basename

public java.lang.String _basename(java.lang.String[] args)

_isfile

public java.lang.String _isfile(java.lang.String[] args)

_isdir

public java.lang.String _isdir(java.lang.String[] args)

_tstamp

public java.lang.String _tstamp(java.lang.String[] args)

_lsr

public java.lang.String _lsr(java.lang.String[] args)
Wildcard a directory. The lists can contain Instruction that are matched against the given directory ${lsr;;(;)*} ${lsa;;(;)*}


_lsa

public java.lang.String _lsa(java.lang.String[] args)

_currenttime

public java.lang.String _currenttime(java.lang.String[] args)

_version

public java.lang.String _version(java.lang.String[] args)

_system

public java.lang.String _system(java.lang.String[] args)
                         throws java.lang.Exception
System command. Execute a command and insert the result.

Parameters:
args -
help -
patterns -
low -
high -
Throws:
java.lang.Exception

_cat

public java.lang.String _cat(java.lang.String[] args)
                      throws java.io.IOException
Get the contents of a file.

Parameters:
in -
Returns:
Throws:
java.io.IOException

getString

public static java.lang.String getString(java.io.InputStream in)
                                  throws java.io.IOException
Throws:
java.io.IOException

verifyCommand

public static void verifyCommand(java.lang.String[] args,
                                 java.lang.String help,
                                 java.util.regex.Pattern[] patterns,
                                 int low,
                                 int high)

getFlattenedProperties

public java.util.Properties getFlattenedProperties()
Take all the properties and translate them to actual values. This method takes the set properties and traverse them over all entries, including the default properties for that properties. The values no longer contain macros.

Returns:
A new Properties with the flattened values