package com.ycsoft.report.query.cube.graph;
import com.ycsoft.commons.exception.ReportException;
import com.ycsoft.report.query.cube.Dimension;
import com.ycsoft.report.query.cube.DimensionType;
import com.ycsoft.report.query.cube.impl.DimensionManage;
public class CubeGraphImpl implements CubeGraph {
private String measure;
private Dimension crossDimension;
private Dimension vertDimension;
private String database;
private CubeGraphType graphType;
private GraphData graphData;
public CubeGraphImpl(CubeGraphType type,String title,String database,String mea,String...dims) throws ReportException{
this.graphType=type;
this.database=database;
this.measure=mea;
if(dims==null||dims.length==0)
throw new ReportException("dims is null");
if(type.getDimtype().equals(DimensionType.crosswise)){
this.crossDimension=DimensionManage.getDimension(dims[0]);
if(this.crossDimension==null)
throw new ReportException(dims[0]+":dims is undefined");
}else if(type.getDimtype().equals(DimensionType.vertical)){
this.vertDimension=DimensionManage.getDimension(dims[0]);
if(this.vertDimension==null)
throw new ReportException(dims[0]+":dims is undefined");
}else{
if(dims.length!=2)
throw new ReportException(type.getDesc()+":dims.size !=2");
this.crossDimension=DimensionManage.getDimension(dims[0]);
this.vertDimension=DimensionManage.getDimension(dims[1]);
}
graphData=new GraphData();
graphData.setTitle(title);
graphData.setType(type.getGraphtype());
}
public String getMeasure() {
return measure;
}
public void setMeasure(String measure) {
this.measure = measure;
}
public Dimension getCrossDimension() {
return crossDimension;
}
public void setCrossDimension(Dimension crossDimension) {
this.crossDimension = crossDimension;
}
public Dimension getVertDimension() {
return vertDimension;
}
public void setVertDimension(Dimension vertDimension) {
this.vertDimension = vertDimension;
}
public String getDatabase() {
return database;
}
public void setDatabase(String database) {
this.database = database;
}
public CubeGraphType getGraphType() {
return graphType;
}
public void setGraphType(CubeGraphType graphType) {
this.graphType = graphType;
}
public GraphData getGraphData() {
return graphData;
}
public void setGraphData(GraphData graphData) {
this.graphData = graphData;
}
}