struct Athena::Serializer::PropertyMetadata(IvarType, ValueType, ClassType)

Overview

Stores metadata related to a specific property.

This includes its name (internal and external), value, versions/groups, and any aliases.

Included Modules

Defined in:

property_metadata.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(name : String, external_name : String, annotation_configurations : ADI::AnnotationConfigurations, value : ValueType = nil, skip_when_empty : Bool = false, groups : Enumerable(String) = ["default"], aliases : Array(String) = [] of String, since_version : SemanticVersion | Nil = nil, until_version : SemanticVersion | Nil = nil, type : IvarType.class = IvarType, class __arg0 : ClassType.class = ClassType) #

[View source]

Instance Method Detail

def aliases : Array(String) #

Deserialize this property from the property's name or any name in aliases.

See ASRA::Name.


[View source]
def annotation_configurations : ADI::AnnotationConfigurations #

Returns annotations configurations registered via ADI..configuration_annotation and applied to this property.

These configurations could then be accessed within an ASR::ExclusionStrategies::ExclusionStrategyInterface.


[View source]
def class : ClassType.class #

The class that the property is part of.


[View source]
def external_name : String #

The name that should be used for serialization/deserialization.


[View source]
def groups : Set(String) #

The serialization groups this property belongs to.

See ASR::ExclusionStrategies::Groups.


[View source]
def name : String #

The name of the property.


[View source]
def since_version : SemanticVersion | Nil #

Represents the first version this property is available.

See ASR::ExclusionStrategies::Version.


[View source]
def since_version=(since_version : SemanticVersion | Nil) #

Represents the first version this property is available.

See ASR::ExclusionStrategies::Version.


[View source]
def skip_when_empty? : Bool #

If this property should not be serialized if it is empty.

See ASRA::SkipWhenEmpty.


[View source]
def type : IvarType.class #

The type of the property.


[View source]
def until_version : SemanticVersion | Nil #

Represents the last version this property was available.

See ASR::ExclusionStrategies::Version.


[View source]
def until_version=(until_version : SemanticVersion | Nil) #

Represents the last version this property was available.

See ASR::ExclusionStrategies::Version.


[View source]
def value : ValueType #

The value of the property (when serializing).


[View source]