Calcolo mediante giunzioni impostate
Questa funzionalità si occupa della routing delle fibre logiche nei cavi attraverso le giunzioni esistenti sulle fibre fisiche (RCablesFibers). Il processo segue un percorso basato sulle connessioni tra giunzioni e sezioni di cavo, aggiornando i riferimenti delle fibre logiche lungo il tragitto.
Utilizzato per ora solamente da Unidata e da AB.
Metodi Principali:
routingRCablesFibersInTheCable metodo ricorsivo.
-
Verifica che
pkRCableFibersnon sia nullo e che non esista un ciclo nella routing. -
Recupera l'entità
RCablesFiberscorrispondente e aggiorna la listalistRCFForUpdate. -
Ottiene i dati di routing sulla giunzione corrispondente.
-
Determina il prossimo
RCablesFibersda processare tramitegetNextRCFPkTheCable. -
Se il prossimo elemento coincide con il primo della lista, termina l'esecuzione per evitare cicli.
-
Verifica la validità del prossimo elemento e continua la routing ricorsivamente.
Parametri:
-
pkRCableFibers: Identificativo della fibra fisica corrente. -
associateRcableFibersConfig: Configurazione della routing.
getRoutingOnJunctionData
-
Recupera le informazioni di routing sulla giunzione (routingData) in base alla direzione (
is_in).
I dati vengono raggruppati in un model specifico RoutingOnJunctionData:
pk_pcab_section: sezione corrente.
pk_pcab_nodes: nodo iniziale della sezione.
is_inverted: Indica se la sezione è invertita.
ordine: Ordine della sezione.
fk_cables: Cavo della sezione.
isNodeNLC: Indica se il nodo corrente è di tipo NLC.
isNodePCN: Indica se il nodo corrente è di PCN.
fk_logic_splice: pk del nodo NLC gemello.
pk_r_cables_fibers: prossima fibra fisica connessa.
fiber_number: Numero della fibra nel cavo.
stopFindSplitter: Indica se fermare la ricerca se si incontra uno splitter.
Parametri:
-
pkRCableFibers: Identificativo della fibra fisica. -
associateRcableFibersConfig: Configurazione attuale della routing.
checkLoopRCableFibers
-
Controlla se la fibra fisica corrente è già presente nella lista di routing, prevenendo loop.
Parametri:
-
pkRCablesFibers: prossima fibra fisica da occupare. -
listRCFForUpdate: Lista degli elementi della routing attuale.
getNextRCFPkTheCable
-
Determina quale sia il prossimo
RCablesFibersnel percorso in base alle condizioni di routing. -
Se la routing può proseguire su giunzioni o sullo stesso cavo, restituisce il prossimo ID, utilizzando il metodo relativo.
-
Se la routing è per CD e non è su un nodo PCN, lancia un'eccezione. Perchè questa stessa parte viene utilizzata dal calcolo primaria di CD.
Parametri:
-
fibLogical: Informazioni sulle fibre logiche. -
routingData: Dati di routing sulla giunzione corrente.
getNextRcfOnSameCable
-
Controlla se la routing può proseguire sullo stesso cavo.
-
Se l'applicazione è di tipo AB e c'è uno splitter nel nodo, termina la routing.
-
Se il nodo non è di tipo NLC, calcola la prossima sezione di cavo.
-
Se manca il
fk_logic_splicee il nodo è di tipo NLC, lancia un'eccezione. -
Trova la prossima sezione e determina il prossimo
RCablesFibers.
Parametri:
-
routingData
throwNullLogicSpliceException
-
Recupera informazioni sul nodo.
-
Lancia un'eccezione se il
fk_logic_spliceè nullo, segnalando un errore di routing.
Parametri:
-
routingData
checkExistsSplitterInThePcabNodes
-
Verifica se esistono splitter nel nodo corrente.
Parametri:
-
stopFindSplitter: Flag per determinare se fermarsi al primo splitter incontrato. -
pkNode: Identificativo del nodo.
checkNextRcfInRouting
-
Controlla se il prossimo
RCablesFiberscorrisponde all'elemento iniziale, in tal caso lancia un'eccezione per prevenire loop.
Parametri:
-
nextRcfPk: Identificativo della prossima fibra fisica. -
associateRcableFibersConfig: Oggetto di stato. -
startRcfPk: Identificativo della fibra fisica iniziale del percorso.
getNextSectionOnCable
-
Determina la prossima sezione di cavo in base all'ordine e alla direzione del routing.
Parametri:
-
routing: Routing attuale.
Gestione delle Eccezioni
-
Controllo di cicli nei percorsi con
checkLoopRCableFibers. -
Validazione di dati nulli e lanci di eccezioni con messaggi di errore chiari.
-
Logging degli errori tramite
GisfoExceptionper una migliore tracciabilità.
No Comments