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
text/typescript
/* 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; */
}
}