A Swiss Army Knife for OSGi

aQute.lib.osgi
Class Macro

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

public class Macro
extends java.lang.Object
implements 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. Add POSIX macros: ${#parameter} String length. ${parameter%word} Remove smallest suffix pattern. ${parameter%%word} Remove largest suffix pattern. ${parameter#word} Remove smallest prefix pattern. ${parameter##word} Remove largest prefix pattern.


Field Summary
static java.lang.String _fileHelp
           
static java.lang.String _fmodifiedHelp
           
 
Constructor Summary
Macro(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 _env(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 _osfile(java.lang.String[] args)
           
 java.lang.String _path(java.lang.String[] args)
           
 java.lang.String _pathseparator(java.lang.String[] args)
           
 java.lang.String _range(java.lang.String[] args)
           
 java.lang.String _replace(java.lang.String[] args)
          replace ; ; regex ; replace
 java.lang.String _separator(java.lang.String[] args)
           
 java.lang.String _sort(java.lang.String[] args)
           
 java.lang.String _system_allow_fail(java.lang.String[] args)
           
 java.lang.String _system(java.lang.String[] args)
           
 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.util.Properties getParent(java.util.Properties p)
           
static char getTerminator(char c)
           
 java.lang.String process(java.lang.String line)
           
 java.lang.String process(java.lang.String line, Processor source)
           
protected  java.lang.String replace(java.lang.String key, aQute.lib.osgi.Macro.Link link)
           
 java.lang.String system_internal(boolean allowFail, java.lang.String[] args)
          System command.
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

_fileHelp

public static java.lang.String _fileHelp
Constructor Detail

Macro

public Macro(Processor domain,
             java.lang.Object... targets)
Method Detail

process

public java.lang.String process(java.lang.String line,
                                Processor source)

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)

_pathseparator

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

_separator

public java.lang.String _separator(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)

_range

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

system_internal

public java.lang.String system_internal(boolean allowFail,
                                        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

_system

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

_system_allow_fail

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

_env

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

_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

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

_osfile

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

_path

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

getParent

public static java.util.Properties getParent(java.util.Properties p)

process

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

Licensed under Apache Software License 2.0

Copyright å© aQute SARL (2000, 2011). All Rights Reserved.