package au.com.vaadinutils.jasper.parameter; import java.lang.reflect.ParameterizedType; import com.vaadin.ui.Component; import au.com.vaadinutils.jasper.scheduler.entities.DateParameterType; public class ReportParameterConstant<T> extends ReportParameter<T> { private T value; private String displayValue; private boolean displayInReport; private String displayLabel; /** * calling this constructor will mean that this report parameter will not be * visiable in the "Parameters" section of the report * * @param parameterName * @param value */ public ReportParameterConstant(String parameterName, T value) { super(parameterName, parameterName); this.value = value; this.displayInReport = false; } /** * use this constructor if you want this parameter to show in the * "Parameters" section of the report. * * @param parameterName * @param value * @param displayLabel * @param displayValue */ public ReportParameterConstant(String parameterName, T value, String displayLabel, String displayValue) { super(parameterName, parameterName); this.value = value; this.displayValue = displayValue; this.displayInReport = true; this.displayLabel = displayLabel; } @Override public String getLabel(String parameterName) { return displayLabel; } @Override public boolean displayInreport() { return displayInReport; } @Override public T getValue(String parameterName) { return value; } @Override public Component getComponent() { return null; } @Override public boolean shouldExpand() { return false; } @Override public void setDefaultValue(T defaultValue) { // NOOP } @SuppressWarnings("unchecked") @Override public String getExpectedParameterClassName() { return ((Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]) .getCanonicalName(); } @Override public boolean showFilter() { return false; } @Override public String getDisplayValue(String parameterName) { return displayValue; } @Override public boolean validate() { return true; } @SuppressWarnings("unchecked") @Override public void setValueAsString(String value, String parameterName) { this.value = (T) value; } @Override public boolean isDateField() { return false; } @Override public DateParameterType getDateParameterType() { throw new RuntimeException("Not implemented"); } }