@Override public PMetaData pruneFunctions(Pruner pruner) { List<PTableKey> keysToPrune = Lists.newArrayListWithExpectedSize(this.size()); for (PFunction function : this.metaData.functions.values()) { if (pruner.prune(function)) { keysToPrune.add(function.getKey()); } } if (keysToPrune.isEmpty()) { return this; } PMetaDataCache clone = metaData.clone(); for (PTableKey key : keysToPrune) { clone.functions.remove(key); } return new PMetaDataImpl(clone); }
@Override public PMetaData pruneTables(Pruner pruner) { List<PTableKey> keysToPrune = Lists.newArrayListWithExpectedSize(this.size()); for (PTable table : this) { if (pruner.prune(table)) { keysToPrune.add(table.getKey()); } } if (keysToPrune.isEmpty()) { return this; } PMetaDataCache tables = metaData.clone(); for (PTableKey key : keysToPrune) { tables.remove(key); } return new PMetaDataImpl(tables); }