All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.socrata.builders.BlueprintBuilder Maven / Gradle / Ivy

There is a newer version: 0.10.10
Show newest version
package com.socrata.builders;

import com.google.common.base.Function;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
import com.socrata.model.Location;
import com.socrata.model.importer.Blueprint;
import com.socrata.model.importer.BlueprintColumn;
import com.socrata.model.importer.ScanColumn;
import com.socrata.model.importer.ScanResults;

import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.TreeSet;

/**
 */
public class BlueprintBuilder
{

    public static final Function   CONVERT_BLUPRINT = new Function()
    {
        @Override
        public BlueprintColumn apply(@Nullable ScanColumn input)
        {
            return new BlueprintColumn(input.getName(), "", input.getSuggestion());
        }
    };

    String name;
    String description;
    int skip;
    List columns;

    public BlueprintBuilder() {
        columns = new ArrayList();
    }

    public BlueprintBuilder(final ScanResults scanResults) {
        skip = scanResults.getSummary().getHeaders();
        columns = Lists.newArrayList(Collections2.transform(scanResults.getSummary().getColumns(), CONVERT_BLUPRINT));
    }

    public BlueprintBuilder setName(final String name) {
        this.name = name;
        return this;
    }

    public BlueprintBuilder setDescription(final String description) {
        this.description = description;
        return this;
    }

    public BlueprintBuilder setSkip(final int skip) {
        this.skip = skip;
        return this;
    }

    public  BlueprintBuilder addColumn(BlueprintColumn column) {
        columns.add(column);
        return this;
    }

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy