package AsposeWordsCloud::Object::Font;

require 5.6.0;
use strict;
use warnings;
use utf8;
use JSON qw(decode_json);
use Data::Dumper;
use Module::Runtime qw(use_module);
use Log::Any qw($log);
use Date::Parse;
use DateTime;

use base "AsposeWordsCloud::Object::BaseObject";

#
#
#
#NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually.
#

my $swagger_types = {
    'AllCaps' => 'boolean',
    'Bidi' => 'boolean',
    'Bold' => 'boolean',
    'BoldBi' => 'boolean',
    'Border' => 'Border',
    'Color' => 'string',
    'ComplexScript' => 'boolean',
    'DoubleStrikeThrough' => 'boolean',
    'Emboss' => 'boolean',
    'Engrave' => 'boolean',
    'Hidden' => 'boolean',
    'HighlightColor' => 'string',
    'Italic' => 'boolean',
    'ItalicBi' => 'boolean',
    'Kerning' => 'double',
    'LocaleId' => 'int',
    'LocaleIdBi' => 'int',
    'LocaleIdFarEast' => 'int',
    'Name' => 'string',
    'NameAscii' => 'string',
    'NameBi' => 'string',
    'NameFarEast' => 'string',
    'NameOther' => 'string',
    'NoProofing' => 'boolean',
    'Outline' => 'boolean',
    'Position' => 'double',
    'Scaling' => 'int',
    'Shadow' => 'boolean',
    'Size' => 'double',
    'SizeBi' => 'double',
    'SmallCaps' => 'boolean',
    'Spacing' => 'double',
    'StrikeThrough' => 'boolean',
    'StyleIdentifier' => 'StyleIdentifier',
    'StyleName' => 'string',
    'Subscript' => 'boolean',
    'Superscript' => 'boolean',
    'TextEffect' => 'TextEffect',
    'Underline' => 'Underline',
    'UnderlineColor' => 'string',
    'link' => 'Link'
};

my $attribute_map = {
    'AllCaps' => 'AllCaps',
    'Bidi' => 'Bidi',
    'Bold' => 'Bold',
    'BoldBi' => 'BoldBi',
    'Border' => 'Border',
    'Color' => 'Color',
    'ComplexScript' => 'ComplexScript',
    'DoubleStrikeThrough' => 'DoubleStrikeThrough',
    'Emboss' => 'Emboss',
    'Engrave' => 'Engrave',
    'Hidden' => 'Hidden',
    'HighlightColor' => 'HighlightColor',
    'Italic' => 'Italic',
    'ItalicBi' => 'ItalicBi',
    'Kerning' => 'Kerning',
    'LocaleId' => 'LocaleId',
    'LocaleIdBi' => 'LocaleIdBi',
    'LocaleIdFarEast' => 'LocaleIdFarEast',
    'Name' => 'Name',
    'NameAscii' => 'NameAscii',
    'NameBi' => 'NameBi',
    'NameFarEast' => 'NameFarEast',
    'NameOther' => 'NameOther',
    'NoProofing' => 'NoProofing',
    'Outline' => 'Outline',
    'Position' => 'Position',
    'Scaling' => 'Scaling',
    'Shadow' => 'Shadow',
    'Size' => 'Size',
    'SizeBi' => 'SizeBi',
    'SmallCaps' => 'SmallCaps',
    'Spacing' => 'Spacing',
    'StrikeThrough' => 'StrikeThrough',
    'StyleIdentifier' => 'StyleIdentifier',
    'StyleName' => 'StyleName',
    'Subscript' => 'Subscript',
    'Superscript' => 'Superscript',
    'TextEffect' => 'TextEffect',
    'Underline' => 'Underline',
    'UnderlineColor' => 'UnderlineColor',
    'link' => 'link'
};

# new object
sub new { 
    my ($class, %args) = @_; 
    my $self = { 
        #
        'AllCaps' => $args{'AllCaps'}, 
        #
        'Bidi' => $args{'Bidi'}, 
        #
        'Bold' => $args{'Bold'}, 
        #
        'BoldBi' => $args{'BoldBi'}, 
        #
        'Border' => $args{'Border'}, 
        #
        'Color' => $args{'Color'}, 
        #
        'ComplexScript' => $args{'ComplexScript'}, 
        #
        'DoubleStrikeThrough' => $args{'DoubleStrikeThrough'}, 
        #
        'Emboss' => $args{'Emboss'}, 
        #
        'Engrave' => $args{'Engrave'}, 
        #
        'Hidden' => $args{'Hidden'}, 
        #
        'HighlightColor' => $args{'HighlightColor'}, 
        #
        'Italic' => $args{'Italic'}, 
        #
        'ItalicBi' => $args{'ItalicBi'}, 
        #
        'Kerning' => $args{'Kerning'}, 
        #
        'LocaleId' => $args{'LocaleId'}, 
        #
        'LocaleIdBi' => $args{'LocaleIdBi'}, 
        #
        'LocaleIdFarEast' => $args{'LocaleIdFarEast'}, 
        #
        'Name' => $args{'Name'}, 
        #
        'NameAscii' => $args{'NameAscii'}, 
        #
        'NameBi' => $args{'NameBi'}, 
        #
        'NameFarEast' => $args{'NameFarEast'}, 
        #
        'NameOther' => $args{'NameOther'}, 
        #
        'NoProofing' => $args{'NoProofing'}, 
        #
        'Outline' => $args{'Outline'}, 
        #
        'Position' => $args{'Position'}, 
        #
        'Scaling' => $args{'Scaling'}, 
        #
        'Shadow' => $args{'Shadow'}, 
        #
        'Size' => $args{'Size'}, 
        #
        'SizeBi' => $args{'SizeBi'}, 
        #
        'SmallCaps' => $args{'SmallCaps'}, 
        #
        'Spacing' => $args{'Spacing'}, 
        #
        'StrikeThrough' => $args{'StrikeThrough'}, 
        #
        'StyleIdentifier' => $args{'StyleIdentifier'}, 
        #
        'StyleName' => $args{'StyleName'}, 
        #
        'Subscript' => $args{'Subscript'}, 
        #
        'Superscript' => $args{'Superscript'}, 
        #
        'TextEffect' => $args{'TextEffect'}, 
        #
        'Underline' => $args{'Underline'}, 
        #
        'UnderlineColor' => $args{'UnderlineColor'}, 
        #
        'link' => $args{'link'}
    }; 

    return bless $self, $class; 
}  

# get swagger type of the attribute
sub get_swagger_types {
    return $swagger_types;
}

# get attribute mappping
sub get_attribute_map {
    return $attribute_map;
}

1;
