Ordinamento cavi
Il metodo orderCNOPTAggregations() ordina le aggregazioni di fibre logiche per i nodi A-Z basandosi sull'ordine dei cavi associati al CNO o al GC tattraverso i campi fk_cno e fk_gc.
-
calcFibSup(CalcFibLogicalSupport): Contiene la mappa delle aggregazioni di fibre e dei cavi. -
List<AggregatedFibersLogicalByAZNodes>: Lista ordinata delle aggregazioni di fibre logiche.
Per ogni CNO del progetto:
-
-
Ottiene la mappa dei cavi per il progetto.
-
Ordina i cavi basandosi sulla logica specifica.
-
Ordina le aggregazioni di fibre in base all'ordine dei cavi.
-
getCNOPTmapCables recupera e organizza i cavi CNO-PT associati a un determinato CNO.
-
fkCno(Long): Identificativo del CNO. -
calcFibSup(CalcFibLogicalSupport): Contiene le informazioni sui cavi e le aggregazioni.
Ritorna:
-
HashMap<Long, List<PcabSection>>: Mappa dei cavi e le relative sezioni che portano al primo GC.
Logica:
-
Recupera i cavi associati al CNO.
-
Verifica la presenza dell'aggregazione di fibre nel cavo e determina la routing corretta, prelevandola dal db se mancante.
-
Popola la mappa con i cavi e le loro sezioni.
orderAggregations ordina le aggregazioni delle fibre logiche in base all'ordine dei cavi.
-
mapAggregFibers(HashMap<Long, List<AggregatedFibersLogicalByAZNodes>>): Mappa delle aggregazioni di fibre. -
listPkCableCno(List<Long>): Lista ordinata degli identificativi dei cavi.
Ritorno:
-
List<AggregatedFibersLogicalByAZNodes>: Lista ordinata delle aggregazioni di fibre logiche.
Logica:
-
Ordina le aggregazioni in base all'ordine dei cavi.
-
Separa le aggregazioni di tipo
SPARE_ROEeINTEGRATIVO_GRE, che vengono aggiunte alla fine, perché vanno occupate sempre per ultime.
topologicalSortCables esegue un ordinamento topologico dei cavi basandosi sulla dipendenza tra di loro.
-
drawing(Long): drawing di riferimento. -
mapCables(HashMap<Long, List<PcabSection>>): Mappa dei cavi e delle loro sezioni. -
fkNode(Long): Nodo di riferimento.
Ritorno:
-
List<Long>: Lista ordinata di identificativi dei cavi.
Logica:
-
Identifica i cavi senza dipendenze e li ordina.
-
Se un cavo ha dipendenze non ancora risolte, viene messo in uno stack per essere processato successivamente.
-
Se non è possibile ordinare alcuni cavi a causa di dipendenze cicliche, viene sollevata un'eccezione.
handleCableNotDepenceStack gestisce i cavi senza dipendenze, ordinandoli correttamente.
-
mapCables(HashMap<Long, List<PcabSection>>): Mappa dei cavi. -
listOrdered(List<Long>): Lista ordinata dei cavi. -
stackCablesToOrder(List<Long>): Stack dei cavi in attesa di essere ordinati. -
cablesNotDepence(List<Long>): Lista dei cavi senza dipendenze.
Logica:
-
Aggiunge i cavi senza dipendenze alla lista ordinata.
-
Se non ci sono cavi disponibili, ne preleva uno dallo stack.
findCableParentNodeOrderAndLength trova il nodo padre di un cavo e la sua lunghezza totale.
-
pkCable(Long): Identificativo del cavo. -
listPcabSection(List<PcabSection>): Lista delle sezioni del cavo. -
mapperCavi(MapperCavi): Mapper per queries dedicate ai cavi. -
lengthTotal(int): Lunghezza totale del cavo.
Ritorno:
-
int[]: Array contenente l'ordine del nodo e la lunghezza del cavo.
Logica:
-
Identifica la sezione del cavo che contiene il nodo padre.
-
Recupera l'ordine del nodo e la lunghezza di riferimento.
-
Se non trova dati validi, restituisce un array con valori predefiniti.
Gestione delle Eccezioni
getNotOrderedCables restituisce una stringa contenente gli identificativi dei cavi che non sono stati ancora ordinati.
-
mapCables(HashMap<Long, List<PcabSection>>): Mappa dei cavi. -
listOrdered(List<Long>): Lista dei cavi già ordinati.
Ritorno:
-
String: Identificativi dei cavi non ordinati separati da virgole.
Logica:
-
Filtra i cavi non ancora ordinati dalla mappa.
-
Concatena gli identificativi in una stringa separati da virgole.
No Comments