public void registerProperty ( Object instance , String propertyName , boolean override ) { if ( registeredProperties == null ) { registeredProperties = new HashMap <> ( ) ; } if ( instance == null ) { registeredProperties . remove ( propertyName ) ; } else { Object oldInstance = registeredProperties . get ( propertyName ) ; PropertyProxy proxy = oldInstance instanceof PropertyProxy ? ( PropertyProxy ) oldInstance : null ; if ( ! override && oldInstance != null && proxy == null ) { return ; } registeredProperties . put ( propertyName , instance ) ; // If previous registrant was a property proxy, transfer its value to new registrant. if ( proxy != null ) { try { proxy . getPropertyInfo ( ) . setPropertyValue ( instance , proxy . getValue ( ) ) ; } catch ( Exception e ) { throw createChainedException ( "Register Property" , e , null ) ; } } } }
Registers a named property to the container . Using this a plugin can expose a property for serialization and deserialization .