2
0
mirror of https://github.com/esiur/esiur-dart.git synced 2026-04-04 10:18:20 +00:00
Files
esiur-dart/lib/src/Resource/Template/TemplateDataType.dart
2022-03-12 16:21:29 +03:00

125 lines
3.8 KiB
Dart

// import '../../Data/IRecord.dart';
// import '../../Resource/IResource.dart';
// import '../../Data/Structure.dart';
// import '../../Data/ParseResult.dart';
// import '../../Data/DataType.dart';
// import '../../Data/Guid.dart';
// import '../../Data/DC.dart';
// import '../../Data/BinaryList.dart';
// import 'TypeTemplate.dart';
// import '../../Resource/Warehouse.dart';
// import 'TemplateType.dart';
// class TemplateDataType {
// late int type;
// TypeTemplate? get typeTemplate => typeGuid == null
// ? null
// : Warehouse.getTemplateByClassId(typeGuid as Guid);
// Guid? typeGuid;
// // @TODO: implement fromType
// TemplateDataType.fromType(type, bool isArray) {
// int dt;
// if (type == null || type == dynamic) {
// dt = DataType.Void;
// }
// // else if (type is int) {
// // dt = type;
// else if (type == bool)
// dt = DataType.Bool;
// // else if (type == Uint8)
// // dt = DataType.UInt8;
// // else if (type == Int8)
// // dt = DataType.Int8;
// // else if (type == Uint16)
// // dt = DataType.UInt16;
// // else if (type == Int16)
// // dt = DataType.Int16;
// // else if (type == Uint32)
// // dt = DataType.UInt32;
// // else if (type == Int32)
// // dt = DataType.Int32;
// // else if (type == Uint64)
// // dt = DataType.UInt64;
// else if (/* type == Int64 || */ type == int)
// dt = DataType.Int64;
// // else if (type == Float)
// // dt = DataType.Float32;
// else if (/* type == Double || */ type == double)
// dt = DataType.Float64;
// else if (type == String)
// dt = DataType.String;
// else if (type == DateTime)
// dt = DataType.DateTime;
// else if (type == Structure)
// dt = DataType.Structure;
// else if (type == IResource) // Dynamic resource (unspecified type)
// dt = DataType.Void;
// else if (type == IRecord) // Dynamic record (unspecified type)
// dt = DataType.Void;
// else {
// var template = Warehouse.getTemplateByType(type);
// if (template != null) {
// typeGuid = template.classId;
// dt = template.type == TemplateType.Resource
// ? DataType.Resource
// : DataType.Record;
// } else
// dt = DataType.Void;
// // if (template)
// // try {
// // var ins = Warehouse.createInstance(type);
// // if (ins is IResource) {
// // typeGuid = TypeTemplate.getTypeGuid(ins.template.nameSpace);
// // } else if (ins is IRecord) {
// // typeGuid = TypeTemplate.getTypeGuid(ins.template.nameSpace);
// // } else {
// // dt = DataType.Void;
// // }
// // } catch (ex) {
// // dt = DataType.Void;
// // }
// }
// if (isArray) dt = dt | 0x80;
// this.type = dt;
// }
// DC compose() {
// if (type == DataType.Resource ||
// type == DataType.ResourceArray ||
// type == DataType.Record ||
// type == DataType.RecordArray) {
// return (BinaryList()
// ..addUint8(type)
// ..addDC((typeGuid as Guid).value))
// .toDC();
// } else
// return DC.fromList([type]);
// }
// TemplateDataType(this.type, this.typeGuid);
// static ParseResult<TemplateDataType> parse(DC data, int offset) {
// var type = data[offset++];
// if (type == DataType.Resource ||
// type == DataType.ResourceArray ||
// type == DataType.Record ||
// type == DataType.RecordArray) {
// var guid = data.getGuid(offset);
// return ParseResult<TemplateDataType>(
// 17, new TemplateDataType(type, guid));
// } else
// return ParseResult<TemplateDataType>(1, new TemplateDataType(type, null));
// }
// }