public function setDisplayName( $displayName )
    {
        if ( empty( $displayName ) )
        {
            $displayName = array();
        }
        else if ( $displayName instanceof Traversable )
        {
            $displayName = ArrayUtils::iteratorToArray( $displayName );
        }
        else if ( ! is_array( $displayName ) )
        {
            $displayName = (array) $displayName;
        }

        if ( ! isset( $displayName[static::FALLBACK_LOCALE] ) )
        {
            reset( $displayName );
            $key = key( $displayName );
            $displayName[static::FALLBACK_LOCALE] = $displayName[$key];
            unset( $displayName[$key] );
        }

        $this->displayName = $displayName;
        return $this;
    }