package com.google.refine.importers.tree; import java.util.LinkedHashMap; import java.util.Map; import org.apache.commons.lang.StringUtils; /** * A column group describes a branch in tree structured data */ public class ImportColumnGroup extends ImportVertical { public Map<String, ImportColumnGroup> subgroups = new LinkedHashMap<String, ImportColumnGroup>(); public Map<String, ImportColumn> columns = new LinkedHashMap<String, ImportColumn>(); public int nextRowIndex; // TODO: this can be hoisted into superclass @Override void tabulate() { for (ImportColumn c : columns.values()) { c.tabulate(); nonBlankCount = Math.max(nonBlankCount, c.nonBlankCount); } for (ImportColumnGroup g : subgroups.values()) { g.tabulate(); nonBlankCount = Math.max(nonBlankCount, g.nonBlankCount); } } @Override public String toString() { return String.format("name=%s, nextRowIndex=%d, columns={%s}, subgroups={{%s}}", name,nextRowIndex,StringUtils.join(columns.keySet(), ','), StringUtils.join(subgroups.keySet(),',')); } }