예제 #1
0
        public object ReadAtomicNativeObjectInfoAsObject(int odbTypeId)
        {
            object o = null;

            switch (odbTypeId)
            {
            case OdbType.ByteId:
            {
                o = _fsi.ReadByte();
                break;
            }

            case OdbType.SByteId:
            {
                o = _fsi.ReadSByte();
                break;
            }

            case OdbType.BooleanId:
            {
                o = _fsi.ReadBoolean();
                break;
            }

            case OdbType.CharacterId:
            {
                o = _fsi.ReadChar();
                break;
            }

            case OdbType.FloatId:
            {
                o = _fsi.ReadFloat();
                break;
            }

            case OdbType.DoubleId:
            {
                o = _fsi.ReadDouble();
                break;
            }

            case OdbType.IntegerId:
            {
                o = _fsi.ReadInt();
                break;
            }

            case OdbType.UIntegerId:
            {
                o = _fsi.ReadUInt();
                break;
            }

            case OdbType.LongId:
            {
                o = _fsi.ReadLong();
                break;
            }

            case OdbType.ULongId:
            {
                o = _fsi.ReadULong();
                break;
            }

            case OdbType.ShortId:
            {
                o = _fsi.ReadShort();
                break;
            }

            case OdbType.UShortId:
            {
                o = _fsi.ReadUShort();
                break;
            }

            case OdbType.DecimalId:
            {
                o = _fsi.ReadBigDecimal();
                break;
            }

            case OdbType.DateId:
            {
                o = _fsi.ReadDate();
                break;
            }

            case OdbType.ObjectOidId:
            {
                var oid = _fsi.ReadLong();
                o = OIDFactory.BuildObjectOID(oid);
                break;
            }

            case OdbType.ClassOidId:
            {
                var cid = _fsi.ReadLong();
                o = OIDFactory.BuildClassOID(cid);
                break;
            }

            case OdbType.StringId:
            {
                o = _fsi.ReadString();
                break;
            }

            case OdbType.EnumId:
            {
                o = _fsi.ReadString();
                break;
            }
            }
            if (o == null)
            {
                throw new OdbRuntimeException(
                          NDatabaseError.NativeTypeNotSupported.AddParameter(odbTypeId).AddParameter(
                              OdbType.GetNameFromId(odbTypeId)));
            }
            return(o);
        }