示例#1
0
        public override string GenerateForTypicalWrapper(
            ObjectGeneration objGen,
            TypeGeneration typeGen,
            Accessor dataAccessor,
            Accessor packageAccessor)
        {
            BoolType b = typeGen as BoolType;

            if (b.BoolAsMarker == null)
            {
                return($"{dataAccessor}[0] == 1");
            }
            else
            {
                return("true");
            }
        }
示例#2
0
        public override async Task GenerateCopyIn(
            FileGeneration fg,
            ObjectGeneration objGen,
            TypeGeneration typeGen,
            Accessor frameAccessor,
            Accessor itemAccessor,
            Accessor errorMaskAccessor,
            Accessor translationMaskAccessor)
        {
            BoolType b = typeGen as BoolType;

            if (b.BoolAsMarker == null)
            {
                await base.GenerateCopyIn(fg, objGen, typeGen, frameAccessor, itemAccessor, errorMaskAccessor, translationMaskAccessor);
            }
            else
            {
                fg.AppendLine($"{itemAccessor} = true;");
            }
        }
示例#3
0
        public override void GenerateWrite(
            FileGeneration fg,
            ObjectGeneration objGen,
            TypeGeneration typeGen,
            Accessor writerAccessor,
            Accessor itemAccessor,
            Accessor errorMaskAccessor,
            Accessor translationMaskAccessor,
            Accessor converterAccessor)
        {
            BoolType b = typeGen as BoolType;

            if (b.BoolAsMarker == null)
            {
                base.GenerateWrite(
                    fg,
                    objGen,
                    typeGen,
                    writerAccessor,
                    itemAccessor,
                    errorMaskAccessor,
                    translationMaskAccessor,
                    converterAccessor);
            }
            else
            {
                var data = typeGen.GetFieldData();
                using (var args = new ArgsWrapper(fg,
                                                  $"{this.Namespace}BooleanBinaryTranslation.Instance.WriteAsMarker"))
                {
                    args.Add($"writer: {writerAccessor}");
                    args.Add($"item: {ItemWriteAccess(typeGen, itemAccessor)}");
                    if (data.RecordType.HasValue &&
                        data.HandleTrigger)
                    {
                        args.Add($"header: recordTypeConverter.ConvertToCustom({objGen.RecordTypeHeaderName(data.RecordType.Value)})");
                    }
                }
            }
        }
示例#4
0
 public BooleanBinaryTranslationGeneration()
     : base(expectedLen: 1)
 {
     this.AdditionalCopyInParams.Add((o, t) =>
     {
         BoolType b = t as BoolType;
         if (b.ByteLength != 1)
         {
             return(TryGet <string> .Succeed($"byteLength: {b.ByteLength}"));
         }
         return(TryGet <string> .Failure);
     });
     this.AdditionalWriteParams.Add((o, t) =>
     {
         BoolType b = t as BoolType;
         if (b.ByteLength != 1)
         {
             return(TryGet <string> .Succeed($"byteLength: {b.ByteLength}"));
         }
         return(TryGet <string> .Failure);
     });
 }