class MsoYamlEditorWithEnvt {

    public synchronized Set<HeatTemplateParam> getParameterList() {
        Set<HeatTemplateParam> paramSet = new HashSet<>();
        @SuppressWarnings("unchecked")
        Map<String, Object> resourceMap = (Map<String, Object>) yml.get("parameters");

        for (Entry<String, Object> stringObjectEntry : resourceMap.entrySet()) {
            HeatTemplateParam param = new HeatTemplateParam();
            Entry<String, Object> pair = stringObjectEntry;
            @SuppressWarnings("unchecked")
            Map<String, String> resourceEntry = (Map<String, String>) pair.getValue();
            String value = null;
            try {
                value = resourceEntry.get("default");
            } catch (ClassCastException cce) {
                logger.debug(EXCEPTION, cce);
                // This exception only - the value is an integer. For what we're doing
                // here - we don't care - so set value to something - and it will
                // get marked as not being required - which is correct.
                // System.out.println("cce exception!");
                value = "300";
                // okay
            }
            param.setParamName((String) pair.getKey());
            if (value != null) {
                param.setRequired(false);
            } else {
                param.setRequired(true);
            }
            value = resourceEntry.get("type");
            param.setParamType(value);

            paramSet.add(param);

        }
        return paramSet;

    }

    public  MsoYamlEditorWithEnvt();
    public  MsoYamlEditorWithEnvt(byte[] b);

}