public String getBusinessName() { return value.getBusinessName(); }
public String getName() { return value.getName(); }
/** * Use an aggregated fields instead of a foreign key * * @see #useForeignKey() */ public void useAggregatedFields() { setAggregatedFields(getAvailableFields()); }
private int writeFields(String prefix, List<? extends DataTableField> fields, int column) { int col = column; for (DataTableField field : fields) { if (StringUtils.isBlank(field.getName())) { throw new IllegalArgumentException("Field name must be not empty"); } if (field.isFillChildren()) { col = writeFields(prefix + field.getName() + ".", field.getAggregatedFields(), col); } else { writeCell(col, fieldNameRow, 1, 1, prefix + field.getName()); if (foreignKeyRow != NOT_INITIALIZED) { writeCell(col, foreignKeyRow, 1, 1, parseForeignKey(field.getForeignKey())); } writeCell(col, businessNameRow, 1, 1, field.getBusinessName()); col++; } } return col; }
private void writeFieldValues(List<? extends DataTableField> fields, Map<String, String> fieldValues, ICellStyle cellStyle) { for (int i = 0; i < fields.size(); i++) { DataTableField field = fields.get(i); if (field.isFillChildren()) { writeFieldValues(field.getAggregatedFields(), fieldValues, cellStyle); } else { String fieldName = field.getName(); writeCell(i, getCurrentRow(), 1, 1, fieldValues.get(fieldName), cellStyle); } } } }
public void useAggregatedFields() { value.useAggregatedFields(); for (DataTableField field : value.getAggregatedFields()) { children.put(field.getName(), new DataTableTreeNode(field, false)); } }
private boolean hasForeignKeys(List<? extends DataTableField> fields) { for (DataTableField field : fields) { boolean hasForeignKey; if (field.isFillChildren()) { hasForeignKey = hasForeignKeys(field.getAggregatedFields()); } else { hasForeignKey = StringUtils.isNotBlank(field.getForeignKey()); } if (hasForeignKey) { return true; } } return false; }
/** * Count recursively a fields count that will be present in a result xls * file * * @param rootNode root node of a data table type * @return total fields count including child ones */ private int getFieldsCount(DataTableField rootNode) { int count = 0; for (DataTableField childNode : rootNode.getAggregatedFields()) { if (childNode.isFillChildren()) { count += getFieldsCount(childNode); } else { count++; } } return count; }
/** * Returns a method of filling data for a field * * @return if true then data is filled using aggregated fields else data is * filled using foreign keys */ public boolean isFillChildren() { return !getAggregatedFields().isEmpty(); }
/** * Get node type * * @return node type */ public String getNodeType() { return value.isComplex() ? COMPLEX : SIMPLE; }
public String getTypeName() { return value.getTypeName(); }
public String getForeignKeyColumn() { return value.getForeignKeyColumn(); }
public String getForeignKeyTable() { return value.getForeignKeyTable(); }
public void useAggregatedFields() { value.useAggregatedFields(); for (DataTableField field : value.getAggregatedFields()) { children.put(field.getName(), new DataTableTreeNode(field, false)); } }
/** * Count recursively a fields count that will be present in a result xls * file * * @param rootNode root node of a data table type * @return total fields count including child ones */ private int getFieldsCount(DataTableField rootNode) { int count = 0; for (DataTableField childNode : rootNode.getAggregatedFields()) { if (childNode.isFillChildren()) { count += getFieldsCount(childNode); } else { count++; } } return count; }
protected String buildTable(XlsSheetSourceCodeModule sourceCodeModule) throws CreateTableException { XlsSheetGridModel gridModel = new XlsSheetGridModel(sourceCodeModule); DataTableBuilder builder = new DataTableBuilder(gridModel); Map<String, Object> properties = buildProperties(); int width = DataTableBuilder.MIN_WIDTH; if (!properties.isEmpty()) { width = TableBuilder.PROPERTIES_MIN_WIDTH; } width = Math.max(getFieldsCount(tree.getRoot().getValue()), width); int height = TableBuilder.HEADER_HEIGHT + properties.size() + 1; builder.beginTable(width, height); builder.writeHeader(tableType, tableName); builder.writeProperties(properties, null); builder.writeFieldNames(tree.getRoot().getValue().getAggregatedFields()); String uri = gridModel.getRangeUri(builder.getTableRegion()); builder.endTable(); return uri; }
/** * Get node type * * @return node type */ public String getNodeType() { return value.isComplex() ? COMPLEX : SIMPLE; }
public String getTypeName() { return value.getTypeName(); }
public String getForeignKeyColumn() { return value.getForeignKeyColumn(); }
public String getForeignKeyTable() { return value.getForeignKeyTable(); }