diff options
author | Tyler Schicke <tyler_schicke@brown.edu> | 2019-01-13 06:16:11 -0500 |
---|---|---|
committer | Tyler Schicke <tyler_schicke@brown.edu> | 2019-01-13 06:16:11 -0500 |
commit | e1ed82ff684877b56925016282a0e4d5bb4e1b4b (patch) | |
tree | 7f251def17dd86da9675bf0506f7db2c5d71148f /src/controllers/DocumentReferenceController.ts | |
parent | ee068ab30c43125efd2b0ab853531df9777f544f (diff) |
More controller stuff
Diffstat (limited to 'src/controllers/DocumentReferenceController.ts')
-rw-r--r-- | src/controllers/DocumentReferenceController.ts | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/controllers/DocumentReferenceController.ts b/src/controllers/DocumentReferenceController.ts index 9d5bb7af2..9cf128614 100644 --- a/src/controllers/DocumentReferenceController.ts +++ b/src/controllers/DocumentReferenceController.ts @@ -1,4 +1,4 @@ -import { FieldController } from "./FieldController"; +import { FieldController, Opt } from "./FieldController"; import { DocumentController } from "./DocumentController"; import { KeyController } from "./KeyController"; import { DocumentUpdatedArgs } from "./FieldUpdatedArgs"; @@ -22,6 +22,18 @@ export class DocumentReferenceController extends FieldController { 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."); } |