package com.revolsys.spring.factory;
import org.springframework.beans.factory.config.AbstractFactoryBean;
public class SystemPropertyFactoryBean extends AbstractFactoryBean<String> {
private String defaultValue;
private String name;
@Override
protected String createInstance() throws Exception {
final String propertyValue = System.getProperty(this.name);
if (propertyValue == null) {
return this.defaultValue;
} else {
return propertyValue;
}
}
@Override
protected void destroyInstance(final String instance) throws Exception {
this.name = null;
this.defaultValue = null;
}
public String getDefaultValue() {
return this.defaultValue;
}
public String getName() {
return this.name;
}
@Override
public Class<?> getObjectType() {
return String.class;
}
@Override
public boolean isSingleton() {
return true;
}
public void setDefaultValue(final String defaultValue) {
this.defaultValue = defaultValue;
}
public void setName(final String name) {
this.name = name;
}
}