private String getXtableString(List<XTablereference> tableReferences) { StringBuilder builder = new StringBuilder(); for (XTablereference ref : tableReferences) { builder.append(ref.getDestTable()).append(".").append(ref.getDestColumn()).append(","); } return builder.toString(); }
@CliCommand(value = "describe cube", help = "describe cube") public String describeCube( @CliOption( key = {"", "cube"}, mandatory = true, help = "<cube-name>") String cubeName) { XCube cube = client.getCube(cubeName); StringBuilder builder = new StringBuilder(); builder.append("Cube Name : ").append(cube.getName()).append("\n"); builder .append("Description : ") .append(cube.getDescription() != null ? cube.getDescription() : ""); if (cube.getMeasures() != null) { builder.append("Measures :").append("\n"); builder .append("\t") .append("name") .append("\t") .append("type") .append("\t") .append("cost") .append("\t") .append("format string") .append("\t") .append("unit") .append("\t") .append("starttime(in miliseconds)") .append("\t") .append("endtime(in miliseconds)") .append("\n"); for (XMeasure measure : cube.getMeasures().getMeasures()) { builder .append("\t") .append(measure.getName() != null ? measure.getName() : "") .append("\t") .append(measure.getType() != null ? measure.getType() : "") .append("\t") .append(measure.getCost()) .append("\t") .append(measure.getFormatString() != null ? measure.getFormatString() : "") .append("\t") .append(measure.getUnit() != null ? measure.getUnit() : "") .append("\t") .append( measure.getStartTime() != null ? measure.getStartTime().toGregorianCalendar().getTimeInMillis() : "") .append("\t") .append( measure.getEndTime() != null ? measure.getEndTime().toGregorianCalendar().getTimeInMillis() : "") .append("\t") .append("\n"); } } if (cube.getDimensions() != null) { builder.append("Dimensions :").append("\n"); builder .append("\t") .append("name") .append("\t") .append("type") .append("\t") .append("cost") .append("\t") .append("Expression") .append("\t") .append("table references") .append("\t") .append("starttime(in miliseconds)") .append("\t") .append("endtime(in miliseconds)") .append("\n"); for (XDimension dim : cube.getDimensions().getDimensions()) { builder .append("\t") .append(dim.getName() != null ? dim.getName() : "") .append("\t") .append(dim.getType() != null ? dim.getType() : "") .append("\t") .append(dim.getCost() != null ? dim.getCost() : "") .append("\t") .append(dim.getExpr() != null ? dim.getExpr() : "") .append("\t") .append( dim.getReferences() != null ? getXtableString(dim.getReferences().getTableReferences()) : "") .append( dim.getStartTime() != null ? dim.getStartTime().toGregorianCalendar().getTimeInMillis() : "") .append("\t") .append( dim.getEndTime() != null ? dim.getEndTime().toGregorianCalendar().getTimeInMillis() : "") .append("\t") .append("\n"); } } builder.append(FormatUtils.formatProperties(cube.getProperties().getProperties())); return builder.toString(); }