【仅供内部供应商使用,不提供对外解答和培训】

接口作用

支持主线的excel、sql、db等类型外的数据集接入bi公共数据

接口内容

AbstractCustomDatasetProvider
@API(level = CustomDatasetProvider.CURRENT_LEVEL)
public abstract class AbstractCustomDatasetProvider implements CustomDatasetProvider {

    @Override
    public int currentAPILevel() {
        return CustomDatasetProvider.CURRENT_LEVEL;
    }

    @Override
    public String mark4Provider() {
        return getClass().getName();
    }
}
 

接口接入

    <extra-core>
        <CustomDatasetProvider class="继承AbstractCustomDatasetProvider的子类路径"/>
    </extra-core>

提供给插件的抽象类

统筹接口功能抽象类

AbstractCustomDatasetGenerator
public abstract class AbstractCustomDatasetGenerator implements CustomDatasetGenerator, Serializable {

    @Override
    public boolean match(String name) {
        return CompareUtils.isEqual(name, getName());
    }
}


取数功能抽象类

  • 不支持sql取数

    AbstractDefaultDatasourceGenerator
    public abstract class AbstractDefaultDatasourceGenerator implements CustomDatasetDatasourceGenerator {
    
        @Override
        public final boolean isSupportedSql() {
            return false;
        }
    
        @Override
        public final RowIterator getRowIterator(List<String> jsonContexts, List<CustomDatasetContext> datasetContexts, String sql, List<ColumnInformation[]> columnInfos) {
            throw new UnsupportedOperationException("getRowIterator with sql not supported.");
        }
    
        @Override
        public final Dialect getDialect(String jsonContext, CustomDatasetContext datasetContext) {
            throw new UnsupportedOperationException("getDialect with sql not supported.");
        }
    
        // 子类继承时只需要实现不支持 SQL 相关方法
    }
    
  • 支持sql取数

    AbstractSqlSupportedDatasourceGenerator
    public abstract class AbstractSqlSupportedDatasourceGenerator implements CustomDatasetDatasourceGenerator {
    
        @Override
        public final boolean isSupportedSql() {
            return true;
        }
    
        @Override
        public final RowIterator getRowIterator(String jsonContext, CustomDatasetContext datasetContext, ColumnInformation[] columnInfos) {
            throw new UnsupportedOperationException("getRowIterator without sql not supported.");
        }
    
        // 子类继承时只需要实现 SQL 相关方法
    }

前端页面

CustomDatasetPageGenerator
@Open
public interface CustomDatasetPageGenerator {

    /**
     * 获取图标
     */
    String getIcon(CustomDatasetContext datasetContext);

    /**
     * 获取html
     */
    String getEditPageHTML(CustomDatasetContext datasetContext);

    /**
     * 获取Component
     */
    AssembleComponent getComponent(CustomDatasetContext datasetContext);

}

  • No labels