Skip to content

Commit

Permalink
added keywords to descriptions
Browse files Browse the repository at this point in the history
  • Loading branch information
autermann committed Jun 16, 2016
1 parent 0c6bc71 commit 876a5e7
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 0 deletions.
@@ -0,0 +1,40 @@
package org.n52.iceland.ogc.ows;

import java.util.Optional;

/**
* TODO JavaDoc
*
* @author Christian Autermann
*/
public class OwsKeyword {

private final OwsLanguageString keyword;
private final Optional<OwsCodeType> type;

public OwsKeyword(OwsLanguageString keyword, OwsCodeType type) {
this.keyword = keyword;
this.type = Optional.ofNullable(type);
}

public OwsKeyword(OwsLanguageString keyword) {
this(keyword, null);
}

public OwsKeyword(String keyword) {
this(keyword, null);
}

public OwsKeyword(String keyword, OwsCodeType type) {
this(new OwsLanguageString(keyword), type);
}

public OwsLanguageString getKeyword() {
return keyword;
}

public Optional<OwsCodeType> getType() {
return type;
}

}
Expand Up @@ -17,8 +17,10 @@
package org.n52.javaps.description;

import java.util.Optional;
import java.util.Set;

import org.n52.iceland.ogc.ows.OwsCodeType;
import org.n52.iceland.ogc.ows.OwsKeyword;
import org.n52.iceland.ogc.ows.OwsLanguageString;


Expand All @@ -35,4 +37,6 @@ public interface Description {

OwsLanguageString getTitle();

Set<OwsKeyword> getKeywords();

}
Expand Up @@ -17,8 +17,10 @@
package org.n52.javaps.description;

import java.net.URI;
import java.util.Arrays;

import org.n52.iceland.ogc.ows.OwsCodeType;
import org.n52.iceland.ogc.ows.OwsKeyword;
import org.n52.iceland.ogc.ows.OwsLanguageString;

/**
Expand Down Expand Up @@ -67,4 +69,21 @@ default B withTitle(String lang, String title) {
: new OwsLanguageString(lang, title));
}

B withKeyword(OwsKeyword keyword);

@SuppressWarnings("unchecked")
default B withKeywords(Iterable<OwsKeyword> keywords) {
keywords.forEach(this::withKeyword);
return (B ) this;
}

@SuppressWarnings("unchecked")
default B withKeywords(OwsKeyword... keywords) {
return withKeywords(Arrays.asList(keywords));
}

default B withKeyword(String keyword) {
return withKeyword(new OwsKeyword(keyword));
}

}
Expand Up @@ -16,10 +16,13 @@
*/
package org.n52.javaps.description.impl;

import java.util.Collections;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;

import org.n52.iceland.ogc.ows.OwsCodeType;
import org.n52.iceland.ogc.ows.OwsKeyword;
import org.n52.iceland.ogc.ows.OwsLanguageString;
import org.n52.javaps.description.Description;

Expand All @@ -33,12 +36,14 @@ public abstract class AbstractDescription implements Description {
private final OwsCodeType id;
private final OwsLanguageString title;
private final OwsLanguageString abstrakt;
private final Set<OwsKeyword> keywords;

public AbstractDescription(AbstractDescriptionBuilder<?, ?> builder) {
this.id = Objects.requireNonNull(builder.getId(), "id");
this.title = builder.getTitle() != null ? builder.getTitle()
: new OwsLanguageString(builder.getId().getValue());
this.abstrakt = builder.getAbstract();
this.keywords = builder.getKeywords();
}

@Override
Expand All @@ -56,4 +61,8 @@ public Optional<OwsLanguageString> getAbstract() {
return Optional.ofNullable(this.abstrakt);
}

@Override
public Set<OwsKeyword> getKeywords() {
return Collections.unmodifiableSet(this.keywords);
}
}
Expand Up @@ -17,12 +17,16 @@
package org.n52.javaps.description.impl;

import java.util.Objects;
import java.util.Set;

import org.n52.iceland.ogc.ows.OwsCodeType;
import org.n52.iceland.ogc.ows.OwsKeyword;
import org.n52.iceland.ogc.ows.OwsLanguageString;
import org.n52.javaps.description.Description;
import org.n52.javaps.description.DescriptionBuilder;

import com.google.common.collect.ImmutableSet;

/**
* TODO JavaDoc
*
Expand All @@ -36,6 +40,7 @@ public abstract class AbstractDescriptionBuilder<T extends Description, B extend
private OwsCodeType id;
private OwsLanguageString title;
private OwsLanguageString abstrakt;
private final ImmutableSet.Builder<OwsKeyword> keywords = ImmutableSet.builder();

@SuppressWarnings(value = "unchecked")
@Override
Expand All @@ -58,6 +63,13 @@ public B withAbstract(OwsLanguageString abstrakt) {
return (B) this;
}

@Override
@SuppressWarnings("unchecked")
public B withKeyword(OwsKeyword keyword) {
this.keywords.add(Objects.requireNonNull(keyword));
return (B) this;
}

OwsCodeType getId() {
return id;
}
Expand All @@ -70,4 +82,7 @@ OwsLanguageString getAbstract() {
return abstrakt;
}

Set<OwsKeyword> getKeywords() {
return keywords.build();
}
}

0 comments on commit 876a5e7

Please sign in to comment.