Package com.skyline.energy.definition

Source Code of com.skyline.energy.definition.ShardDefinition

package com.skyline.energy.definition;

import java.lang.reflect.Method;
import java.util.Map;

import org.apache.commons.lang.StringUtils;

import com.skyline.energy.annotation.ShardBy;
import com.skyline.energy.exception.DaoGenerateException;
import com.skyline.energy.utils.CommonUtils;

public class ShardDefinition {
  private String shardTable;
  private String shardParamName;
  private Integer shardParamIndex;
  private Method shardGetter;
 
  public Integer getShardParamIndex() {
    return shardParamIndex;
  }

  public Method getShardGetter() {
    return shardGetter;
  }
 
  public String getShardParamName() {
    return shardParamName;
  }
 
  public String getShardTable() {
    return shardTable;
  }
 
  protected void parseShardBy(Method method, Map<String, Integer> paramIndexes, Class<?>[] paramTypes) throws DaoGenerateException {
    ShardBy shardBy = method.getAnnotation(ShardBy.class);
    if(shardBy != null) {
      shardTable = shardBy.table();
      shardParamName = StringUtils.trimToEmpty(shardBy.param());
     
      int pos = shardParamName.indexOf('.');
      if (pos != -1) {
        String actualName = shardParamName.substring(0, pos);

        int index = CommonUtils.getParameIndex(paramIndexes, actualName);

        String prop = shardParamName.substring(pos + 1);
        Method getter = CommonUtils.findGetterByPropertyName(paramTypes[index], prop);
       
        this.shardGetter = getter;
        this.shardParamIndex = index;
      } else {
        this.shardParamIndex = CommonUtils.getParameIndex(paramIndexes, shardParamName);
      }
    }
   
  }
}
TOP

Related Classes of com.skyline.energy.definition.ShardDefinition

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.