buildDefValue function

void buildDefValue(
  1. dynamic value,
  2. BuildingContext context,
  3. int level
)

Implementation

void buildDefValue(
    dynamic value,
    BuildingContext context,
    int level
    )
{
    var indent = ' ' * ( level * context.levelSpaceCount );

    if ( value == undefined )
    {
        context.lineArray.add( indent + 'undefined' );
    }
    else if ( value == null )
    {
        context.lineArray.add( indent + 'null' );
    }
    else if ( value is bool )
    {
        context.lineArray.add( indent + value.toString() );
    }
    else if ( value is num )
    {
        if ( value.isNaN )
        {
            context.lineArray.add( indent + 'NaN' );
        }
        else if ( !value.isFinite )
        {
            context.lineArray.add( indent + ( value > 0 ? 'Infinity' : '-Infinity' ) );
        }
        else
        {
            context.lineArray.add( indent + value.toString() );
        }
    }
    else if ( value is String )
    {
        buildDefString( value, context, level );
    }
    else if ( value is List )
    {
        context.lineArray.add( indent + '[' );

        for ( var item in value )
        {
            buildDefValue( item, context, level + 1 );
        }

        context.lineArray.add( indent + ']' );
    }
    else if ( value is Map<String, dynamic> )
    {
        context.lineArray.add( indent + '{' );

        for ( var key in value.keys )
        {
            if ( value.containsKey( key ) )
            {
                buildDefString( key, context, level + 1 );
                buildDefValue( value[ key ], context, level + 2 );
            }
        }

        context.lineArray.add( indent + '}' );
    }
    else if ( value is Map<dynamic, dynamic> )
    {
        context.lineArray.add( indent + '(' );

        for ( var entry in value.entries )
        {
            buildDefValue( entry.key, context, level + 1 );
            buildDefValue( entry.value, context, level + 2 );
        }

        context.lineArray.add( indent + ')' );
    }
}