class Builder {

        private String name;
        private String description;
        private Collection<ColumnDefinition> columns;

        public Builder name(String name) {
            this.name = name;
            return this;
        }

        public Builder description(String description) {
            this.description = description;
            return this;
        }

        public Builder columns(Collection<ColumnDefinition> columns) {
            this.columns = columns;
            return this;
        }

        public Builder addColumn(String name, String type) {<FILL_FUNCTION_BODY>}

        public Builder addColumn(String name, String type, String description) {
            if (columns == null) {
                columns = new ArrayList<>();
            }
            this.columns.add(new ColumnDefinition(name, type, description));
            return this;
        }

        public TableDefinition build() {
            return new TableDefinition(name, description, columns);
        }
    }

            if (columns == null) {
                columns = new ArrayList<>();
            }
            this.columns.add(new ColumnDefinition(name, type));
            return this;
        
<no_super_class>