aboutsummaryrefslogtreecommitdiff
path: root/src/fields/DocumentReference 2.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/fields/DocumentReference 2.ts')
-rw-r--r--src/fields/DocumentReference 2.ts46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/fields/DocumentReference 2.ts b/src/fields/DocumentReference 2.ts
new file mode 100644
index 000000000..936067bd2
--- /dev/null
+++ b/src/fields/DocumentReference 2.ts
@@ -0,0 +1,46 @@
+import { Field, Opt } from "./Field";
+import { Document } from "./Document";
+import { Key } from "./Key";
+import { DocumentUpdatedArgs } from "./FieldUpdatedArgs";
+
+export class DocumentReference extends Field {
+ get Key(): Key{
+ return this.key;
+ }
+
+ get Document(): Document {
+ return this.document;
+ }
+
+ constructor(private document: Document, private key: Key) {
+ super();
+ }
+
+ private DocFieldUpdated(args: DocumentUpdatedArgs):void{
+ // this.FieldUpdated.emit(args.fieldArgs);
+ }
+
+ Dereference() : Opt<Field> {
+ return this.document.GetField(this.key);
+ }
+
+ DereferenceToRoot(): Opt<Field> {
+ let field: Opt<Field> = this;
+ while (field instanceof DocumentReference) {
+ field = field.Dereference();
+ }
+ return field;
+ }
+
+ TrySetValue(value: any): boolean {
+ throw new Error("Method not implemented.");
+ }
+ GetValue() {
+ throw new Error("Method not implemented.");
+ }
+ Copy(): Field {
+ throw new Error("Method not implemented.");
+ }
+
+
+} \ No newline at end of file