org.apache.karaf.util
Class Properties

java.lang.Object
  extended by java.util.AbstractMap<java.lang.String,java.lang.String>
      extended by org.apache.karaf.util.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
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,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Constructor Summary
Properties()
           
Properties(java.io.File location)
           
 
Method Summary
 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()
           
 java.util.List<java.lang.String> getFooter()
          Return the comment footer.
 java.util.List<java.lang.String> getHeader()
          Return the comment header.
 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)
          Reads a properties file and stores its internal structure.
static void performSubstitution(java.util.Map<java.lang.String,java.lang.String> properties)
          Perform substitution on a property set
 java.lang.String put(java.lang.String key, java.lang.String value)
           
 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)
          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.
static java.lang.String substVars(java.lang.String val, java.lang.String currentKey, java.util.Map<java.lang.String,java.lang.String> cycleMap, java.util.Map<java.lang.String,java.lang.String> configProps)
           This method performs property variable substitution on the specified value.
 
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
 

Constructor Detail

Properties

public Properties()

Properties

public Properties(java.io.File location)
           throws java.io.IOException
Throws:
java.io.IOException
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

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>

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>

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)
                   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

saveLayout

protected void saveLayout(java.io.Writer out)
                   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

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

performSubstitution

public static void performSubstitution(java.util.Map<java.lang.String,java.lang.String> properties)
Perform substitution on a property set

Parameters:
properties - the property set to perform substitution on

substVars

public static java.lang.String substVars(java.lang.String val,
                                         java.lang.String currentKey,
                                         java.util.Map<java.lang.String,java.lang.String> cycleMap,
                                         java.util.Map<java.lang.String,java.lang.String> configProps)
                                  throws java.lang.IllegalArgumentException

This method performs property variable substitution on the specified value. If the specified value contains the syntax ${<prop-name>}, where <prop-name> refers to either a configuration property or a system property, then the corresponding property value is substituted for the variable placeholder. Multiple variable placeholders may exist in the specified value as well as nested variable placeholders, which are substituted from inner most to outer most. Configuration properties override system properties.

Parameters:
val - The string on which to perform property substitution.
currentKey - The key of the property being evaluated used to detect cycles.
cycleMap - Map of variable references used to detect nested cycles.
configProps - Set of configuration properties.
Returns:
The value of the specified string after system property substitution.
Throws:
java.lang.IllegalArgumentException - If there was a syntax error in the property placeholder syntax or a recursive variable reference.


Copyright © 2007-2011 Apache Software Foundation. All Rights Reserved.