Package org.makersoft.shards.cfg.impl

Source Code of org.makersoft.shards.cfg.impl.ShardConfigurationImpl

/*
* @(#)ShardConfiguration.java 2012-8-1 下午10:00:00
*
* Copyright (c) 2011-2012 Makersoft.org all rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
*
*/
package org.makersoft.shards.cfg.impl;

import java.util.List;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.type.TypeHandler;
import org.makersoft.shards.ShardId;
import org.makersoft.shards.cfg.ShardConfiguration;
import org.makersoft.shards.id.IdGenerator;
import org.makersoft.shards.strategy.ShardStrategyFactory;
import org.makersoft.shards.utils.Lists;
import org.springframework.core.io.Resource;

/**
* @version 2012-8-1 下午10:00:00
* @author Feng Kuok
*/
public class ShardConfigurationImpl implements ShardConfiguration{
 
  private Integer shardId;
 
  private List<ShardId> shardIds;
 
  private DataSource dataSource;
 
  private SqlSessionFactory sqlSessionFactory;
 
  //
  private Resource configLocation;

  private Resource[] mapperLocations;

  private Properties configurationProperties;

  private boolean failFast;
 
  private Interceptor[] plugins;

  private TypeHandler<?>[] typeHandlers;

  private String typeHandlersPackage;

  private Class<?>[] typeAliases;

  private String typeAliasesPackage;
 
  //---
  private ShardStrategyFactory shardStrategyFactory;
 
  private IdGenerator idGenerator;
 
  //constructor
  public ShardConfigurationImpl(){
  }
 
  /**
   * 物理分区和逻辑分区一对一
   * @param shardId  分区Id
   * @param dataSource  数据源
   * @param sqlSessionFactory   mybaits中的{@link SqlSessionFactory}
   */
  public ShardConfigurationImpl(Integer shardId, DataSource dataSource, SqlSessionFactory sqlSessionFactory){
    this(shardId, Lists.newArrayList(new ShardId(shardId)), dataSource, sqlSessionFactory);
  }
 
  public ShardConfigurationImpl(Integer shardId, List<ShardId> shardIds, DataSource dataSource, SqlSessionFactory sqlSessionFactory){
    this.shardId = shardId;
    this.dataSource = dataSource;
    this.sqlSessionFactory = sqlSessionFactory;
    this.shardIds = shardIds;
  }

  @Override
  public Integer getShardId() {
    return shardId;
  }

  @Override
  public List<ShardId> getShardIds() {
    return shardIds;
  }

  @Override
  public DataSource getShardDataSource() {
    return dataSource;
  }

  @Override
  public SqlSessionFactory getSqlSessionFactory() {
    return sqlSessionFactory;
  }

  //--------------------------------
  public Resource getConfigLocation() {
    return configLocation;
  }

  public void setConfigLocation(Resource configLocation) {
    this.configLocation = configLocation;
  }

  public Resource[] getMapperLocations() {
    return mapperLocations;
  }

  public void setMapperLocations(Resource[] mapperLocations) {
    this.mapperLocations = mapperLocations;
  }

  public Properties getConfigurationProperties() {
    return configurationProperties;
  }

  public void setConfigurationProperties(Properties configurationProperties) {
    this.configurationProperties = configurationProperties;
  }

  public boolean isFailFast() {
    return failFast;
  }

  public void setFailFast(boolean failFast) {
    this.failFast = failFast;
  }

  public Interceptor[] getPlugins() {
    return plugins;
  }

  public void setPlugins(Interceptor[] plugins) {
    this.plugins = plugins;
  }

  public TypeHandler<?>[] getTypeHandlers() {
    return typeHandlers;
  }

  public void setTypeHandlers(TypeHandler<?>[] typeHandlers) {
    this.typeHandlers = typeHandlers;
  }

  public String getTypeHandlersPackage() {
    return typeHandlersPackage;
  }

  public void setTypeHandlersPackage(String typeHandlersPackage) {
    this.typeHandlersPackage = typeHandlersPackage;
  }

  public Class<?>[] getTypeAliases() {
    return typeAliases;
  }

  public void setTypeAliases(Class<?>[] typeAliases) {
    this.typeAliases = typeAliases;
  }

  public String getTypeAliasesPackage() {
    return typeAliasesPackage;
  }

  public void setTypeAliasesPackage(String typeAliasesPackage) {
    this.typeAliasesPackage = typeAliasesPackage;
  }

  public ShardStrategyFactory getShardStrategyFactory() {
    return shardStrategyFactory;
  }

  public void setShardStrategyFactory(ShardStrategyFactory shardStrategyFactory) {
    this.shardStrategyFactory = shardStrategyFactory;
  }

  public IdGenerator getIdGenerator() {
    return idGenerator;
  }

  public void setIdGenerator(IdGenerator idGenerator) {
    this.idGenerator = idGenerator;
  }
 
  //用于单独配置每个Shard Configuration
  public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
    this.sqlSessionFactory = sqlSessionFactory;
  }
 
  public void setShardId(Integer shardId) {
    this.shardId = shardId;
  }

  public void setDataSource(DataSource dataSource) {
    this.dataSource = dataSource;
  }

}
TOP

Related Classes of org.makersoft.shards.cfg.impl.ShardConfigurationImpl

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.