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:
-
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.
-
-
Pulizia delle fibre logiche (
reclamationFibersLogical):-
Cancella le fibre logiche incongruenti per il nodo specificato.
-
-
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.
No Comments