@Override
  public SchemaResult getSchemaResult(SchemaQuery schemaQuery) {
    Map<String, String> schemaKeys = schemaQuery.getSchemaKeys();
    List<Schema> data = null;

    if (schemaKeys == null) {
      data = table.getAllDataPoints();
    } else {
      data = table.getDataPoints(schemaKeys);
    }

    if (schemaComparator != null) {
      Collections.sort(data, schemaComparator);
    }

    if (data.isEmpty()) {
      return null;
    }

    return new SchemaResult(schemaQuery, data);
  }
 @Override
 public Schema getSchema(Map<String, String> schemaKeys) {
   return table.getDataPoint(schemaKeys);
 }
 @Override
 public void registerSchema(Schema schema) {
   Map<String, String> schemaKeys = schema.getSchemaKeys();
   table.appendRow(schema, schemaKeys);
 }
 @Override
 public int size() {
   return table.size();
 }
 @Override
 public void registerSchema(Schema schema, Map<String, String> schemaKeys) {
   schema.setSchemaKeys(schemaKeys);
   table.appendRow(schema, schemaKeys);
 }