public static function generateSuffixedIdentName( array $identNames, $suffix )
    {
        $ident = implode( "_", $identNames ) . "_" . $suffix;
        $i = 0;
        $last = -1;

        while ( strlen( $ident ) > self::IDENTIFIER_MAX_LENGTH )
        {
            if ( strlen( $identNames[$i] ) > 1 || $last == $i )
            {
                $identNames[$i] = substr( $identNames[$i], 0, strlen( $identNames[$i] ) - 1 );
                $last = $i;
            }
            $i = ( $i + 1 ) % count( $identNames );
            $ident = implode( "_", $identNames ) . "_" . $suffix;
        }
        return $ident;
    }