aboutsummaryrefslogtreecommitdiff
path: root/src/controllers/DocumentReferenceController.ts
diff options
context:
space:
mode:
authorTyler Schicke <tyler_schicke@brown.edu>2019-01-13 06:16:11 -0500
committerTyler Schicke <tyler_schicke@brown.edu>2019-01-13 06:16:11 -0500
commite1ed82ff684877b56925016282a0e4d5bb4e1b4b (patch)
tree7f251def17dd86da9675bf0506f7db2c5d71148f /src/controllers/DocumentReferenceController.ts
parentee068ab30c43125efd2b0ab853531df9777f544f (diff)
More controller stuff
Diffstat (limited to 'src/controllers/DocumentReferenceController.ts')
-rw-r--r--src/controllers/DocumentReferenceController.ts14
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.");
}