Class Properties

  • All Implemented Interfaces:
    java.util.Map<java.lang.String,​java.lang.String>

    public class Properties
    extends java.util.AbstractMap<java.lang.String,​java.lang.String>

    Enhancement of the standard Properties managing the maintain of comments, etc.

    Author:
    gnodet, jbonofre
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected static class  Properties.Layout
      TODO
      static class  Properties.PropertiesReader
      This class is used to read properties lines.
      static class  Properties.PropertiesWriter
      This class is used to write properties lines.
      • Nested classes/interfaces inherited from class java.util.AbstractMap

        java.util.AbstractMap.SimpleEntry<K extends java.lang.Object,​V extends java.lang.Object>, java.util.AbstractMap.SimpleImmutableEntry<K extends java.lang.Object,​V extends java.lang.Object>
      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()  
      static boolean contains​(char[] array, char valueToFind)
      Checks if the value is in the given array.
      java.util.Set<java.util.Map.Entry<java.lang.String,​java.lang.String>> entrySet()  
      protected static java.lang.String escapeJava​(java.lang.String str)
      Escapes the characters in a String using Java String rules.
      java.util.List<java.lang.String> getComments​(java.lang.String key)  
      java.util.List<java.lang.String> getFooter()
      Return the comment footer.
      java.util.List<java.lang.String> getHeader()
      Return the comment header.
      java.lang.String getProperty​(java.lang.String key)
      Searches for the property with the specified key in this property list.
      java.lang.String getProperty​(java.lang.String key, java.lang.String defaultValue)
      Searches for the property with the specified key in this property list.
      java.util.List<java.lang.String> getRaw​(java.lang.String key)  
      protected static java.lang.String hex​(char ch)
      Returns an upper case hexadecimal String for the given character.
      void load​(java.io.File location)  
      void load​(java.io.InputStream is)  
      void load​(java.io.Reader reader)  
      void load​(java.net.URL location)  
      protected void loadLayout​(java.io.Reader in, boolean maybeTyped)
      Reads a properties file and stores its internal structure.
      java.util.Enumeration<?> propertyNames()
      Returns an enumeration of all the keys in this property list, including distinct keys in the default property list if a key of the same name has not already been found from the main properties list.
      java.lang.String put​(java.lang.String key, java.lang.String value)  
      java.lang.String put​(java.lang.String key, java.lang.String comment, java.lang.String value)  
      java.lang.String put​(java.lang.String key, java.util.List<java.lang.String> commentLines, java.lang.String value)  
      java.lang.String put​(java.lang.String key, java.util.List<java.lang.String> commentLines, java.util.List<java.lang.String> valueLines)  
      java.lang.String remove​(java.lang.Object key)  
      void save()  
      void save​(java.io.File location)  
      void save​(java.io.OutputStream os)  
      void save​(java.io.Writer writer)  
      protected void saveLayout​(java.io.Writer out, boolean typed)
      Writes the properties file to the given writer, preserving as much of its structure as possible.
      void setFooter​(java.util.List<java.lang.String> footer)
      Set the comment footer.
      void setHeader​(java.util.List<java.lang.String> header)
      Set the comment header.
      java.lang.Object setProperty​(java.lang.String key, java.lang.String value)
      Calls the map method put.
      void store​(java.io.OutputStream os, java.lang.String comment)
      Store a properties into a output stream, preserving comments, special character, etc.
      void substitute()  
      void substitute​(InterpolationHelper.SubstitutionCallback callback)  
      protected static java.lang.String unescapeJava​(java.lang.String str)
      Unescapes any Java literals found in the String to a Writer.
      boolean update​(java.util.Map<java.lang.String,​java.lang.String> props)  
      boolean update​(Properties properties)  
      • Methods inherited from class java.util.AbstractMap

        clone, containsKey, containsValue, equals, get, hashCode, isEmpty, keySet, putAll, size, toString, values
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Map

        compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
    • Constructor Detail

      • Properties

        public Properties()
      • Properties

        public Properties​(java.io.File location)
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • Properties

        public Properties​(java.io.File location,
                          org.osgi.framework.BundleContext context)
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • Properties

        public Properties​(boolean substitute)
      • Properties

        public Properties​(java.io.File location,
                          boolean substitute)
    • Method Detail

      • load

        public void load​(java.io.File location)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • load

        public void load​(java.net.URL location)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • load

        public void load​(java.io.InputStream is)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • load

        public void load​(java.io.Reader reader)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • save

        public void save()
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • save

        public void save​(java.io.File location)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • save

        public void save​(java.io.OutputStream os)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • save

        public void save​(java.io.Writer writer)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • store

        public void store​(java.io.OutputStream os,
                          java.lang.String comment)
                   throws java.io.IOException
        Store a properties into a output stream, preserving comments, special character, etc. This method is mainly to be compatible with the java.util.Properties class.
        Parameters:
        os - an output stream.
        comment - this parameter is ignored as this Properties
        Throws:
        java.io.IOException - If storing fails
      • getProperty

        public java.lang.String getProperty​(java.lang.String key)
        Searches for the property with the specified key in this property list.
        Parameters:
        key - the property key.
        Returns:
        the value in this property list with the specified key value.
      • getProperty

        public java.lang.String getProperty​(java.lang.String key,
                                            java.lang.String defaultValue)
        Searches for the property with the specified key in this property list. If the key is not found in this property list, the default property list, and its defaults, recursively, are then checked. The method returns the default value argument if the property is not found.
        Parameters:
        key - the property key.
        defaultValue - a default value.
        Returns:
        The property value of the default value
      • entrySet

        public java.util.Set<java.util.Map.Entry<java.lang.String,​java.lang.String>> entrySet()
        Specified by:
        entrySet in interface java.util.Map<java.lang.String,​java.lang.String>
        Specified by:
        entrySet in class java.util.AbstractMap<java.lang.String,​java.lang.String>
      • propertyNames

        public java.util.Enumeration<?> propertyNames()
        Returns an enumeration of all the keys in this property list, including distinct keys in the default property list if a key of the same name has not already been found from the main properties list.
        Returns:
        an enumeration of all the keys in this property list, including the keys in the default property list.
      • setProperty

        public java.lang.Object setProperty​(java.lang.String key,
                                            java.lang.String value)
        Calls the map method put. Provided for parallelism with the getProperty method. Enforces use of strings for property keys and values. The value returned is the result of the map call to put.
        Parameters:
        key - the key to be placed into this property list.
        value - the value corresponding to the key.
        Returns:
        the previous value of the specified key in this property list, or null if it did not have one.
      • put

        public java.lang.String put​(java.lang.String key,
                                    java.lang.String value)
        Specified by:
        put in interface java.util.Map<java.lang.String,​java.lang.String>
        Overrides:
        put in class java.util.AbstractMap<java.lang.String,​java.lang.String>
      • put

        public java.lang.String put​(java.lang.String key,
                                    java.util.List<java.lang.String> commentLines,
                                    java.util.List<java.lang.String> valueLines)
      • put

        public java.lang.String put​(java.lang.String key,
                                    java.util.List<java.lang.String> commentLines,
                                    java.lang.String value)
      • put

        public java.lang.String put​(java.lang.String key,
                                    java.lang.String comment,
                                    java.lang.String value)
      • update

        public boolean update​(java.util.Map<java.lang.String,​java.lang.String> props)
      • update

        public boolean update​(Properties properties)
      • getRaw

        public java.util.List<java.lang.String> getRaw​(java.lang.String key)
      • getComments

        public java.util.List<java.lang.String> getComments​(java.lang.String key)
      • remove

        public java.lang.String remove​(java.lang.Object key)
        Specified by:
        remove in interface java.util.Map<java.lang.String,​java.lang.String>
        Overrides:
        remove in class java.util.AbstractMap<java.lang.String,​java.lang.String>
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Map<java.lang.String,​java.lang.String>
        Overrides:
        clear in class java.util.AbstractMap<java.lang.String,​java.lang.String>
      • getHeader

        public java.util.List<java.lang.String> getHeader()
        Return the comment header.
        Returns:
        the comment header
      • setHeader

        public void setHeader​(java.util.List<java.lang.String> header)
        Set the comment header.
        Parameters:
        header - the header to use
      • getFooter

        public java.util.List<java.lang.String> getFooter()
        Return the comment footer.
        Returns:
        the comment footer
      • setFooter

        public void setFooter​(java.util.List<java.lang.String> footer)
        Set the comment footer.
        Parameters:
        footer - the footer to use
      • loadLayout

        protected void loadLayout​(java.io.Reader in,
                                  boolean maybeTyped)
                           throws java.io.IOException
        Reads a properties file and stores its internal structure. The found properties will be added to the associated configuration object.
        Parameters:
        in - the reader to the properties file
        Throws:
        java.io.IOException - if an error occurs
      • substitute

        public void substitute()
      • saveLayout

        protected void saveLayout​(java.io.Writer out,
                                  boolean typed)
                           throws java.io.IOException
        Writes the properties file to the given writer, preserving as much of its structure as possible.
        Parameters:
        out - the writer
        Throws:
        java.io.IOException - if an error occurs
      • unescapeJava

        protected static java.lang.String unescapeJava​(java.lang.String str)

        Unescapes any Java literals found in the String to a Writer.

        This is a slightly modified version of the StringEscapeUtils.unescapeJava() function in commons-lang that doesn't drop escaped separators (i.e '\,').
        Parameters:
        str - the String to unescape, may be null
        Returns:
        the processed string
        Throws:
        java.lang.IllegalArgumentException - if the Writer is null
      • escapeJava

        protected static java.lang.String escapeJava​(java.lang.String str)

        Escapes the characters in a String using Java String rules.

        Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.)

        So a tab becomes the characters '\\' and 't'.

        The only difference between Java strings and JavaScript strings is that in JavaScript, a single quote must be escaped.

        Example:

         input string: He didn't say, "Stop!"
         output string: He didn't say, \"Stop!\"
         
        Parameters:
        str - String to escape values in, may be null
        Returns:
        String with escaped values, null if null string input
      • hex

        protected static java.lang.String hex​(char ch)

        Returns an upper case hexadecimal String for the given character.

        Parameters:
        ch - The character to convert.
        Returns:
        An upper case hexadecimal String
      • contains

        public static boolean contains​(char[] array,
                                       char valueToFind)

        Checks if the value is in the given array.

        The method returns false if a null array is passed in.

        Parameters:
        array - the array to search through
        valueToFind - the value to find
        Returns:
        true if the array contains the object