export default class FactoryEntry { //Type get type => T; //late Type nullableType; //final Function instanceCreator; //final Function arrayCreator = () => []; //final RepresentationType representationType; isMapKeySubType(map) { //return map is Map; } isMapValueSubType(map) { //return map is Map; } isListSubType(list) { //return list is List; } constructor(type, representationType) { this.type = type; this.nullableType = this.getNullableType(type); this.representationType = representationType; } getNullableType(type){ let c = class extends type {}; Object.defineProperty(c, "name", {value: "Nullable" + type.name}); Object.defineProperty(c, "nullable", {value: true}); return c; } }