rolapstoredmeasure.java
来自「数据仓库展示程序」· Java 代码 · 共 97 行
JAVA
97 行
/*
// $Id: //open/mondrian/src/main/mondrian/rolap/RolapStoredMeasure.java#13 $
// This software is subject to the terms of the Common Public License
// Agreement, available at the following URL:
// http://www.opensource.org/licenses/cpl.html.
// Copyright (C) 2001-2005 Kana Software, Inc. and others.
// All Rights Reserved.
// You must accept the terms of that agreement to use this software.
//
// jhyde, 10 August, 2001
*/
package mondrian.rolap;
import mondrian.olap.CellFormatter;
import mondrian.olap.MondrianDef;
import mondrian.olap.Property;
import mondrian.olap.Util;
import java.util.List;
import java.util.Arrays;
/**
* todo:
*
* @author jhyde
* @since 10 August, 2001
* @version $Id: //open/mondrian/src/main/mondrian/rolap/RolapStoredMeasure.java#13 $
*/
class RolapStoredMeasure extends RolapMeasure {
private static final List datatypeList = Arrays.asList(
new String[] {"Integer", "Numeric", "String"});
/** For SQL generator. Column which holds the value of the measure. */
private final MondrianDef.Expression expression;
/** For SQL generator. Has values "SUM", "COUNT", etc. */
private final RolapAggregator aggregator;
private final RolapCube cube;
private CellFormatter formatter;
RolapStoredMeasure(
RolapCube cube,
RolapMember parentMember,
RolapLevel level,
String name,
String formatString,
MondrianDef.Expression expression,
String aggregatorName,
String datatype) {
super(parentMember, level, name, formatString);
this.cube = cube;
this.expression = expression;
this.aggregator = (RolapAggregator)
RolapAggregator.enumeration.getValue(aggregatorName, true);
if (this.aggregator == null) {
throw Util.newError("Unknown aggregator '" + aggregatorName + "'");
}
setProperty(Property.AGGREGATION_TYPE.name, aggregator);
if (datatype == null) {
if (aggregator == RolapAggregator.Count ||
aggregator == RolapAggregator.DistinctCount) {
datatype = "Integer";
} else {
datatype = "Numeric";
}
}
// todo: End-user error.
Util.assertTrue(datatypeList.contains(datatype),
"invalid datatype " + datatype);
setProperty(Property.DATATYPE.name, datatype);
}
MondrianDef.Expression getMondrianDefExpression() {
return expression;
}
RolapAggregator getAggregator() {
return aggregator;
}
RolapCube getCube() {
return cube;
}
// implement RolapMeasure
CellReader getCellReader() {
return cube.getCellReader();
}
public CellFormatter getFormatter(){
return formatter;
}
public void setFormatter(CellFormatter formatter){
this.formatter = formatter;
}
}
// End RolapStoredMeasure.java
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?