/** * Created by reunion on 18/11/2016. */ import { DataManagerService } from './data-manager.service'; import { Observable } from "rxjs/Rx"; import { DataStructure } from "./data-structure.class"; import { Response } from "@angular/http"; export declare class DataEntity extends DataStructure { temporary: boolean; attributes: Object; nestedAttributes: Object; private _clonedAttributes; referenceObject: Object; type: string; id: number; manager: DataManagerService; constructor(data: Object, type: string, manager: DataManagerService, temporary?: boolean); /** * Création l'objet de réference qui servira pour les diff */ createReferenceObject(): void; /** * Mise à jour d'une propriété de l'entité * @param attributeName * @param value */ set(attributeName: string, value: any, force?: boolean): void; get(attributeName: string): any; setNested(attributeName: string, value: any): void; getNested(attributeName: string): any; readonly getClonedAttributes: Object; clonedAttributes(): Object; validateClonedAttributes(): void; invalidateClonedAttributes(): void; /** * Clone l'entité * @returns {DataEntity} */ copy(): DataEntity; /** * Retourne les attributs de l'entité, moins certaines valeurs passées dans une blacklist * @param keysBlackList BlackList de propriétés à supprimer * @returns {Object} Les attributs, moins les propriétés de la blacklist */ getFilteredAttributes(keysBlackList?: Array): Object; hasChanged(): boolean; /** * Sauvegarde l'entité dans le provider de données * @returns {Observable} L'observer de l'objet */ save(applyDiff?: boolean, exclusions?: string[]): Observable; /** * Supprimé l'entité du provider de données * @returns {Observable} L'observable de suppression */ remove(): Observable; /** * Duplique l'objet dans le provider de données * @returns {Observable} L'observable de duplication */ duplicate(): Observable; /** * Retourne le diff entre l'objet de référence et les attributs mis à jour * @returns {Object} Le diff */ diff(): Object; /** * Propage les modification de l'entité vers les entités de même id chargées séparément */ propagateChanges(): void; }