org.greports.annotations.SpecialColumn Maven / Gradle / Ivy
package org.greports.annotations;
import org.apache.commons.lang3.StringUtils;
import org.greports.engine.ValueType;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* A column which has no corresponding attribute in source class.
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface SpecialColumn {
/**
* Position of column in the report.
* The columns will be ordered from lowest to highest position index.
* In case of need to add a new column among the existing ones,
* the floating part can be used to indicate the desired position.
*
* @return float
*/
float position();
/**
* Column title. This text string will be used to search for
* the corresponding translation in the translation file located in
* the directory provided by the {@link Configuration#translationsDir()}
*
* @return {@link String}
*/
String title() default StringUtils.EMPTY;
/**
* The value of the column.
*
* @return {@link String}
*/
String value() default StringUtils.EMPTY;
/**
* Visualisation format to be displayed.
* You can find information on how to create your own org.greports.styles
* by going through this link
*
* @return {@link String}
*/
String format() default StringUtils.EMPTY;
/**
* Column ID which will be used by other column if that one
* is of formula type. Also can be used by {@link SpecialColumn} and {@link SpecialRowCell}
* @see ValueType#FORMULA
*
* @return {@link String}
*/
String id() default StringUtils.EMPTY;
/**
* The {@link ValueType} of the column.
*
* @return {@link ValueType}
*/
ValueType valueType() default ValueType.PLAIN_VALUE;
/**
* The value indicates whether the column has to fit the width of the longest cell.
* This functionality is very expensive due to the large number of calculations to be performed.
* Use only when necessary.
*
* @return boolean
*/
boolean autoSizeColumn() default false;
/**
* This value indicates the number of merged cells.
* A count of merged cells needs to be greater or equals than 1.
* If the value is greater than 1 means that the column will merge
* cells of his right. Example:
* position = 1 (first column), columnWidth = 2. In this case
* the row will have the cells A1 and B1 merged in only one cell
* which will be placed into an A1 cell.
* @return int
*/
int columnWidth() default 1;
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy