content: /**
   * Copyright 1999-2011 Alibaba Group
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
   package com.alibaba.cobar.client.router.config.vo;
  
  public class InternalRule {
  
      private String namespace;
      private String sqlmap;
      private String shardingExpression;
      private String shards;
      /**
       * this field is not used for now, because it's still in leverage whether
       * it's proper to bind merging information into a routing concern.
       */
      private String merger;
  
      public String getNamespace() {
          return namespace;
      }
  
      public void setNamespace(String namespace) {
          this.namespace = namespace;
      }
  
      public String getSqlmap() {
          return sqlmap;
      }
  
      public void setSqlmap(String sqlmap) {
          this.sqlmap = sqlmap;
      }
  
      public String getShardingExpression() {
          return shardingExpression;
      }
  
      public void setShardingExpression(String shardingExpression) {
          this.shardingExpression = shardingExpression;
      }
  
      public String getShards() {
          return shards;
      }
  
      public void setShards(String shards) {
          this.shards = shards;
      }
  
      /**
       * set the bean name of merger to use.
       * 
       * @param merger, the bean name in the container.
       */
      public void setMerger(String merger) {
          this.merger = merger;
      }
  
      /**
       * @return the bean name of the merger.
       */
      public String getMerger() {
          return merger;
      }
  
      @Override
      public int hashCode() {
          final int prime = 31;
          int result = 1;
          result = prime * result + ((namespace == null) ? 0 : namespace.hashCode());
          result = prime * result
                  + ((shardingExpression == null) ? 0 : shardingExpression.hashCode());
          result = prime * result + ((shards == null) ? 0 : shards.hashCode());
          result = prime * result + ((sqlmap == null) ? 0 : sqlmap.hashCode());
          return result;
      }
  
      @Override
      public boolean equals(Object obj) {
          if (this == obj)
              return true;
          if (obj == null)
              return false;
          if (getClass() != obj.getClass())
              return false;
          InternalRule other = (InternalRule) obj;
          if (namespace == null) {
              if (other.namespace != null)
                  return false;
          } else if (!namespace.equals(other.namespace))
              return false;
          if (shardingExpression == null) {
              if (other.shardingExpression != null)
                  return false;
          } else if (!shardingExpression.equals(other.shardingExpression))
              return false;
          if (shards == null) {
              if (other.shards != null)
                  return false;
          } else if (!shards.equals(other.shards))
              return false;
          if (sqlmap == null) {
              if (other.sqlmap != null)
                  return false;
          } else if (!sqlmap.equals(other.sqlmap))
              return false;
          return true;
      }
  
      @Override
      public String toString() {
          return "InternalRule [namespace=" + namespace + ", shardingExpression="
                  + shardingExpression + ", shards=" + shards + ", sqlmap=" + sqlmap + "]";
      }
  }
  