⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mondriansqlaccess.java

📁 OLAP 的客户端代码
💻 JAVA
字号:
/*
 * ====================================================================
 * 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) 2003-2004 TONBELLER AG.
 * All Rights Reserved.
 * You must accept the terms of that agreement to use this software.
 * ====================================================================
 *
 * 
 */
package com.tonbeller.jpivot.mondrian;

import javax.sql.DataSource;

import mondrian.rolap.RolapMember;

import org.apache.log4j.Logger;

import com.tonbeller.jpivot.core.ExtensionSupport;
import com.tonbeller.jpivot.olap.model.Member;
import com.tonbeller.jpivot.olap.navi.ExpressionParser;
import com.tonbeller.jpivot.param.SqlAccess;
import com.tonbeller.wcf.param.SessionParam;

/**
 * @author av
 */
public class MondrianSqlAccess extends ExtensionSupport implements SqlAccess {
  private static Logger logger = Logger.getLogger(MondrianSqlAccess.class);
  
  public DataSource getDataSource() {
    MondrianModel mm = (MondrianModel) getModel();
    return mm.getSqlDataSource();
  }

  public SessionParam createParameter(Member member, String paramName) {
    MondrianMember mm = (MondrianMember) member;
    RolapMember rm = (RolapMember) mm.getMonMember();
    // All or calculated?
    if (rm.getSqlKey() == null)
      return null;
    SessionParam p = new SessionParam();
    p.setSqlValue(rm.getSqlKey());
    p.setDisplayName(member.getLevel().getLabel());
    p.setDisplayValue(member.getLabel());

    ExpressionParser parser = (ExpressionParser) getModel().getExtension(ExpressionParser.ID);
    if (parser != null)
      p.setMdxValue(parser.unparse(member));
    p.setName(paramName);
    return p;
  }

  public SessionParam createParameter(Member member, String paramName, String propertyName) {
    MondrianMember mm = (MondrianMember) member;
    RolapMember rm = (RolapMember) mm.getMonMember();
    Object propertyValue = rm.getPropertyValue(propertyName);
    if (propertyValue == null) {
      logger.error("property value for property" + propertyName + " not found in " + member.getLabel());
      return null;
    }
    SessionParam p = new SessionParam();
    p.setSqlValue(propertyValue);
    p.setDisplayName(member.getLevel().getLabel());
    p.setDisplayValue(member.getLabel());

    ExpressionParser parser = (ExpressionParser) getModel().getExtension(ExpressionParser.ID);
    if (parser != null)
      p.setMdxValue(parser.unparse(member));
    p.setName(paramName);
    return p;
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -