funkresolver.java

来自「数据仓库展示程序」· Java 代码 · 共 56 行

JAVA
56
字号
/*
// $Id: //open/mondrian/src/main/mondrian/olap/fun/FunkResolver.java#6 $
// 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.
// (C) Copyright 2002-2005 Kana Software, Inc. and others.
// All Rights Reserved.
// You must accept the terms of that agreement to use this software.
//
// jhyde, 3 March, 2002
*/
package mondrian.olap.fun;

import mondrian.olap.Evaluator;
import mondrian.olap.Exp;
import mondrian.olap.FunDef;

/**
 * A <code>FunkResolver</code> resolves a function with a finite set of
 * parameter combinations to a single function.
 *
 * @author jhyde
 * @since 3 March, 2002
 * @version $Id: //open/mondrian/src/main/mondrian/olap/fun/FunkResolver.java#6 $
 **/
class FunkResolver extends MultiResolver {
    private final Funk funk;

    FunkResolver(
            String name, String signature, String description,
            String[] signatures, Funk funk) {
        super(name, signature, description, signatures);
        this.funk = funk;
    }

//  public void addTests(TestSuite suite, Pattern pattern) {
//      super.addTests(suite, pattern);
//      funk.addTests(suite, pattern);
//  }

    Funk getFunk() {
        return funk;
    }

    protected FunDef createFunDef(Exp[] args, FunDef dummyFunDef) {
        return new FunDefBase(this, dummyFunDef.getReturnCategory(),
                dummyFunDef.getParameterTypes()) {
            public Object evaluate(Evaluator evaluator, Exp[] args) {
                return funk.evaluate(evaluator, args);
            }
        };
    }
}

// End FunkResolver.java

⌨️ 快捷键说明

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