blob: 5cef57939f8cb40dd54ccd2655068bb351e2dab8 [file] [log] [blame]
/*********************************************************************
* Copyright (c) 2018 Boeing
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Boeing - initial API and implementation
**********************************************************************/
package org.eclipse.osee.account.admin;
import java.util.Map;
/**
* @author Megumi Telles
*/
public class AccountConfiguration {
public static final String NAMESPACE = "account";
public static final String HTTP_HEADER_NAME = qualify("http.header.name");
private String httpHeaderName;
private AccountConfiguration() {
//Builder Class
}
private static String qualify(String value) {
return String.format("%s.%s", NAMESPACE, value);
}
public String getHttpHeaderName() {
return httpHeaderName;
}
public void setHttpHeaderName(String httpHeaderName) {
this.httpHeaderName = httpHeaderName;
}
public AccountConfiguration copy() {
AccountConfiguration data = new AccountConfiguration();
data.httpHeaderName = this.httpHeaderName;
return data;
}
public static AccountConfigurationBuilder newBuilder() {
return new AccountConfigurationBuilder();
}
public static AccountConfigurationBuilder fromProperties(Map<String, Object> props) {
return newBuilder().properties(props);
}
public static AccountConfiguration newConfig(Map<String, Object> props) {
return fromProperties(props).build();
}
public static final class AccountConfigurationBuilder {
private final AccountConfiguration config = new AccountConfiguration();
public AccountConfiguration build() {
return config.copy();
}
public AccountConfigurationBuilder properties(Map<String, Object> props) {
httpHeaderName(get(props, HTTP_HEADER_NAME, ""));
return this;
}
public AccountConfigurationBuilder httpHeaderName(String httpHeaderName) {
config.setHttpHeaderName(httpHeaderName);
return this;
}
private static String get(Map<String, Object> props, String key, String defaultValue) {
String toReturn = defaultValue;
Object object = props != null ? props.get(key) : null;
if (object != null) {
toReturn = String.valueOf(object);
}
return toReturn;
}
}
}