clime.messadmin.providers.userdata.SystemEnvironmentProvider Maven / Gradle / Ivy
/**
*
*/
package clime.messadmin.providers.userdata;
import java.lang.reflect.Method;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import clime.messadmin.model.Server;
import clime.messadmin.providers.spi.BaseTabularServerDataProvider;
import clime.messadmin.providers.spi.ServerDataProvider;
/**
* @author Cédrik LIME
*/
public class SystemEnvironmentProvider extends BaseTabularServerDataProvider
implements ServerDataProvider {
private static transient Method getenv = null;
static {
// @since 1.5
try {
getenv = System.class.getMethod("getenv", null);
} catch (SecurityException e) {
} catch (NoSuchMethodException e) {
}
}
/**
*
*/
public SystemEnvironmentProvider() {
super();
}
/**
* {@inheritDoc}
*/
public String[] getServerTabularDataLabels() {
return new String[] {"name", "value"};
}
/**
* {@inheritDoc}
*/
protected String getTableCaption(String[] labels, Object[][] values) {
NumberFormat numberFormatter = NumberFormat.getNumberInstance();
return ""+numberFormatter.format(values.length)+" environment variables";
}
/**
* {@inheritDoc}
*/
public Object[][] getServerTabularData() {
Map sysProps = Server.getInstance().getServerInfo().getSystemEnv();
List resultList = new ArrayList(sysProps.size());
Iterator iter = sysProps.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry prop = (Map.Entry) iter.next();
resultList.add(new Object[] {
prop.getKey(),
prop.getValue()
});
}
Object[][] result = new Object[resultList.size()][];
return (Object[][]) resultList.toArray(result);
}
/**
* {@inheritDoc}
*/
public String getServerDataTitle() {
return getenv != null ? "System Environment variables" : null;
}
/**
* {@inheritDoc}
*/
public int getPriority() {
return 20;
}
}