package org.megam.chef.parser;
import java.util.ArrayList;
import java.util.Formatter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.megam.chef.core.Condition;
/**
* <p>SystemProvider class.</p>
*
* @author rajthilak
* @version $Id: $Id
*/
public class SystemProvider implements Condition {
/**
* @param args
*/
List<Boolean> list = new ArrayList<Boolean>();
List<String> inputavailablereason = new ArrayList<String>();
private static final String PROVISIONER = "prov";
private Map<String, String> provider = new HashMap<String, String>();
/**
* <p>Constructor for SystemProvider.</p>
*/
public SystemProvider() {
}
/**
* <p>map.</p>
*
* @return provider
*/
public Map<String, String> map() {
return provider;
}
/**
* toString method for provisioner
*
* @return a {@link java.lang.String} object.
*/
public String toString() {
StringBuilder strbd = new StringBuilder();
final Formatter formatter = new Formatter(strbd);
for (Map.Entry<String, String> entry : map().entrySet()) {
formatter.format("%10s = %s%n", entry.getKey(), entry.getValue());
}
formatter.close();
return strbd.toString();
}
/**
* <p>getReason.</p>
*
* @return a {@link java.util.List} object.
*/
public List<String> getReason() {
// TODO Auto-generated method stub
return inputavailablereason;
}
/**
* <p>ok.</p>
*
* @return a boolean.
*/
public boolean ok() {
// TODO Auto-generated method stub
Boolean returnokvalue = true;
validate("prov", "chef");
for (Boolean check : list) {
if (check != true) {
returnokvalue = false;
}
}
return returnokvalue;
}
/**
* <p>validate.</p>
*
* @param key a {@link java.lang.String} object.
* @param value a {@link java.lang.String} object.
*/
public void validate(String key, String value) {
for (Map.Entry<String, String> entry : map().entrySet()) {
if (entry.getKey().equals(key)) {
if (entry.getValue().equals(value)) {
list.add(true);
} else {
inputavailablereason.add("Incorrect Provisioner");
list.add(false);
}
}
}
}
/*
* (non-Javadoc)
*
* @see org.megam.chef.core.Condition#inputAvailable()
*/
/**
* <p>inputAvailable.</p>
*
* @return a boolean.
*/
public boolean inputAvailable() {
// TODO Auto-generated method stub
Boolean returnvalue = true;
notNull("prov");
for (Boolean check : list) {
if (check != true) {
returnvalue = false;
}
}
return returnvalue;
}
/**
* <p>notNull.</p>
*
* @param str a {@link java.lang.String} object.
*/
public void notNull(String str) {
if (map().containsKey(str)) {
list.add(true);
} else {
inputavailablereason.add("Provisioner is Missing");
list.add(false);
}
}
/*
* (non-Javadoc)
*
* @see org.megam.chef.core.Condition#name()
*/
/**
* <p>name.</p>
*
* @return a {@link java.lang.String} object.
*/
public String name() {
// TODO Auto-generated method stub
return "PROVISIONER :";
}
}