class ConfigurationContainer {

        /**
         * @deprecated
         */
        public ConfigurationProperty addProperty(String propertyName, Class type) {<FILL_FUNCTION_BODY>}

        public ConfigurationProperty getProperty(String propertyName) {
            return AbstractConfigurationContainer.this.getProperty(propertyName);
        }

        public <T> T getValue(String propertyName, Class<T> returnType) {
            return AbstractConfigurationContainer.this.getValue(propertyName, returnType);
        }

        public void setValue(String propertyName, Object value) {
            AbstractConfigurationContainer.this.setValue(propertyName, value);
        }
    }

            final ConfigurationDefinition.Builder builder = new ConfigurationDefinition.Builder(namespace);
            final ConfigurationDefinition.Building newDefinition = builder.define(propertyName, type);

            final ConfigurationProperty property = new ConfigurationProperty(namespace, newDefinition);

            properties.put(propertyName, property);
            return property;
        
<no_super_class>