UNPKG

mp-holistic

Version:

si prefigge l'umile compito di aiutare nella creazione di : - un server API REST mediante express - un semplice ORM per Postgres Questo tramite decoratori o classi particolari.

156 lines (142 loc) 5.44 kB
/* import { ExpressMetodo } from "../express/metodo.express"; */ import { IMeta, ListaMeta, Meta } from "../metadata"; import { IListaMetadataParametro, ListaMetadataParametro } from "./parametro.metadata"; export interface IMetaMetodoBase extends IMeta { listaParametri?: IListaMetadataParametro; nomeOriginale?: string; nomeVariante?: string; metodoAvviabile?: any; } export interface IMetaMetodo extends IMeta { listaParametri?: ListaMetadataParametro; nomeOriginale?: string; nomeVariante?: string; metodoAvviabile?: any; /* metodoExpress?: ExpressMetodo; */ } export class MetadataMetodo extends Meta implements IMetaMetodo { listaParametri: ListaMetadataParametro; metodoAvviabile: any; /* metodoExpress: ExpressMetodo = new ExpressMetodo(); */ constructor(item: IMetaMetodo) { super(item); if (item.listaParametri != undefined) this.listaParametri = item.listaParametri; else { this.listaParametri = new ListaMetadataParametro(); } if (item.metodoAvviabile) this.metodoAvviabile = item.metodoAvviabile; } Init(item: MetadataMetodo) { if (item.listaParametri != undefined) this.listaParametri = item.listaParametri; if (item.metodoAvviabile) this.metodoAvviabile = item.metodoAvviabile; } Mergia(item: MetadataMetodo) { super.Mergia(item); if (item.listaParametri != undefined && this.listaParametri != undefined) this.listaParametri.Mergia(item.listaParametri); if (item.metodoAvviabile) this.metodoAvviabile = item.metodoAvviabile; } GetThis() { return this; } } export class ListaMetadataMetodo extends ListaMeta { constructor(item?: ListaMetadataMetodo) { super(); if (item) for (let index = 0; index < item.length; index++) { const element = new MetadataMetodo(item[index]); const tmp = this.Cerca(element); if (tmp) tmp.Mergia(element); } /* if (item) { if (item instanceof ListaMetadataMetodo) { for (let index = 0; index < item.length; index++) { const element = item[index]; this.AggiungiElemento(new MetadataMetodo(element)); } } */ /* else if (item.valori) { for (let index = 0; index < item?.valori.length; index++) { const element = item?.valori[index]; this.AggiungiElemento(new MetadataMetodo(element)); } } */ //} } Mergia(item: ListaMetadataMetodo) { const t = super.Mergia(item); for (let index = 0; index < this.length; index++) { const element = <MetadataMetodo>this[index]; for (let index2 = 0; index2 < item.length; index2++) { const element2 = <MetadataMetodo>item[index2]; if (element.Compara(element2) == 0) { element.Mergia(element2); } } } return t; /* for (let index = 0; index < item.length; index++) { const element = item[index]; const elementoCercato = this.Cerca(element); if (elementoCercato == undefined) { const tmp = element; this.push(tmp); } else { elementoCercato.Mergia(elementoCercato); } } */ } /* Init(item: IListaMetadataMetodo) { for (let index = 0; index < item.length; index++) { const element = item[index]; const tmp = new MetadataMetodo(element); this.push(tmp); } } */ CercaSeNoAggiungi(item: MetadataMetodo) { const t = super.CercaSeNoAggiungi(item); return <MetadataMetodo>t; /* let metodo = undefined; for (let index = 0; index < this.length && metodo == undefined; index++) { const element = this[index]; if (Meta.Compara(element, item) == 0) metodo = element.GetThis(); } if (metodo == undefined) { if (item.GetThis) { metodo = <ExpressMetodo>item.GetThis(item); } else { metodo = new MetadataMetodo(item); } this.AggiungiElemento(metodo); } return metodo; */ } Cerca(item: MetadataMetodo): MetadataMetodo | undefined { const t = super.Cerca(item); return <MetadataMetodo>t; /* for (let index = 0; index < this.length; index++) { const element = this[index]; if (Meta.Compara(element, item) == 0) return element; } return undefined; */ } AggiungiElemento(item: MetadataMetodo) { const t = super.AggiungiElemento(item); return <MetadataMetodo>t; /* for (let index = 0; index < this.length; index++) { const element = this[index]; if (Meta.Compara(element, item) == 0) { this[index].Mergia(item); return this[index]; } } this.push(item); return item; */ } }