Class 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  
    • Constructor Summary

      Constructors 
      Constructor Description
      Macro​(Processor domain, java.lang.Object... targets)  
    • 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 when inTest 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 bytes
      java.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 macro
      java.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 available
      java.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)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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 when inTest 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)