org.jboss.osgi.spi.util
Class StringPropertyReplacer

java.lang.Object
  extended by org.jboss.osgi.spi.util.StringPropertyReplacer

public final class StringPropertyReplacer
extends Object

A utility class for replacing properties in strings.

Since:
16-Sep-2010
Author:
Jason Dillon, Scott Stark, Claudio Vesco, Adrian Brock, Dimitris Andreadis, Thomas.Diesler@jboss.com

Nested Class Summary
static interface StringPropertyReplacer.PropertyProvider
           
 
Field Summary
static String NEWLINE
          New line string constant
 
Constructor Summary
StringPropertyReplacer()
           
 
Method Summary
static String replaceProperties(String string)
          Go through the input string and replace any occurance of ${p} with the System.getProperty(p) value.
static String replaceProperties(String string, BundleContext context)
          Go through the input string and replace any occurance of ${p} with the BundleContext.getProperty(p) value.
static String replaceProperties(String string, StringPropertyReplacer.PropertyProvider provider)
          Go through the input string and replace any occurance of ${p} with the PropertyProvider.getProperty(p) value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NEWLINE

public static final String NEWLINE
New line string constant

Constructor Detail

StringPropertyReplacer

public StringPropertyReplacer()
Method Detail

replaceProperties

public static String replaceProperties(String string)
Go through the input string and replace any occurance of ${p} with the System.getProperty(p) value. If there is no such property p defined, then the ${p} reference will remain unchanged.

Parameters:
string - - the string with possible ${} references
Returns:
the input string with all property references replaced if any. If there are no valid references the input string will be returned.

replaceProperties

public static String replaceProperties(String string,
                                       BundleContext context)
Go through the input string and replace any occurance of ${p} with the BundleContext.getProperty(p) value. If there is no such property p defined, then the ${p} reference will remain unchanged.

Parameters:
string - - the string with possible ${} references
Returns:
the input string with all property references replaced if any. If there are no valid references the input string will be returned.

replaceProperties

public static String replaceProperties(String string,
                                       StringPropertyReplacer.PropertyProvider provider)
Go through the input string and replace any occurance of ${p} with the PropertyProvider.getProperty(p) value. If there is no such property p defined, then the ${p} reference will remain unchanged. If the property reference is of the form ${p:v} and there is no such property p, then the default value v will be returned. If the property reference is of the form ${p1,p2} or ${p1,p2:v} then the primary and the secondary properties will be tried in turn, before returning either the unchanged input, or the default value. The property ${/} is replaced with PropertyProvider.getProperty("file.separator") value and the property ${:} is replaced with PropertyProvider.getProperty("path.separator").

Parameters:
string - - the string with possible ${} references
provider - - the source for ${x} property ref values
Returns:
the input string with all property references replaced if any. If there are no valid references the input string will be returned.


Copyright © 2010. All Rights Reserved.