View Javadoc
1   /**
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    *  to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    *  with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.creadur.whisker.app;
20  
21  /**
22   * Builds configurations fluently.
23   */
24  public class ConfigurationBuilder {
25  
26      /**
27       * Creates a new builder.
28       * @return not null
29       */
30      public static ConfigurationBuilder aConfiguration() {
31          return new ConfigurationBuilder();
32      }
33  
34      /**
35       * Include source URLs in the License document?
36       */
37      private boolean includeSourceUrlsInLicense;
38  
39      /**
40       * Create via factory method.
41       */
42      private ConfigurationBuilder() {
43          includeSourceUrlsInLicense = true;
44      }
45  
46      /**
47       * Builds a configuration.
48       * @return not null
49       */
50      public Configuration build() {
51          return new Configuration(includeSourceUrlsInLicense);
52      }
53  
54      /**
55       * Set source URLs in license to true
56       * when the configuration is built.
57       * @return this, not null
58       */
59      public ConfigurationBuilder withSourceURLsInLicense() {
60          includeSourceUrlsInLicense = true;
61          return this;
62      }
63  
64      /**
65       * Set source URLs in license to false
66       * when the configuration is built.
67       * @return this, not null
68       */
69      public ConfigurationBuilder noSourceURLsInLicense() {
70          includeSourceUrlsInLicense = false;
71          return this;
72      }
73  
74      /**
75       * Adjusts the configuration.
76       * @param licenseConfiguration not null
77       * @return this builder, not null
78       */
79      public ConfigurationBuilder with(final LicenseConfiguration licenseConfiguration) {
80          includeSourceUrlsInLicense = licenseConfiguration.includeSourceUrlsInLicense();
81          return this;
82      }
83  
84  }