/**
* This file is part of d:swarm graph extension.
*
* d:swarm graph extension is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* d:swarm graph extension is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with d:swarm graph extension. If not, see <http://www.gnu.org/licenses/>.
*/
package org.dswarm.graph.model;
import java.util.Map;
import org.dswarm.graph.NodeType;
import java.util.Optional;
/**
* @author tgaengler
*/
public final class StatementBuilder {
private Optional<NodeType> optionalSubjectNodeType = Optional.empty();
private Optional<String> optionalSubjectURI = Optional.empty();
private Optional<String> optionalSubjectId = Optional.empty();
private Optional<String> optionalSubjectDataModelURI = Optional.empty();
private Optional<String> optionalPredicateURI = Optional.empty();
private Optional<NodeType> optionalObjectNodeType = Optional.empty();
private Optional<String> optionalObjectURI = Optional.empty();
private Optional<String> optionalObjectValue = Optional.empty();
private Optional<String> optionalObjectId = Optional.empty();
private Optional<String> optionalObjectDataModelURI = Optional.empty();
private Optional<String> optionalStatementUUID = Optional.empty();
private Optional<Long> optionalResourceHash = Optional.empty();
private Optional<Map<String, Object>> optionalQualifiedAttributes = Optional.empty();
public StatementBuilder() {
}
public StatementBuilder setOptionalSubjectNodeType(final Optional<NodeType> optionalSubjectNodeType) {
this.optionalSubjectNodeType = optionalSubjectNodeType;
return this;
}
public StatementBuilder setOptionalSubjectURI(final Optional<String> optionalSubjectURI) {
this.optionalSubjectURI = optionalSubjectURI;
return this;
}
public StatementBuilder setOptionalSubjectId(final Optional<String> optionalSubjectId) {
this.optionalSubjectId = optionalSubjectId;
return this;
}
public StatementBuilder setOptionalSubjectDataModelURI(final Optional<String> optionalSubjectDataModelURI) {
this.optionalSubjectDataModelURI = optionalSubjectDataModelURI;
return this;
}
public StatementBuilder setOptionalPredicateURI(final Optional<String> optionalPredicateURI) {
this.optionalPredicateURI = optionalPredicateURI;
return this;
}
public StatementBuilder setOptionalObjectNodeType(final Optional<NodeType> optionalObjectNodeType) {
this.optionalObjectNodeType = optionalObjectNodeType;
return this;
}
public StatementBuilder setOptionalObjectURI(final Optional<String> optionalObjectURI) {
this.optionalObjectURI = optionalObjectURI;
return this;
}
public StatementBuilder setOptionalObjectValue(final Optional<String> optionalObjectValue) {
this.optionalObjectValue = optionalObjectValue;
return this;
}
public StatementBuilder setOptionalObjectId(final Optional<String> optionalObjectId) {
this.optionalObjectId = optionalObjectId;
return this;
}
public StatementBuilder setOptionalObjectDataModelURI(final Optional<String> optionalObjectDataModelURI) {
this.optionalObjectDataModelURI = optionalObjectDataModelURI;
return this;
}
public StatementBuilder setOptionalStatementUUID(final Optional<String> optionalStatementUUID) {
this.optionalStatementUUID = optionalStatementUUID;
return this;
}
public StatementBuilder setOptionalResourceHash(final Optional<Long> optionalResourceHash) {
this.optionalResourceHash = optionalResourceHash;
return this;
}
public StatementBuilder setOptionalQualifiedAttributes(final Optional<Map<String, Object>> optionalQualifiedAttributes) {
this.optionalQualifiedAttributes = optionalQualifiedAttributes;
return this;
}
public Optional<NodeType> getOptionalSubjectNodeType() {
if (optionalSubjectNodeType == null) {
return Optional.empty();
}
return optionalSubjectNodeType;
}
public Optional<String> getOptionalSubjectURI() {
if (optionalSubjectURI == null) {
return Optional.empty();
}
return optionalSubjectURI;
}
public Optional<String> getOptionalSubjectId() {
if (optionalSubjectId == null) {
return Optional.empty();
}
return optionalSubjectId;
}
public Optional<String> getOptionalSubjectDataModelURI() {
if (optionalSubjectDataModelURI == null) {
return Optional.empty();
}
return optionalSubjectDataModelURI;
}
public Optional<String> getOptionalPredicateURI() {
if (optionalPredicateURI == null) {
return Optional.empty();
}
return optionalPredicateURI;
}
public Optional<NodeType> getOptionalObjectNodeType() {
if (optionalObjectNodeType == null) {
return Optional.empty();
}
return optionalObjectNodeType;
}
public Optional<String> getOptionalObjectURI() {
if (optionalObjectURI == null) {
return Optional.empty();
}
return optionalObjectURI;
}
public Optional<String> getOptionalObjectValue() {
if (optionalObjectValue == null) {
return Optional.empty();
}
return optionalObjectValue;
}
public Optional<String> getOptionalObjectId() {
if (optionalObjectId == null) {
return Optional.empty();
}
return optionalObjectId;
}
public Optional<String> getOptionalObjectDataModelURI() {
if (optionalObjectDataModelURI == null) {
return Optional.empty();
}
return optionalObjectDataModelURI;
}
public Optional<String> getOptionalStatementUUID() {
if (optionalStatementUUID == null) {
return Optional.empty();
}
return optionalStatementUUID;
}
public Optional<Long> getOptionalResourceHash() {
if (optionalResourceHash == null) {
return Optional.empty();
}
return optionalResourceHash;
}
public Optional<Map<String, Object>> getOptionalQualifiedAttributes() {
if (optionalQualifiedAttributes == null) {
return Optional.empty();
}
return optionalQualifiedAttributes;
}
public Statement build() {
return new Statement(getOptionalSubjectNodeType(), getOptionalSubjectURI(), getOptionalSubjectId(), getOptionalSubjectDataModelURI(),
getOptionalPredicateURI(), getOptionalObjectNodeType(), getOptionalObjectURI(), getOptionalObjectValue(), getOptionalObjectId(),
getOptionalObjectDataModelURI(), getOptionalStatementUUID(), getOptionalResourceHash(), getOptionalQualifiedAttributes());
}
}