Package com.skyline.energy.datasource

Source Code of com.skyline.energy.datasource.ShardDataSource

package com.skyline.energy.datasource;

import java.util.List;

import javax.sql.DataSource;

import com.skyline.energy.dataaccess.jdbc.ShardParam;
import com.skyline.energy.dataaccess.jdbc.SqlExecuteContext;
import com.skyline.energy.dataaccess.jdbc.SqlExecuteContextHolder;

public class ShardDataSource extends DistributeDataSource {
  List<List<NodeDataSource>> nodes;

  @Override
  public DataSource getDataSource() {
    DataSource txDataSource = getTxDataSource();
    if (txDataSource == null) {
      // TODO
      return null;
    }

    if (canUseOld(txDataSource)) {
      return txDataSource;
    } else {
      // TODO
      return null;
    }
  }

  private boolean canUseOld(DataSource txDataSource) {
    SqlExecuteContext sqlContext = SqlExecuteContextHolder.getContext();
    NodeDataSource nodeDataSource = (NodeDataSource) txDataSource;
    if(nodeDataSource.getShard() == caculateShard(sqlContext.getShardParam())) {
      return true;
    }
    return false;
  }

  private int caculateShard(ShardParam shardParam) {
    return 0;
  }
}
TOP

Related Classes of com.skyline.energy.datasource.ShardDataSource

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.