package edu.stanford.nlp.sempre.tables;
import java.util.*;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import edu.stanford.nlp.sempre.*;
/**
* Store various properties of a cell.
*
* Contract: There is only one TableCellProperties for each unique id.
*
* @author ppasupat
*/
public class TableCellProperties {
public final String id;
public final String originalString;
public final NameValue nameValue;
public final Multimap<Value, Value> metadata;
public final Set<TableColumn> columns;
public TableCellProperties(String id, String originalString) {
this.id = id;
this.originalString = originalString;
this.nameValue = new NameValue(id, originalString);
this.metadata = ArrayListMultimap.create();
this.columns = new HashSet<>();
}
/** Create a copy without the columns field. */
public TableCellProperties(TableCellProperties old) {
this.id = old.id;
this.originalString = old.originalString;
this.nameValue = old.nameValue;
this.metadata = ArrayListMultimap.create(old.metadata);
this.columns = new HashSet<>();
}
@Override
public boolean equals(Object o) {
if (!(o instanceof TableCellProperties)) return false;
return id.equals(((TableCellProperties) o).id);
}
@Override
public int hashCode() {
return id.hashCode();
}
}