/**
* Copyright 2011 Intuit Inc. All Rights Reserved
*/
package com.intuit.tank.vm.settings;
/*
* #%L
* Intuit Tank Api
* %%
* Copyright (C) 2011 - 2015 Intuit Inc.
* %%
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
* #L%
*/
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.configuration.HierarchicalConfiguration;
/**
* InstanceDescription
*
* @author dangleton
*
*/
public class InstanceDescriptionDefaults {
private HierarchicalConfiguration config;
private HierarchicalConfiguration defaultInstance;
public InstanceDescriptionDefaults(HierarchicalConfiguration config, HierarchicalConfiguration defaultInstance) {
this.config = config;
this.defaultInstance = defaultInstance;
}
/**
* @return the location
*/
public String getLocation() {
return get("location");
}
/**
* @return the securityGroup
*/
public String getSecurityGroup() {
return get("security-group");
}
/**
* @return the securityGroup
*/
public String getSubnetId() {
return get("vpc-subnet");
}
/**
* @return the securityGroup
*/
public List<String> getSecurityGroupIds() {
return getList("security-group-ids");
}
/**
* @return the securityGroup
*/
public String getIamRole() {
return get("iam-role");
}
/**
* @return the securityGroup
*/
public String getZone() {
return get("zone");
}
/**
* @return the keypair
*/
public String getKeypair() {
return get("keypair");
}
/**
* @return the VPC
*/
public Boolean isVPC() {
return Boolean.valueOf(get("vpc"));
}
String get(String key) {
return config.getString(key, defaultInstance != null ? defaultInstance.getString(key) : null);
}
List<String> getList(String key) {
List<String> strings = new ArrayList<>();
List<Object> list = config.getList(key, defaultInstance != null ? defaultInstance.getList(key) : null);
for (Object object : list ) {
strings.add(object != null ? object.toString() : null);
}
return strings;
}
}