org.smartdeveloperhub.vocabulary.ci.DataSet.java Source code

Java tutorial

Introduction

Here is the source code for org.smartdeveloperhub.vocabulary.ci.DataSet.java

Source

/**
 * #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
 *   This file is part of the Smart Developer Hub Project:
 *     http://www.smartdeveloperhub.org/
 *
 *   Center for Open Middleware
 *     http://www.centeropenmiddleware.com/
 * #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
 *   Copyright (C) 2015-2016 Center for Open Middleware.
 * #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *             http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 * #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
 *   Artifact    : org.smartdeveloperhub.vocabulary:sdh-vocabulary:0.3.0
 *   Bundle      : sdh-vocabulary-0.3.0.jar
 * #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
 */
package org.smartdeveloperhub.vocabulary.ci;

import java.util.Map;
import java.util.Map.Entry;

import org.smartdeveloperhub.vocabulary.VocabularyUtil;

import com.google.common.collect.Maps;

public final class DataSet {

    private final String base;
    private final Map<String, Build> builds;
    private final Map<String, String> namespaces;
    private String location;

    private DataSet(String base) {
        this.base = base;
        this.builds = Maps.newLinkedHashMap();
        this.namespaces = Maps.newLinkedHashMap();
    }

    public DataSet withNamespace(String prefix, String namespace) {
        this.namespaces.put(prefix, namespace);
        return this;
    }

    public Build withBuild(String id) {
        Build build = this.builds.get(id);
        if (build == null) {
            build = new Build(this, id);
            this.builds.put(build.id(), build);
        }
        return build;
    }

    public String assemble() {
        ValueFactory factory = ValueFactory.create(this.base, this.namespaces);
        StringBuilder builder = new StringBuilder();
        for (Entry<String, String> entry : this.namespaces.entrySet()) {
            builder.append("@prefix ").append(entry.getKey()).append(": ")
                    .append(factory.uri(entry.getValue()).lexicalForm()).append(" .")
                    .append(System.lineSeparator());
        }
        builder.append(System.lineSeparator());
        builder.append("@base ").append(factory.uri(this.base).lexicalForm()).append(" .")
                .append(System.lineSeparator());
        builder.append(System.lineSeparator());
        for (Build build : this.builds.values()) {
            builder.append(build.assemble(factory)).append(System.lineSeparator());
            for (Execution execution : build.executions()) {
                builder.append(execution.assemble(factory)).append(System.lineSeparator())
                        .append(execution.result().assemble(factory)).append(System.lineSeparator());
            }
            builder.append(System.lineSeparator());
        }
        return builder.toString();
    }

    public static DataSet create(String base) {
        return new DataSet(base).withNamespace("rdfs", "http://www.w3.org/2000/01/rdf-schema#")
                .withNamespace("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#")
                .withNamespace("owl", "http://www.w3.org/2002/07/owl#")
                .withNamespace("xsd", "http://www.w3.org/2001/XMLSchema#")
                .withNamespace("sdh", VocabularyUtil.vocabularyNamespace("sdh"))
                .withNamespace("platform", VocabularyUtil.vocabularyNamespace("platform"))
                .withNamespace("ci", VocabularyUtil.vocabularyNamespace("ci"))
                .withNamespace("scm", VocabularyUtil.vocabularyNamespace("scm"))
                .withNamespace("org", VocabularyUtil.vocabularyNamespace("organization"))
                .withNamespace("metrics", VocabularyUtil.vocabularyNamespace("metrics"))
                .withNamespace("oslc", "http://open-services.net/ns/core#")
                .withNamespace("oslc_auto", "http://open-services.net/ns/auto#")
                .withNamespace("oslc_asset", "http://open-services.net/ns/asset#")
                .withNamespace("oslc_config", "http://open-services.net/ns/config#")
                .withNamespace("doap", "http://usefulinc.com/ns/doap#")
                .withNamespace("foaf", "http://xmlns.com/foaf/0.1/")
                .withNamespace("dcterms", "http://purl.org/dc/terms/");

    }

    public DataSet withLocation(String location) {
        this.location = location;
        return this;
    }

    public String location() {
        return this.location;
    }

}