public void verifyNet( Pipe[] networkPipes, IHMProgressMonitor pm ) {
        /*
         * serve per verificare che ci sia almeno un'uscita. True= esiste
         * un'uscita
         */
        boolean isOut = false;
        if (networkPipes != null) {
            /* VERIFICA DATI GEOMETRICI DELLA RETE */
            // Per ogni stato
            int length = networkPipes.length;

            int kj;

            for( int i = 0; i < length; i++ )

            {
                // verifica che la rete abbia almeno un-uscita.
                if (networkPipes[i].getIdPipeWhereDrain() == 0) {
                    isOut = true;
                }
                /*
                 * Controlla che non ci siano errori nei dati geometrici della
                 * rete, numero ID pipe in cui drena i >del numero consentito
                 * (la numerazione va da 1 a length
                 */
                if (networkPipes[i].getIndexPipeWhereDrain() > length) {
                    pm.errorMessage(msg.message("trentoP.error.pipe"));
                    throw new IllegalArgumentException(msg.message("trentoP.error.pipe"));
                }
                /*
                 * Da quanto si puo leggere nel file di input fossolo.geo in
                 * Fluide Turtle, ogni stato o sottobacino e contraddistinto da
                 * un numero crescente che va da 1 a n=numero di stati; n e
                 * anche pari a data->nrh. Inoltre si apprende che la prima
                 * colonna della matrice in fossolo.geo riporta l'elenco degli
                 * stati, mentre la seconda colonna ci dice dove ciascun stato
                 * va a drenare.(NON E AMMESSO CHE LO STESSO STATO DRENI SU PIU
                 * DI UNO!!) Questa if serve per verificare che non siano
                 * presenti condotte non dichiarate, ovvero piu realisticamente
                 * che non ci sia un'errore di numerazione o battitura. In altri
                 * termini lo stato analizzato non puo drenare in uno stato al
                 * di fuori di quelli esplicitamente dichiarati o dell'uscita,
                 * contradistinta con ID 0
                 */
                kj = i;
                /*
                 * Terra conto degli stati attraversati dall'acqua che inizia a
                 * scorrere a partire dallo stato analizzato
                 */

                int count = 0;
                /*
                 * Seguo il percorso dell'acqua a partire dallo stato corrente
                 */
                while( networkPipes[kj].getIdPipeWhereDrain() != 0 ) {
                    kj = networkPipes[kj].getIndexPipeWhereDrain();
                    /*
                     * L'acqua non puo finire in uno stato che con sia tra
                     * quelli esplicitamente definiti, in altre parole il
                     * percorso dell'acqua non puo essere al di fuori
                     * dell'inseme dei dercorsi possibili
                     */
                    if (kj > length) {
                        pm.errorMessage(msg.message("trentoP.error.drainPipe") + kj);
                        throw new IllegalArgumentException(msg.message("trentoP.error.drainPipe") + kj);
                    }

                    count++;
                    if (count > length) {
                        pm.errorMessage(msg.message("trentoP.error.pipe"));
                        throw new IllegalArgumentException(msg.message("trentoP.error.pipe"));
                    }
                    /*
                     * La variabile count mi consente di uscire dal ciclo while,
                     * nel caso non ci fosse [kj][2]=0, ossia un'uscita. Infatti
                     * partendo da uno stato qualsiasi il numero degli stati
                     * attraversati prima di raggiungere l'uscita non puo essere
                     * superiore al numero degli stati effettivamente presenti.
                     * Quando questo accade vuol dire che l'acqua e in un loop
                     * chiuso
                     */
                }

            }
            /*
             * Non si e trovato neanche un uscita, quindi Trento_p da errore di
             * esecuzione, perchè almeno una colonna deve essere l'uscita
             */
            if (isOut == false) {
                pm.errorMessage(msg.message("trentoP.error.noout"));
                throw new IllegalArgumentException(msg.message("trentoP.error.noout"));
            }

        } else {
            throw new IllegalArgumentException(msg.message("trentoP.error.incorrectmatrix"));
        }

    }
public void verifyNet ( Pipe [ ] networkPipes , IHMProgressMonitor pm ) { boolean isOut = false ; if ( networkPipes != null ) { int length = networkPipes . length ; int kj ; for ( int i = 0 ; i < length ; i ++ ) { if ( networkPipes [ i ] . getIdPipeWhereDrain ( ) == 0 ) { isOut = true ; } if ( networkPipes [ i ] . getIndexPipeWhereDrain ( ) > length ) { pm . errorMessage ( msg . message ( "trentoP.error.pipe" ) ) ; throw new IllegalArgumentException ( msg . message ( "trentoP.error.pipe" ) ) ; } kj = i ; int count = 0 ; while ( networkPipes [ kj ] . getIdPipeWhereDrain ( ) != 0 ) { kj = networkPipes [ kj ] . getIndexPipeWhereDrain ( ) ; if ( kj > length ) { pm . errorMessage ( msg . message ( "trentoP.error.drainPipe" ) + kj ) ; throw new IllegalArgumentException ( msg . message ( "trentoP.error.drainPipe" ) + kj ) ; } count ++ ; if ( count > length ) { pm . errorMessage ( msg . message ( "trentoP.error.pipe" ) ) ; throw new IllegalArgumentException ( msg . message ( "trentoP.error.pipe" ) ) ; } } } if ( isOut == false ) { pm . errorMessage ( msg . message ( "trentoP.error.noout" ) ) ; throw new IllegalArgumentException ( msg . message ( "trentoP.error.noout" ) ) ; } } else { throw new IllegalArgumentException ( msg . message ( "trentoP.error.incorrectmatrix" ) ) ; } }
Verify if the network is consistent.

<p>
<ol>
<li>Verify that the <i>ID</i> of a pipe is a value less than the number
of pipe.
<li>Verify that the pipe where, the current pipe drain, have an <i>ID</i>
less than the number of pipes.
<li>Verify that there is an <b>outlet<b> in the net.
</ol>
</p>

@param networkPipes
the array which rappresent the net.
@param pm
the progerss monitor.
@throws IllegalArgumentException
if the net is unconsistent.