It is currently 28 January 2023, 3:25 Advanced search

Numero cardinale della classe applicativa

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

Numero cardinale della classe applicativa

Postby theguru » 10 November 2022, 17:24

Buongiorno.
Vorrei suggerire l'implementazione di metodo, nell'ambito di IDDocument: tale metodo dovrebbe restituire un semplice numero cardinale, un indice se vogliamo, che identifichi univocamente la classe all'interno dello spazio della applicazione.
Potrebbe essere accessibile sia in versione statica che come metodo istanziato (sulla falsariga di .typename() e .classname()).

Mi azzardo a chiederlo perchè, intuitivamente, immagino che già esista qualcosa di simile nei metadati del progetto inde, semplicemente non venga esposto a noi utilizzatori.

Premetto che mi già mi sono creato autonomamente tale funzione, che tuttavia passa attraverso il metodo .typename(), cerca in seguito in un IDmap (che popolo all'init della applicazione), ed ottiene alla fine il proprio indice.
Screenshot 2022-11-10 at 18.18.45.png
Screenshot 2022-11-10 at 18.18.45.png (5.83 KiB) Viewed 113 times

Non sarebbe male averlo nativo, quindi con performance molto migliori, più adatte alla elaborazione massiva.

Aggiungo qualche dettaglio (lettura opzionale :)), in relazione alla sua utilità: desidero spesso memorizzare metadati di vario genere (es: un array di indici di proprietà di un certo tipo), condivisi chiaramente tra tutte le istanze di una determinata classe.
Lo scopo finale è quello di creare una personale "mappa della applicazione" che possa reagire molto più velocemente rispetto alla reflection. In altri termini, in fase di inizializzazione la reflection popola array e IDmap con questi metadati, che sono quindi disponibili a runtime.

Faccio un esempio ancora più specifico:
- immaginiamo che io abbia una serie di campi/proprietà di classe, dedicati al filtraggio di una qualche collection
- voglio creare una funzione generalizzata che annulli tutti quanti i campi di cui sopra
- quindi tramite reflection cerco tra tutte le proprietà della istanza, quando ne trovo uno con uno specifico tag la setto a null
oppure:
- una tantum in fase di init (sempre runtime) creo un array con gli indici delle proprietà, e lo inserisco in un array/matrice, che ha come indice il numero della classe (una banale matrice di interi, alla fine).
- ogni volta che voglio avere accesso a quelle proprietà faccio un for sull'array ed ottengo gli indici molto più velocemente.

Questa seconda strada ormai la utilizzo praticamente ovunque, da cui il gradimento per una funzione che velocizzasse il primo step, sempre uguale, ovvero decodificare il numero della classe.
Spero sia semplice!
User avatar
theguru
 
Posts: 955
Joined: 29 January 2014, 13:01

Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: Majestic-12 [Bot] and 14 guests

cron