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 }