1 package com
.google
.appengine
.api
.search
;
3 import com
.google
.appengine
.api
.NamespaceManager
;
6 * Configuration options for Search API.
8 public final class SearchServiceConfig
{
10 private final Double deadline
;
11 private final String namespace
;
13 private SearchServiceConfig(SearchServiceConfig
.Builder builder
) {
14 deadline
= builder
.deadline
;
15 namespace
= builder
.namespace
;
19 * Builder for {@link SearchServiceConfig}.
21 public static final class Builder
{
23 private Double deadline
;
24 private String namespace
;
26 private Builder(SearchServiceConfig config
) {
27 deadline
= config
.deadline
;
28 namespace
= config
.namespace
;
34 public SearchServiceConfig
.Builder
setDeadline(Double deadlineInSeconds
)
35 throws SearchServiceException
{
36 if (deadlineInSeconds
!= null && deadlineInSeconds
<= 0.0) {
37 throw new IllegalArgumentException("Invalid Deadline. Must be a positive number.");
39 this.deadline
= deadlineInSeconds
;
43 public SearchServiceConfig
.Builder
setNamespace(String namespace
) {
44 if (namespace
!= null) {
45 NamespaceManager
.validateNamespace(namespace
);
47 this.namespace
= namespace
;
52 * Builds a configuration.
54 * @return the configuration built by this builder
56 public SearchServiceConfig
build() {
57 return new SearchServiceConfig(this);
62 * Creates a new {@link SearchServiceConfig.Builder}.
64 * @return the newly created {@link SearchServiceConfig.Builder} instance
66 public static SearchServiceConfig
.Builder
newBuilder() {
67 return new SearchServiceConfig
.Builder();
71 * Converts this config instance to a builder.
73 * @return the newly created {@link SearchServiceConfig.Builder} instance
75 public SearchServiceConfig
.Builder
toBuilder() {
76 return new SearchServiceConfig
.Builder(this);
80 * Returns the API deadline in seconds.
82 * @return the deadline in seconds or null if no deadline has been set
84 public Double
getDeadline() {
88 public String
getNamespace() {