本文整理汇总了Java中net.java.amateras.xlsbeans.Utils.getColumnProperties方法的典型用法代码示例。如果您正苦于以下问题:Java Utils.getColumnProperties方法的具体用法?Java Utils.getColumnProperties怎么用?Java Utils.getColumnProperties使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.java.amateras.xlsbeans.Utils
的用法示例。
在下文中一共展示了Utils.getColumnProperties方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: checkColumns
import net.java.amateras.xlsbeans.Utils; //导入方法依赖的package包/类
public static void checkColumns(Class<?> recordClass,
List<HeaderInfo> headers, AnnotationReader reader) throws Exception {
for(Object property: Utils.getColumnProperties(recordClass.newInstance(), null, reader)){
Column column = null;
if(property instanceof Method){
column = reader.getAnnotation(recordClass, (Method) property, Column.class);
} else if(property instanceof Field){
column = reader.getAnnotation(recordClass, (Field) property, Column.class);
}
if(!column.optional()){
String columnName = column.columnName();
boolean find = false;
for(HeaderInfo info: headers){
if(info.getHeaderLabel().equals(columnName)){
find = true;
break;
}
}
if(!find){
throw new XLSBeansException("Column '" + columnName + "' doesn't exist.");
}
}
}
}
示例2: checkColumns
import net.java.amateras.xlsbeans.Utils; //导入方法依赖的package包/类
public static void checkColumns(Class<?> recordClass, List<HeaderInfo> headers,
AnnotationReader reader, XLSBeansConfig config) throws Exception {
for(Object property: Utils.getColumnProperties(recordClass.newInstance(), null, reader, config)){
Column column = null;
if(property instanceof Method){
column = reader.getAnnotation(recordClass, (Method) property, Column.class);
} else if(property instanceof Field){
column = reader.getAnnotation(recordClass, (Field) property, Column.class);
}
if(!column.optional()){
String columnName = column.columnName();
boolean find = false;
for(HeaderInfo info: headers){
if(Utils.matches(info.getHeaderLabel(), columnName, config)){
find = true;
break;
}
}
if(!find){
throw new XLSBeansException("Column '" + columnName + "' doesn't exist.");
}
}
}
}
示例3: checkColumns
import net.java.amateras.xlsbeans.Utils; //导入方法依赖的package包/类
protected void checkColumns(Class<?> recordClass, List<JxHeaderInfo> headers, AnnotationReader reader) throws Exception {
for (Object property : Utils.getColumnProperties(recordClass.newInstance(), null, reader)) {
Column column = null;
if (property instanceof Method) {
column = reader.getAnnotation(recordClass, (Method) property, Column.class);
} else if (property instanceof Field) {
column = reader.getAnnotation(recordClass, (Field) property, Column.class);
}
if (column != null && !column.optional()) {
String columnName = column.columnName();
boolean find = false;
for (JxHeaderInfo info : headers) {
if (info.getHeaderLabel().equals(columnName)) {
find = true;
break;
}
}
if (!find) { throw new XLSBeansException("Column '" + columnName + "' doesn't exist."); }
}
}
}
示例4: processColumn
import net.java.amateras.xlsbeans.Utils; //导入方法依赖的package包/类
/**
* <p>
* {@link Column}アノテーションが付与されているプロパティを検索し、Excelのデータとマッピングします。
* また、マッピングを実施したかどうかを判断し、呼び出し元に返却します。
* この2つの対応はパフォーマンス対策です。
* </p>
* <p>
* XLSBeansでは最大カラムの数×HeaderInfoの数を検索し、{@link Column}アノテーションのマッピングを行っていました。
* これではデータの件数が増加すればするほど処理時間がかかることから{@link Column}アノテーションが付与されているプロパティを検査し、
* そのプロパティとHeaderInfoのラベルが一致するかどうかを調べることで高速に処理するようにしました。
* {@link JxHeaderInfo}に行番号を保持するプロパティを定義したのはこのためです。
* </p>
* <p>
* {@link WSheet#getColumns()}は最大のカラム数を返す実装になっています。
* 同一の構造の表が2つシート内で繰り返し出現したとき、どちらかが最大のカラム数を繰り返し処理されます。
* そのため、空文字列がマッピングされる可能性があります。
* これに対応するために内容を確認し、空文字列の場合:false、空文字列以外の場合:trueを返しています。
* </p>
*/
protected boolean processColumn(WSheet wSheet, List<JxHeaderInfo> headers, int hRow, int hColumn, Object record,
AnnotationReader reader) throws Exception {
List<String> keys = new ArrayList<String>();
List<Object> properties = Utils.getColumnProperties(record, null, reader);
for (Object property : properties) {
Column column = null;
if (property instanceof Method) {
column = reader.getAnnotation(record.getClass(), (Method) property, Column.class);
} else if (property instanceof Field) {
column = reader.getAnnotation(record.getClass(), (Field) property, Column.class);
}
for (JxHeaderInfo info : headers) {
if (info.getHeaderLabel().equals(column.columnName())) {
hRow = info.getRowIndex();
break;
}
}
WCell cell = wSheet.getCell(hColumn, hRow);
WCell valueCell = cell;
if (!valueCell.getContents().equals("")) {
String key = "";
if (property instanceof Method) {
key = ((Method) property).getName();
Utils.setPosition(hColumn, hRow, record, Utils.toPropertyName(key));
Utils.invokeSetter((Method) property, record, valueCell.getContents());
} else if (property instanceof Field) {
key = ((Field) property).getName();
Utils.setPosition(hColumn, hRow, record, key);
Utils.setField((Field) property, record, valueCell.getContents());
}
keys.add(key);
}
}
return !keys.isEmpty();
}