Package aQute.bnd.osgi
Class Macro
- java.lang.Object
-
- aQute.bnd.osgi.Macro
-
public class Macro extends java.lang.Object
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
Fields Modifier and Type Field Description static java.lang.String
_fileHelp
Deprecated.static java.lang.String
_fmodifiedHelp
static java.lang.String
_nowHelp
static java.lang.String
_sizeHelp
boolean
inTest
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
__testdebug(java.lang.String[] args)
Test macro to have exceptions, only active wheninTest
is active.java.lang.String
_apply(java.lang.String[] args)
java.lang.String
_average(java.lang.String[] args)
java.lang.String
_base64(java.lang.String... args)
Get the Base64 encoding of a file.java.lang.String
_basename(java.lang.String[] args)
java.lang.String
_basenameext(java.lang.String[] args)
java.lang.String
_bndversion(java.lang.String[] args)
java.lang.String
_bytes(java.lang.String[] args)
Format bytesjava.lang.String
_cat(java.lang.String[] args)
Get the contents of a file.int
_compare(java.lang.String[] args)
java.lang.String
_currenttime(java.lang.String[] args)
java.lang.String
_decorated(java.lang.String[] args)
Return the merged and decorated value of a macrojava.lang.String
_def(java.lang.String[] args)
java.lang.String
_digest(java.lang.String... args)
Get a digest of a file.java.lang.String
_dir(java.lang.String[] args)
java.lang.String
_endswith(java.lang.String[] args)
java.lang.String
_env(java.lang.String[] args)
java.lang.String
_error(java.lang.String[] args)
java.lang.String
_extension(java.lang.String[] args)
java.lang.String
_fileuri(java.lang.String[] args)
java.lang.String
_filter(java.lang.String[] args)
java.lang.String
_filterout(java.lang.String[] args)
int
_find(java.lang.String[] args)
int
_findlast(java.lang.String[] args)
java.lang.String
_first(java.lang.String[] args)
java.lang.String
_fmodified(java.lang.String[] args)
java.lang.String
_foreach(java.lang.String[] args)
java.lang.String
_format(java.lang.String[] args)
java.lang.String
_get(java.lang.String[] args)
java.lang.String
_glob(java.lang.String[] args)
java.lang.String
_if(java.lang.String[] args)
int
_indexof(java.lang.String[] args)
boolean
_is(java.lang.String[] args)
java.lang.String
_isdir(java.lang.String[] args)
boolean
_isempty(java.lang.String[] args)
java.lang.String
_isfile(java.lang.String[] args)
boolean
_isnumber(java.lang.String[] args)
java.lang.String
_join(java.lang.String[] args)
java.lang.Object
_js(java.lang.String[] args)
java.lang.String
_last(java.lang.String[] args)
int
_lastindexof(java.lang.String[] args)
int
_length(java.lang.String[] args)
java.lang.String
_list(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)
java.lang.String
_map(java.lang.String[] args)
boolean
_matches(java.lang.String[] args)
java.lang.String
_max(java.lang.String[] args)
java.lang.String
_min(java.lang.String[] args)
int
_ncompare(java.lang.String[] args)
java.lang.String
_nmax(java.lang.String[] args)
java.lang.String
_nmin(java.lang.String[] args)
java.lang.Object
_now(java.lang.String[] args)
java.lang.String
_nsort(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)
long
_rand(java.lang.String[] args)
java.lang.String
_range(java.lang.String[] args)
java.lang.String
_reject(java.lang.String[] args)
java.lang.String
_removeall(java.lang.String[] args)
java.lang.String
_replace(java.lang.String[] args)
java.lang.String
_replacelist(java.lang.String[] args)
java.lang.String
_replacestring(java.lang.String[] args)
java.lang.String
_retainall(java.lang.String[] args)
java.lang.String
_reverse(java.lang.String[] args)
java.lang.String
_select(java.lang.String[] args)
java.lang.String
_separator(java.lang.String[] args)
int
_size(java.lang.String[] args)
java.lang.String
_sjoin(java.lang.String[] args)
java.lang.String
_sort(java.lang.String[] args)
java.lang.String
_split(java.lang.String[] args)
java.lang.String
_startswith(java.lang.String[] args)
java.lang.String
_stem(java.lang.String[] args)
java.lang.String
_sublist(java.lang.String[] args)
java.lang.StringBuffer
_subst(java.lang.String[] args)
java.lang.String
_substring(java.lang.String[] args)
java.lang.String
_sum(java.lang.String[] args)
java.lang.String
_system(java.lang.String[] args)
java.lang.String
_system_allow_fail(java.lang.String[] args)
java.lang.String
_template(java.lang.String[] args)
Take a macro name that maps to a Parameters and expand its entries using a template.java.lang.String
_toclassname(java.lang.String[] args)
java.lang.String
_toclasspath(java.lang.String[] args)
java.lang.String
_tolower(java.lang.String[] args)
java.lang.String
_toupper(java.lang.String[] args)
java.lang.String
_trim(java.lang.String[] args)
java.lang.String
_tstamp(java.lang.String[] args)
java.lang.String
_unescape(java.lang.String[] args)
java.lang.String
_uniq(java.lang.String[] args)
int
_vcompare(java.lang.String[] args)
java.lang.String
_version(java.lang.String[] args)
java.lang.String
_version_cleanup(java.lang.String[] args)
java.lang.String
_versionmask(java.lang.String[] args)
java.lang.String
_vmax(java.lang.String[] args)
java.lang.String
_vmin(java.lang.String[] args)
java.lang.String
_warning(java.lang.String[] args)
boolean
doCondition(java.lang.String arg)
java.util.Map<java.lang.String,java.lang.String>
getCommands()
Get all the commands availablejava.util.Properties
getFlattenedProperties()
Take all the properties and translate them to actual values.java.util.Properties
getFlattenedProperties(boolean ignoreInstructions)
Take all the properties and translate them to actual values.protected java.lang.String
getMacro(java.lang.String key, aQute.bnd.osgi.Macro.Link link)
static java.util.Properties
getParent(java.util.Properties p)
static char
getTerminator(char c)
boolean
isNosystem()
boolean
isTruthy(java.lang.String condition)
java.lang.String
process(java.lang.String line)
java.lang.String
process(java.lang.String line, Processor source)
java.lang.String
replace(java.lang.String key, aQute.bnd.osgi.Macro.Link link)
boolean
setNosystem(boolean nosystem)
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)
-
-
-
Field Detail
-
inTest
public boolean inTest
-
_nowHelp
public static final java.lang.String _nowHelp
- See Also:
- Constant Field Values
-
_fmodifiedHelp
public static final java.lang.String _fmodifiedHelp
- See Also:
- Constant Field Values
-
_fileHelp
@Deprecated public static final java.lang.String _fileHelp
Deprecated.- See Also:
- Constant Field Values
-
_sizeHelp
public static final java.lang.String _sizeHelp
- See Also:
- Constant Field Values
-
-
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)
-
getMacro
protected java.lang.String getMacro(java.lang.String key, aQute.bnd.osgi.Macro.Link link)
-
replace
public java.lang.String replace(java.lang.String key, aQute.bnd.osgi.Macro.Link link)
-
_uniq
public java.lang.String _uniq(java.lang.String[] args)
-
_removeall
public java.lang.String _removeall(java.lang.String[] args)
-
_retainall
public java.lang.String _retainall(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)
-
_select
public java.lang.String _select(java.lang.String[] args)
-
_filterout
public java.lang.String _filterout(java.lang.String[] args)
-
_reject
public java.lang.String _reject(java.lang.String[] args)
-
_sort
public java.lang.String _sort(java.lang.String[] args)
-
_nsort
public java.lang.String _nsort(java.lang.String[] args)
-
_join
public java.lang.String _join(java.lang.String[] args)
-
_sjoin
public java.lang.String _sjoin(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_if
public java.lang.String _if(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
isTruthy
public boolean isTruthy(java.lang.String condition) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_now
public java.lang.Object _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)
-
_list
public java.lang.String _list(java.lang.String[] args)
-
_replace
public java.lang.String _replace(java.lang.String[] args)
-
_replacelist
public java.lang.String _replacelist(java.lang.String[] args)
-
_replacestring
public java.lang.String _replacestring(java.lang.String[] args)
-
_warning
public java.lang.String _warning(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_error
public java.lang.String _error(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_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)
-
_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)
-
_versionmask
public java.lang.String _versionmask(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.- 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.- Throws:
java.io.IOException
-
_base64
public java.lang.String _base64(java.lang.String... args) throws java.io.IOException
Get the Base64 encoding of a file.- Throws:
java.io.IOException
-
_digest
public java.lang.String _digest(java.lang.String... args) throws java.security.NoSuchAlgorithmException, java.io.IOException
Get a digest of a file.- Throws:
java.security.NoSuchAlgorithmException
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.There are some rules
- Property names starting with an underscore ('_') are ignored. These are reserved for properties that cause an unwanted side effect when expanded unnecessary
- Property names starting with a minus sign ('-') are not expanded to maintain readability
- Returns:
- A new Properties with the flattened values
-
getFlattenedProperties
public java.util.Properties getFlattenedProperties(boolean ignoreInstructions)
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.Property names starting with an underscore ('_') are ignored. These are reserved for properties that cause an unwanted side effect when expanded unnecessary
- 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)
-
_size
public int _size(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)
-
isNosystem
public boolean isNosystem()
-
setNosystem
public boolean setNosystem(boolean nosystem)
-
_unescape
public java.lang.String _unescape(java.lang.String[] args)
-
_startswith
public java.lang.String _startswith(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_endswith
public java.lang.String _endswith(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_extension
public java.lang.String _extension(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_basenameext
public java.lang.String _basenameext(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_bndversion
public java.lang.String _bndversion(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_stem
public java.lang.String _stem(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_substring
public java.lang.String _substring(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_rand
public long _rand(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_length
public int _length(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_get
public java.lang.String _get(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_sublist
public java.lang.String _sublist(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_first
public java.lang.String _first(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_last
public java.lang.String _last(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_max
public java.lang.String _max(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_min
public java.lang.String _min(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_nmax
public java.lang.String _nmax(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_nmin
public java.lang.String _nmin(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_vmax
public java.lang.String _vmax(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_vmin
public java.lang.String _vmin(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_sum
public java.lang.String _sum(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_average
public java.lang.String _average(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_reverse
public java.lang.String _reverse(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_indexof
public int _indexof(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_lastindexof
public int _lastindexof(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_find
public int _find(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_findlast
public int _findlast(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_split
public java.lang.String _split(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_js
public java.lang.Object _js(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_toupper
public java.lang.String _toupper(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_tolower
public java.lang.String _tolower(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_compare
public int _compare(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_ncompare
public int _ncompare(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_vcompare
public int _vcompare(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_matches
public boolean _matches(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_subst
public java.lang.StringBuffer _subst(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_trim
public java.lang.String _trim(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_format
public java.lang.String _format(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_isempty
public boolean _isempty(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_isnumber
public boolean _isnumber(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_is
public boolean _is(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_map
public java.lang.String _map(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_foreach
public java.lang.String _foreach(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_apply
public java.lang.String _apply(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_bytes
public java.lang.String _bytes(java.lang.String[] args)
Format bytes
-
_glob
public java.lang.String _glob(java.lang.String[] args)
-
doCondition
public boolean doCondition(java.lang.String arg) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getCommands
public java.util.Map<java.lang.String,java.lang.String> getCommands()
Get all the commands available- Returns:
- a map with commands and their help
-
_template
public java.lang.String _template(java.lang.String[] args) throws java.io.IOException
Take a macro name that maps to a Parameters and expand its entries using a template. The macro takes a macro name. It will merge and decorate this name before it applies it to the template. Each entry is mapped to the template. The template can use${@}
for the key and${@attribute}
for attributes.It would be nice to take the parameters value directly but this is really hard to do with the quoting. That is why we use a name. It is always possible to have an intermediate macro
- Parameters:
args
- 'template', macro-name of Parameters, template, separator=','- Returns:
- the expanded template.
- Throws:
java.io.IOException
-
_decorated
public java.lang.String _decorated(java.lang.String[] args) throws java.lang.Exception
Return the merged and decorated value of a macro- Throws:
java.lang.Exception
-
__testdebug
public java.lang.String __testdebug(java.lang.String[] args) throws java.lang.Throwable
Test macro to have exceptions, only active wheninTest
is active.- Parameters:
args
- currently only 'exception'- Returns:
- nothing of valeue
- Throws:
java.lang.ClassNotFoundException
java.lang.Throwable
-
_fileuri
public java.lang.String _fileuri(java.lang.String[] args) throws java.lang.Exception
- Throws:
java.lang.Exception
-
_version_cleanup
public java.lang.String _version_cleanup(java.lang.String[] args)
-
-