예제 #1
0
 public ChainCharArrayEncoder(Net.Vpc.Upa.Types.CharArrayEncoder a, Net.Vpc.Upa.Types.CharArrayEncoder b)
 {
     this.a = a;
     this.b = b;
 }
예제 #2
0
 public virtual void SetEncoder(Net.Vpc.Upa.Types.CharArrayEncoder encoder)
 {
     SetEncoderObject(encoder);
 }
예제 #3
0
 public virtual object TransformValue(object @value)
 {
     Net.Vpc.Upa.Types.CharArrayEncoder ss = charArrayEncoder;
     return(ss.Encode(@value));
 }
예제 #4
0
        public virtual Net.Vpc.Upa.Types.DataTypeTransform CreateCharArrayEncoderTransform(Net.Vpc.Upa.PersistenceUnit pu, Net.Vpc.Upa.Types.DataType source, Net.Vpc.Upa.Types.CharArrayEncoderTransformConfig p)
        {
            if (p == null)
            {
                p = new Net.Vpc.Upa.Types.CharArrayEncoderTransformConfig();
            }
            Net.Vpc.Upa.Types.CharArrayEncoder preEncoder = null;
            int baseSize = 0;

            if (source is Net.Vpc.Upa.Types.IntType)
            {
                preEncoder = Net.Vpc.Upa.Impl.Transform.IntToStringCharArrayEncoder.INSTANCE;
                baseSize   = 255;
            }
            else if (source is Net.Vpc.Upa.Types.LongType)
            {
                preEncoder = Net.Vpc.Upa.Impl.Transform.LongToStringCharArrayEncoder.INSTANCE;
                baseSize   = 255;
            }
            else if (source is Net.Vpc.Upa.Types.DoubleType)
            {
                preEncoder = Net.Vpc.Upa.Impl.Transform.DoubleToStringCharArrayEncoder.INSTANCE;
                baseSize   = 255;
            }
            else if (source is Net.Vpc.Upa.Types.FloatType)
            {
                preEncoder = Net.Vpc.Upa.Impl.Transform.FloatToStringCharArrayEncoder.INSTANCE;
                baseSize   = 255;
            }
            else if (source is Net.Vpc.Upa.Types.StringType)
            {
                preEncoder = Net.Vpc.Upa.Impl.Transform.StringToCharArrayEncoder.INSTANCE;
                baseSize   = 255;
            }
            else if (source is Net.Vpc.Upa.Types.ByteArrayType)
            {
                preEncoder = null;
                baseSize   = 255;
            }
            else
            {
                throw new System.ArgumentException("Unsupported");
            }
            object postEncoderObject = p.GetEncoder();

            Net.Vpc.Upa.Types.CharArrayEncoder postEncoder = null;
            if (postEncoderObject == null)
            {
            }
            else if (postEncoderObject is string)
            {
                if (!Net.Vpc.Upa.Impl.Util.StringUtils.IsNullOrEmpty((string)postEncoderObject))
                {
                    postEncoder = pu.GetFactory().CreateObject <T>((string)postEncoderObject);
                }
            }
            else if (postEncoderObject is System.Type)
            {
                postEncoder = (Net.Vpc.Upa.Types.CharArrayEncoder)pu.GetFactory().CreateObject <object>((System.Type)postEncoderObject);
            }
            else if (postEncoderObject is Net.Vpc.Upa.Types.ByteArrayEncoder)
            {
                postEncoder = (Net.Vpc.Upa.Types.CharArrayEncoder)postEncoderObject;
            }
            else
            {
                throw new System.ArgumentException("Unsupported");
            }
            if (p.GetSize() <= 0)
            {
                p.SetSize(baseSize);
            }
            Net.Vpc.Upa.Types.CharArrayEncoder finalEncoder = null;
            if (preEncoder == null)
            {
                finalEncoder = postEncoder;
            }
            else if (postEncoder == null)
            {
                finalEncoder = preEncoder;
            }
            else
            {
                finalEncoder = new Net.Vpc.Upa.Impl.Transform.ChainCharArrayEncoder(preEncoder, postEncoder);
            }
            if (finalEncoder == null)
            {
                finalEncoder = Net.Vpc.Upa.Impl.Transform.IdentityCharArrayEncoder.INSTANCE;
            }
            return(new Net.Vpc.Upa.Impl.Transform.CharArrayEncoderDataTypeTransform(finalEncoder, source, p.GetSize()));
        }
예제 #5
0
 public CharArrayEncoderDataTypeTransform(Net.Vpc.Upa.Types.CharArrayEncoder byteArrayEncoder, Net.Vpc.Upa.Types.DataType sourceType, int?max)
 {
     this.charArrayEncoder = byteArrayEncoder;
     this.sourceType       = sourceType;
     this.targetType       = new Net.Vpc.Upa.Types.ByteArrayType(null, max == null ? ((Net.Vpc.Upa.Types.DataType)(255)) : max, sourceType.IsNullable());
 }