Class ConfigurationPropertyRepository

  • All Implemented Interfaces:
    org.springframework.beans.factory.Aware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean, org.springframework.context.EnvironmentAware

    public class ConfigurationPropertyRepository
    extends java.lang.Object
    implements org.springframework.context.EnvironmentAware, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean
    A repository for managing ConfigurationProperty instances with support for configuration via Spring's Environment.

    This class provides methods to add, remove, retrieve, and manage configuration properties. It also allows integration with Spring's lifecycle management through the InitializingBean and DisposableBean interfaces, as well as environment-based property configuration through the EnvironmentAware interface.

    Configuration Properties

    Example Usage

    
     // Create a new repository instance
     ConfigurationPropertyRepository repository = new ConfigurationPropertyRepository();
    
     // Set the environment to load max size from configuration
     ConfigurableEnvironment environment = new StandardEnvironment();
     repository.setEnvironment(environment);
    
     // Initialize the repository (usually done automatically by Spring)
     repository.afterPropertiesSet();
    
     // Add a configuration property
     ConfigurationProperty property = new ConfigurationProperty("my.property.name");
     property.setValue("exampleValue");
     repository.add(property);
    
     // Retrieve the property
     ConfigurationProperty retrieved = repository.get("my.property.name");
     System.out.println(retrieved.getValue()); // Output: exampleValue
    
     // Clean up resources when done
     repository.destroy();
     
    Since:
    1.0.0
    Author:
    Mercy
    See Also:
    ConfigurationProperty
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(io.microsphere.beans.ConfigurationProperty configurationProperty)
      Add a ConfigurationProperty instance
      void afterPropertiesSet()  
      boolean contains​(java.lang.String name)
      Determine whether the repository contains the specified name
      io.microsphere.beans.ConfigurationProperty createIfAbsent​(java.lang.String name)
      Create a ConfigurationProperty instance if absent
      void destroy()
      clear the repository
      io.microsphere.beans.ConfigurationProperty get​(java.lang.String name)
      Get a ConfigurationProperty instance by name
      java.util.Collection<io.microsphere.beans.ConfigurationProperty> getAll()
      Get all ConfigurationProperty instances
      int getMaxSize()
      Get the max size of the repository
      protected java.util.Map<java.lang.String,​io.microsphere.beans.ConfigurationProperty> getRepository()  
      io.microsphere.beans.ConfigurationProperty remove​(java.lang.String name)
      Remove a ConfigurationProperty instance by name
      void setEnvironment​(org.springframework.core.env.Environment environment)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • PROPERTY_NAME_PREFIX

        public static final java.lang.String PROPERTY_NAME_PREFIX
        See Also:
        Constant Field Values
      • MAX_SIZE_PROPERTY_NAME

        @ConfigurationProperty(type=int.class,
                               description="The max size of the repository for ConfigurationProperty instances",
                               defaultValue="99999")
        public static final java.lang.String MAX_SIZE_PROPERTY_NAME
        See Also:
        Constant Field Values
    • Constructor Detail

      • ConfigurationPropertyRepository

        public ConfigurationPropertyRepository()
    • Method Detail

      • add

        public void add​(io.microsphere.beans.ConfigurationProperty configurationProperty)
        Add a ConfigurationProperty instance
        Parameters:
        configurationProperty - a ConfigurationProperty instance
      • remove

        public io.microsphere.beans.ConfigurationProperty remove​(java.lang.String name)
        Remove a ConfigurationProperty instance by name
        Parameters:
        name - the name of ConfigurationProperty
      • get

        public io.microsphere.beans.ConfigurationProperty get​(java.lang.String name)
        Get a ConfigurationProperty instance by name
        Parameters:
        name - the name of ConfigurationProperty
        Returns:
        null if not found
      • contains

        public boolean contains​(java.lang.String name)
        Determine whether the repository contains the specified name
        Parameters:
        name - the name of ConfigurationProperty
        Returns:
        true if contains, otherwise false
      • createIfAbsent

        public io.microsphere.beans.ConfigurationProperty createIfAbsent​(java.lang.String name)
        Create a ConfigurationProperty instance if absent
        Parameters:
        name - the name of ConfigurationProperty
        Returns:
        the ConfigurationProperty instance
      • getAll

        public java.util.Collection<io.microsphere.beans.ConfigurationProperty> getAll()
        Get all ConfigurationProperty instances
        Returns:
        never null
      • getMaxSize

        public int getMaxSize()
        Get the max size of the repository
        Returns:
        max size
      • setEnvironment

        public void setEnvironment​(org.springframework.core.env.Environment environment)
        Specified by:
        setEnvironment in interface org.springframework.context.EnvironmentAware
      • afterPropertiesSet

        public void afterPropertiesSet()
        Specified by:
        afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      • destroy

        public void destroy()
                     throws java.lang.Exception
        clear the repository
        Specified by:
        destroy in interface org.springframework.beans.factory.DisposableBean
        Throws:
        java.lang.Exception
      • getRepository

        protected java.util.Map<java.lang.String,​io.microsphere.beans.ConfigurationProperty> getRepository()