
clime.messadmin.providers.spi.BaseTabularSessionDataProvider Maven / Gradle / Ivy
The newest version!
/**
*
*/
package clime.messadmin.providers.spi;
import java.text.NumberFormat;
import javax.servlet.http.HttpSession;
import clime.messadmin.i18n.I18NSupport;
import clime.messadmin.model.Server;
/**
* Base implementation class for SessionDataProvider displaying tabular data.
* @author Cédrik LIME
*/
public abstract class BaseTabularSessionDataProvider extends BaseTabularDataProvider implements SessionDataProvider {
/**
*
*/
public BaseTabularSessionDataProvider() {
super();
}
/**
* @param session
* @return application-specific data labels for given HttpSession, or null if it can be determined
*/
public abstract String[] getSessionTabularDataLabels(final HttpSession session);
/**
* @param session
* @return application-specific data values for given HttpSession, or null if it can be determined
*/
public abstract Object[][] getSessionTabularData(final HttpSession session);
protected String getTableCaption(String[] labels, Object[][] values) {
NumberFormat numberFormatter = NumberFormat.getNumberInstance(I18NSupport.getAdminLocale());
return ""+numberFormatter.format(values.length)+" session-specific attributes";
}
/**
* {@inheritDoc}
*/
public String getXHTMLSessionData(HttpSession session) {
try {
String[] labels = getSessionTabularDataLabels(session);
Object[][] values = getSessionTabularData(session);
return buildXHTML(labels, values, "extraSessionAttributesTable-"+getClass().getName(), getTableCaption(labels, values));
} catch (RuntimeException rte) {
return "Error in " + this.getClass().getName() + ": " + rte;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy