makes sure an abstractpropertyclass has all the properties it needs . synchronized mutators so multiple threads can not cause problems . we would n't want the properties heading to get changed as we were processing the properties . concode_field_sep String propertiesHeading concode_elem_sep PropertiesFactory DEFAULT_PROPERTIES_FACTORY concode_elem_sep String propertiesGroup concode_elem_sep PropertiesFactory propertiesFactory concode_elem_sep Properties properties concode_field_sep void setPropertiesFactory concode_elem_sep String getPropertiesHeading concode_elem_sep void handleProperties concode_elem_sep Properties getProperties concode_elem_sep void setProperties concode_elem_sep void setPropertiesGroup concode_elem_sep void loadProperties concode_elem_sep void initializeProperties concode_elem_sep void setPropertiesHeading concode_elem_sep PropertiesFactory getPropertiesFactory concode_elem_sep String getPropertiesGroup
void function ( ) { if ( getProperties ( ) == null ) { initializeProperties ( ) ; } }