ImmutableTable(ImmutableSchema parent, Map<String, Object> table) { super(parent, table); final Table prototype = new TableImpl(parent, table); this.enabled = prototype.isEnabled(); this.id = prototype.getId(); this.name = prototype.getName(); this.alias = prototype.getAlias(); this.packageName = prototype.getPackageName(); this.view = prototype.isView(); this.columns = unmodifiableList(super.children(COLUMNS, ImmutableColumn::new).collect(toList())); this.indexes = unmodifiableList(super.children(INDEXES, ImmutableIndex::new).collect(toList())); this.foreignKeys = unmodifiableList(super.children(FOREIGN_KEYS, ImmutableForeignKey::new).collect(toList())); this.primaryKeyColumns = unmodifiableList(super.children(PRIMARY_KEY_COLUMNS, ImmutablePrimaryKeyColumn::new).collect(toList())); }