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.

128 lines (107 loc) 4.03 kB
import { Meta, IMeta, ListaMeta } from "../metadata"; import { ListaMetadataMetodo } from "./metodo.metadata"; import { ListaMetadataProprieta } from "./proprieta.metadata"; export interface IMetaClasseBase { nomeOriginale?: string; nomeVariante?: string; listaMetodi?: ListaMetadataMetodo; } /** * istanzia la meta classe * @param nomeOriginale : si puo tralasciare * @param nomeVariante : si puo tralasciare * @param listaMetodi : da toccare con cura * @param listaProprieta : da toccare con cura */ export interface IMetaClasse extends IMeta { nomeOriginale?: string; nomeVariante?: string; listaMetodi?: ListaMetadataMetodo; listaProprieta?: ListaMetadataProprieta; /* classeExpress?: ExpressClasse; */ } export class MetadataClasse extends Meta implements IMetaClasse { listaMetodi = new ListaMetadataMetodo(); listaProprieta = new ListaMetadataProprieta(); /* classeExpress = new ExpressClasse(); */ constructor(item: IMetaClasse) { super(item); /* if (item.listaMetodi != undefined) this.listaMetodi = new ListaMetadataMetodo(item.listaMetodi); else if (this.listaMetodi == undefined) this.listaMetodi = new ListaMetadataMetodo(); */ //ooppure questo devo vedere /* if (item) for (let index = 0; index < item.length; index++) { const element = new ExpressMetodo(item[index]); this.Cerca(element).Mergia(element); } */ } Mergia(item: MetadataClasse) { super.Mergia(item); if (item.listaMetodi != undefined && this.listaMetodi != undefined) this.listaMetodi.Mergia(item.listaMetodi); } GetThis() { return this; } } export class ListaMetadataClasse extends ListaMeta { constructor(item?: ListaMetadataClasse) { super(); if (item) for (let index = 0; index < item.length; index++) { const element = new MetadataClasse(item[index]); const tmp = this.Cerca(element); if (tmp) tmp.Mergia(element); } } Mergia(item: ListaMetadataClasse) { super.Mergia(item); /* 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); } } */ } CercaSeNoAggiungi(item: MetadataClasse) { const t = super.CercaSeNoAggiungi(item); return <MetadataClasse>t; /* let classe = undefined; for (let index = 0; index < this.length && classe == undefined; index++) { const element = this[index]; if (Meta.Compara(element, item) == 0) classe; } if (classe == undefined) { classe = new MetadataClasse(item); this.AggiungiElemento(classe); } return classe; */ } Cerca(item: MetadataClasse): MetadataClasse | undefined { const t = super.Cerca(item); return <MetadataClasse>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: MetadataClasse) { const t = super.AggiungiElemento(item); return <MetadataClasse>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; */ } }