The base class for all value objects and structs.
    
        Supports read-only properties by marking them as protected.
In this case they will only be writable using constructor, and need to be documented
using @property-read <type> <$var> annotation in class doc in addition to inline property doc.
Writable properties must be public and must be documented inline.
    
                    
    
    
    
    
        Methods
            
    Construct object optionally with a set of properties.
    
        
            
                | 
                    
                 | 
                
                    
                        public __construct([array<string, mixed> $properties = [] ]) 
                     
                 | 
            
        
    
 
    
    
        Readonly properties values must be set using $properties as they aren't writable anymore
after object has been created.
    
    Parameters
    
        
            
                | Name | 
                Type | 
                Default value | 
                Description | 
            
        
        
                            
                    | 
                        $properties
                     | 
                    
                        array<string, mixed>
                     | 
                    
                                                                                    []
                                                                         | 
                    
                                                    -
                                             | 
                
                    
    
                    
            
    
        
            
                | 
                    
                 | 
                
                    
                        public getDescriptions() : array<string, string> 
                     
                 | 
            
        
    
 
    
    Return values
    array<string, string>
                        
            
    
    Return values
    AttributeGroupInterface|null
                        
            
    
        
            
                | 
                    
                 | 
                
                    
                        public getIdentifier() : string|null 
                     
                 | 
            
        
    
 
    
    Return values
    string|null
                        
            
    
        
            
                | 
                    
                 | 
                
                    
                        public getNames() : array<string, string> 
                     
                 | 
            
        
    
 
    
    Return values
    array<string, string>
                        
            
    
        
            
                | 
                    
                 | 
                
                    
                        public getOptions() : array<string, mixed>|null 
                     
                 | 
            
        
    
 
    
    Return values
    array<string, mixed>|null
                        
            
    
        
            
                | 
                    
                 | 
                
                    
                        public getPosition() : int|null 
                     
                 | 
            
        
    
 
    
    Return values
    int|null
                        
            
    
        
            
                | 
                    
                 | 
                
                    
                        public setDescription(string $languageCode, string $description) : void 
                     
                 | 
            
        
    
 
    
    Parameters
    
        
            
                | Name | 
                Type | 
                Default value | 
                Description | 
            
        
        
                            
                    | 
                        $languageCode
                     | 
                    
                        string
                     | 
                    
                                                    -
                                             | 
                    
                                                    -
                                             | 
                
                            
                    | 
                        $description
                     | 
                    
                        string
                     | 
                    
                                                    -
                                             | 
                    
                                                    -
                                             | 
                
                    
    
                    
            
    
        
            
                | 
                    
                 | 
                
                    
                        public setDescriptions(array<string, string> $descriptions) : void 
                     
                 | 
            
        
    
 
    
    Parameters
    
        
            
                | Name | 
                Type | 
                Default value | 
                Description | 
            
        
        
                            
                    | 
                        $descriptions
                     | 
                    
                        array<string, string>
                     | 
                    
                                                    -
                                             | 
                    
                                                    -
                                             | 
                
                    
    
                    
            
    
    Parameters
    
                    
            
    
        
            
                | 
                    
                 | 
                
                    
                        public setIdentifier(string|null $identifier) : void 
                     
                 | 
            
        
    
 
    
    Parameters
    
        
            
                | Name | 
                Type | 
                Default value | 
                Description | 
            
        
        
                            
                    | 
                        $identifier
                     | 
                    
                        string|null
                     | 
                    
                                                    -
                                             | 
                    
                                                    -
                                             | 
                
                    
    
                    
            
    
        
            
                | 
                    
                 | 
                
                    
                        public setName(string $languageCode, string $name) : void 
                     
                 | 
            
        
    
 
    
    Parameters
    
        
            
                | Name | 
                Type | 
                Default value | 
                Description | 
            
        
        
                            
                    | 
                        $languageCode
                     | 
                    
                        string
                     | 
                    
                                                    -
                                             | 
                    
                                                    -
                                             | 
                
                            
                    | 
                        $name
                     | 
                    
                        string
                     | 
                    
                                                    -
                                             | 
                    
                                                    -
                                             | 
                
                    
    
                    
            
    
        
            
                | 
                    
                 | 
                
                    
                        public setNames(array<string, string> $names) : void 
                     
                 | 
            
        
    
 
    
    Parameters
    
        
            
                | Name | 
                Type | 
                Default value | 
                Description | 
            
        
        
                            
                    | 
                        $names
                     | 
                    
                        array<string, string>
                     | 
                    
                                                    -
                                             | 
                    
                                                    -
                                             | 
                
                    
    
                    
            
    
        
            
                | 
                    
                 | 
                
                    
                        public setOptions(array<string, mixed>|null $options) : void 
                     
                 | 
            
        
    
 
    
    Parameters
    
        
            
                | Name | 
                Type | 
                Default value | 
                Description | 
            
        
        
                            
                    | 
                        $options
                     | 
                    
                        array<string, mixed>|null
                     | 
                    
                                                    -
                                             | 
                    
                                                    -
                                             | 
                
                    
    
                    
            
    
        
            
                | 
                    
                 | 
                
                    
                        public setPosition(int|null $position) : void 
                     
                 | 
            
        
    
 
    
    Parameters
    
        
            
                | Name | 
                Type | 
                Default value | 
                Description | 
            
        
        
                            
                    | 
                        $position
                     | 
                    
                        int|null
                     | 
                    
                                                    -
                                             | 
                    
                                                    -
                                             | 
                
                    
    
                    
            
    Returns list of available properties' names.
    
        
            
                | 
                    
                 | 
                
                    
                        protected getProperties([array<int, string> $dynamicProperties = [] ]) : array<int, string> 
                     
                 | 
            
        
    
 
    
    
        Override to add dynamic properties.
    
    Parameters
    
        
            
                | Name | 
                Type | 
                Default value | 
                Description | 
            
        
        
                            
                    | 
                        $dynamicProperties
                     | 
                    
                        array<int, string>
                     | 
                    
                                                                                    []
                                                                         | 
                    
                                                        
         Additional dynamic properties exposed on the object 
    
                                             | 
                
                    
    
    Return values
    array<int, string>