Skip to main content

Calcolo Fibre per Nodo

La classe CalcPcabNodeFibersLogical implementa l'interfaccia CalcFibersLogical e si occupa del calcolo logico delle fibre per i nodi ottici. È un componente Spring, gestito tramite iniezione delle dipendenze con @Autowired. La classe utilizza diversi servizi e DAO per eseguire operazioni su database e gestire la logica di calcolo.

Vedi Lezione 09 - Calcolo per singolo nodo

Dipendenze

La classe dipende dai seguenti componenti:

  • DAO (Data Access Object):

    • DaoPcabNodes: gestione dei nodi PCAB nel database.

    • DaoProjects: gestione dei progetti.

    • DaoFibersLogical: gestione delle fibre logiche.

  • Servizi:

    • UtilService: utilità generali.

    • ServiceCommonsMultiutenza: gestione utenti multiutenza.

    • ServiceFibersLogicalNode: gestione del calcolo delle fibre per i nodi.

    • ServiceFibersLogical: gestione logica delle fibre.

  • Utility e Manager:

    • CalcFibLogicalMessages: gestione messaggi di errore e avviso.

    • CalcFibersReportManager: gestione reportistica per il calcolo delle fibre.

    • CalcLoggingUtils: utility per la gestione dei log.

run(CalcFibersLogicalConfig calcFibersLogicalConfig) throws GisfoException

Esegue il calcolo logico delle fibre per un nodo ottico specifico.

Passaggi del metodo run:
  1. Verifica Preliminare (checkBeforeCalcFiber):

    • Controlla se il nome operatore è valorizzato.

    • Verifica se esistono aree reclamate nel drawing.

    • Controlla se il calcolo è già stato avviato.

    • Verifica se il nodo è disponibile per il calcolo.

  2. Pulizia delle fibre logiche (reclamationFibersLogical):

    • Cancella le fibre logiche incongruenti per il nodo specificato.

  3. Esecuzione del calcolo (doCalcFiber):

    • Avvia il log del calcolo.

    • In base alla configurazione, calcola il percorso delle fibre per il nodo o corregge le fibre logiche di un progetto.

    • In caso di errore, registra il problema nei log e nel report.

    • Termina il log del calcolo.

Metodi nel flusso di calcolo

checkBeforeCalcFiber(CalcFibersLogicalConfig calcFibersLogicalConfig) throws GisfoException
  • Effettua controlli preliminari sul nodo e sul drawing prima di avviare il calcolo.

  • Se il calcolo è già stato avviato per il progetto, solleva un'eccezione GisfoException.

checkIfNodeIsAvailableForCalcType(CalcFibersLogicalConfig calcFibersLogicalConfig) throws GisfoException
  • Verifica che il nodo sia idoneo al calcolo delle fibre logiche.

  • Se il nodo non è valido per il calcolo, solleva un'eccezione GisfoException.

reclamationFibersLogical(Long pkPcabNode)
  • Cancella dal database le fibre logiche incongruenti per il nodo specificato.

doCalcFiber(CalcFibersLogicalConfig calcFibersLogicalConfig)
  • Esegue il calcolo per le fibre del nodo e gestisce eventuali errori. Avvia un normale calcolo fibre di secondaria per un singolo nodo Z.

notifyStartCalcFiber(CalcFibersLogicalConfig calcFibersLogicalConfig)
  • Registra nei log i dettagli della richiesta di calcolo.

updateProjectCalcStatus(CalcFibersLogicalConfig calcFibersLogicalConfig, Boolean calcStatus, String serverIp)
  • Aggiorna lo stato del calcolo logico delle fibre nel database.


Gestione delle Eccezioni

La classe può sollevare GisfoException nei seguenti casi:

  • Il calcolo delle fibre è già stato avviato per il progetto.

  • Il nodo ottico non è valido per il calcolo delle fibre logiche.

  • Errori generali durante l'esecuzione del calcolo.