blob: 9cf12861438ebf4ce28311ddae6b414561e0ac69 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
import { FieldController, Opt } from "./FieldController";
import { DocumentController } from "./DocumentController";
import { KeyController } from "./KeyController";
import { DocumentUpdatedArgs } from "./FieldUpdatedArgs";
export class DocumentReferenceController extends FieldController {
get Key(): KeyController{
return this.key;
}
get Document(): DocumentController {
return this.document;
}
constructor(private document: DocumentController, private key: KeyController) {
super();
document.AddFieldUpdatedHandler(key, this.DocFieldUpdated);
}
private DocFieldUpdated(args: DocumentUpdatedArgs):void{
this.FieldUpdated.emit(args.fieldArgs);
}
protected DereferenceImpl() : Opt<FieldController> {
return this.document.GetField(this.key);
}
protected DereferenceToRootImpl(): Opt<FieldController> {
let field: Opt<FieldController> = this;
while (field instanceof DocumentReferenceController) {
field = field.Dereference();
}
return field;
}
TrySetValue(value: any): boolean {
throw new Error("Method not implemented.");
}
GetValue() {
throw new Error("Method not implemented.");
}
Copy(): FieldController {
throw new Error("Method not implemented.");
}
}
|