diff options
author | Tyler Schicke <tyler_schicke@brown.edu> | 2019-01-15 22:31:57 -0500 |
---|---|---|
committer | Tyler Schicke <tyler_schicke@brown.edu> | 2019-01-15 22:31:57 -0500 |
commit | 89204d74d2a5014b4e241973b1bdb8461ed4f78c (patch) | |
tree | 4bf58acfdad603375953b2de3610dc946e569b71 /src/controllers/FieldController.ts | |
parent | 3de39e2608e62a278b9c8cc37b53333f0877fa59 (diff) |
More stuff set up
Diffstat (limited to 'src/controllers/FieldController.ts')
-rw-r--r-- | src/controllers/FieldController.ts | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/src/controllers/FieldController.ts b/src/controllers/FieldController.ts deleted file mode 100644 index ec59f53e8..000000000 --- a/src/controllers/FieldController.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { TypedEvent } from "../util/TypedEvent"; -import { FieldUpdatedArgs } from "./FieldUpdatedArgs"; -import { DocumentReferenceController } from "./DocumentReferenceController"; -import { Utils } from "../Utils"; - -export function Cast<T extends FieldController>(field: Opt<FieldController>, ctor: { new(): T }): Opt<T> { - if (field) { - if (ctor && field instanceof ctor) { - return field; - } - } - return undefined; -} - -export type Opt<T> = T | undefined; - -export abstract class FieldController { - //FieldUpdated: TypedEvent<Opt<FieldUpdatedArgs>> = new TypedEvent<Opt<FieldUpdatedArgs>>(); - - private id: string; - get Id(): string { - return this.id; - } - - constructor(id: Opt<string> = undefined) { - this.id = id || Utils.GenerateGuid(); - } - - Dereference(): Opt<FieldController> { - return this; - } - DereferenceToRoot(): Opt<FieldController> { - return this; - } - - DereferenceT<T extends FieldController = FieldController>(ctor: { new(): T }): Opt<T> { - return Cast(this.Dereference(), ctor); - } - - DereferenceToRootT<T extends FieldController = FieldController>(ctor: { new(): T }): Opt<T> { - return Cast(this.DereferenceToRoot(), ctor); - } - - Equals(other: FieldController): boolean { - return this.id === other.id; - } - - abstract TrySetValue(value: any): boolean; - - abstract GetValue(): any; - - abstract Copy(): FieldController; - -}
\ No newline at end of file |