dataVector.insertElementAt(curData, 0);
}
// Convert the set vector to an array
for (int i = 0; i < dataVector.size(); i++) {
Data data = dataVector.get(i);
data.variables = new Object[variablesVector.size()];
variablesVector.copyInto(data.variables);
data.variableNames = new Hashtable<String, char[]>();
data.variableNames.putAll(variableNames);
}
variablesVector = null;
// Do more syntax checking and index the rules
try {
if (compoundFilter != null) {
if ((direction == Transliterator.FORWARD &&
compoundFilterOffset != 1) ||
(direction == Transliterator.REVERSE &&
compoundFilterOffset != ruleCount)) {
throw new IllegalIcuArgumentException("Compound filters misplaced");
}
}
for (int i = 0; i < dataVector.size(); i++) {
Data data = dataVector.get(i);
data.ruleSet.freeze();
}
if (idBlockVector.size() == 1 && (idBlockVector.get(0)).length() == 0)
idBlockVector.remove(0);