package org.mobicents.plugins.du;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.StringUtils;
import org.codehaus.plexus.util.introspection.ReflectionValueExtractor;
import java.util.Properties;
/**
* @author Andreas Hoheneder (ahoh_at_inode.at)
* @version $Id$
*/
public class ReflectionProperties extends Properties
{
private static final long serialVersionUID = 1L;
private MavenProject project;
boolean escapedBackslashesInFilePath;
public ReflectionProperties( MavenProject aProject, boolean escapedBackslashesInFilePath )
{
super();
project = aProject;
this.escapedBackslashesInFilePath = escapedBackslashesInFilePath;
}
public Object get( Object key )
{
Object value = null;
try
{
value = ReflectionValueExtractor.evaluate( "" + key , project );
if ( escapedBackslashesInFilePath && value != null && value instanceof String )
{
String val = (String) value;
// Check if it's a windows path
if ( val.indexOf( ":\\" ) == 1 )
{
value = StringUtils.replace( (String)value, "\\", "\\\\" );
value = StringUtils.replace( (String)value, ":", "\\:" );
}
}
}
catch ( Exception e ) {
//TODO: remove the try-catch block when ReflectionValueExtractor.evaluate() throws no more exceptions
}
return value;
}
}