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() {