18 package com.mysql.clusterj.core.metadata;
 
   20 import com.mysql.clusterj.core.query.CandidateIndexImpl;
 
   21 import com.mysql.clusterj.core.spi.DomainTypeHandler;
 
   22 import com.mysql.clusterj.core.store.Dictionary;
 
   23 import com.mysql.clusterj.core.store.Index;
 
   24 import com.mysql.clusterj.core.util.I18NHelper;
 
   25 import com.mysql.clusterj.core.util.Logger;
 
   26 import com.mysql.clusterj.core.util.LoggerFactoryService;
 
   28 import java.util.Arrays;
 
   65     static final String UNIQUE_SUFFIX = 
"$unique";
 
   89     private boolean usable = 
true;
 
   92     private String reason = null;
 
  103         this.
className = domainTypeHandler.getName();
 
  105         this.indexName = storeIndex.
getName();
 
  106         this.
tableName = domainTypeHandler.getTableName();
 
  108         int numberOfColumns = columnNames.length;
 
  112         if (logger.isDebugEnabled()) logger.debug(toString());
 
  125         this.
className = domainTypeHandler.getName();
 
  126         this.indexName = indexName;
 
  127         this.
tableName = domainTypeHandler.getTableName();
 
  132         if (logger.isDebugEnabled()) logger.debug(toString());
 
  149     public String toString() {
 
  151         buffer.append(
"IndexHandler for class ");
 
  153         buffer.append(
" index: ");
 
  154         buffer.append(indexName);
 
  155         buffer.append(
" unique: ");
 
  157         buffer.append(
" columns: ");
 
  159         return buffer.toString();
 
  169         fmd.validateIndexType(indexName, 
unique);
 
  183             if (fmd == null || !(
columnNames[
i].equals(fmd.getColumnName()))) {
 
  195     public boolean isUsable() {
 
  199     public String getReason() {
 
  203     protected Index getIndex(Dictionary dictionary,
 
  205         return dictionary.getIndex(indexName, tableName, indexName);
 
  208     public String getIndexName() {