// Path: src/util/src/main/java/org/lilycms/util/ArgumentValidator.java
// public class ArgumentValidator {
//     public static void notNull(Object object, String argName) {
//         if (object == null)
//             throw new IllegalArgumentException("Null argument: " + argName);
//     }
// }


import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.node.JsonNodeFactory;
import org.codehaus.jackson.node.ObjectNode;
import org.lilycms.util.ArgumentValidator;
import java.lang.reflect.Constructor;
import java.util.*;
        Constructor<IndexFieldDefinition> constructor = clazz.getConstructor(String.class, ObjectNode.class);
        IndexFieldDefinition field = constructor.newInstance(entry.getKey(), entry.getValue());
        add(field);
      }
    } catch (Exception e) {
      throw new RuntimeException("Error instantiating IndexDefinition.", e);
    }
  }

  public String getName() {
    return name;
  }

  public String getTable() {
    return table;
  }

  public String getFullName() {
    return IndexDefinition.buildIndexName(this.table, this.name);
  }

  public static String buildIndexName(String table, String index) {
    return table + "::" + index;
  }

  public Order getIdentifierOrder() {
    return identifierOrder;
  }

  public void setIdentifierOrder(Order identifierOrder) {
// Path: src/util/src/main/java/org/lilycms/util/ArgumentValidator.java
// public class ArgumentValidator {
//     public static void notNull(Object object, String argName) {
//         if (object == null)
//             throw new IllegalArgumentException("Null argument: " + argName);
//     }
// }


// Path: src/hbaseindex/src/main/java/org/lilycms/hbaseindex/IndexDefinition.java
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.node.JsonNodeFactory;
import org.codehaus.jackson.node.ObjectNode;
import org.lilycms.util.ArgumentValidator;
import java.lang.reflect.Constructor;
import java.util.*;

        Constructor<IndexFieldDefinition> constructor = clazz.getConstructor(String.class, ObjectNode.class);
        IndexFieldDefinition field = constructor.newInstance(entry.getKey(), entry.getValue());
        add(field);
      }
    } catch (Exception e) {
      throw new RuntimeException("Error instantiating IndexDefinition.", e);
    }
  }

  public String getName() {
    return name;
  }

  public String getTable() {
    return table;
  }

  public String getFullName() {
    return IndexDefinition.buildIndexName(this.table, this.name);
  }

  public static String buildIndexName(String table, String index) {
    return table + "::" + index;
  }

  public Order getIdentifierOrder() {
    return identifierOrder;
  }

  public void setIdentifierOrder(Order identifierOrder) {
    ArgumentValidator.notNull(identifierOrder, "identifierOrder");