public virtual Net.Vpc.Upa.Impl.Persistence.TypeMarshaller GetTypeMarshaller(System.Type platformType)
 {
     Net.Vpc.Upa.Impl.Persistence.TypeMarshaller c = (Net.Vpc.Upa.Impl.Persistence.TypeMarshaller)Net.Vpc.Upa.Impl.FwkConvertUtils.GetMapValue <System.Type, Net.Vpc.Upa.Impl.Persistence.TypeMarshaller>(typeToMarshallerMap, platformType);
     if (c != null)
     {
         return(c);
     }
     if ((platformType).IsEnum)
     {
         return(new Net.Vpc.Upa.Impl.Persistence.Shared.EnumAsIntMarshaller(platformType));
     }
     System.Type[] interfaces = platformType.GetInterfaces();
     foreach (System.Type anInterface in interfaces)
     {
         c = GetTypeMarshaller(anInterface);
         if (c != null)
         {
             return(c);
         }
     }
     System.Type superClass = (platformType).BaseType;
     if (superClass == null)
     {
         return(null);
     }
     c = GetTypeMarshaller(superClass);
     if (c != null)
     {
         return(c);
     }
     return(GetTypeMarshaller(superClass));
 }
Exemple #2
0
 public override string ToSQLLiteral(object @object)
 {
     Net.Vpc.Upa.Impl.Persistence.TypeMarshaller wrapper = GetMarshallManager().GetTypeMarshaller(@object.GetType());
     if (wrapper != null && wrapper.GetType() != GetType())
     {
         return(wrapper.ToSQLLiteral(@object));
     }
     throw new System.Exception("literal not supported for Objects");
 }
Exemple #3
0
 public virtual Net.Vpc.Upa.Impl.Persistence.TypeMarshaller CreateTypeMarshaller(Net.Vpc.Upa.Types.DataType type)
 {
     Net.Vpc.Upa.Types.NumberType n = (Net.Vpc.Upa.Types.NumberType)type;
     System.Type c = n.GetPlatformType();
     Net.Vpc.Upa.Impl.Persistence.TypeMarshaller m = pm.GetTypeMarshaller(c);
     if (m == null)
     {
         m = pm.GetTypeMarshaller(typeof(object));
     }
     return(m);
 }
 public override string ToSQLLiteral(object @object)
 {
     if (@object == null)
     {
         return(base.ToSQLLiteral(@object));
     }
     Net.Vpc.Upa.Impl.Persistence.TypeMarshaller wrapper = pm.GetTypeMarshaller(@object.GetType());
     if (wrapper != null && wrapper.GetType() != GetType())
     {
         return(wrapper.ToSQLLiteral(@object));
     }
     throw new System.Exception("litteral not supported for Objects (" + @object + " as " + @object.GetType() + ")");
 }
 public DefaultMarshallManager()
 {
     this.nullMarshaller = (Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.NULL);
     SetTypeMarshaller0(typeof(object), new Net.Vpc.Upa.Impl.Persistence.Shared.SerializablePlatformObjectMarshaller());
     SetTypeMarshaller0(typeof(float?), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.FLOAT);
     SetTypeMarshaller0(typeof(string), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.STRING);
     SetTypeMarshaller0(typeof(char?), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.STRING);
     SetTypeMarshaller0(typeof(double?), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.DOUBLE);
     SetTypeMarshaller0(typeof(int?), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.INTEGER);
     SetTypeMarshaller0(typeof(long?), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.LONG);
     SetTypeMarshaller0(typeof(short?), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.SHORT);
     SetTypeMarshaller0(typeof(byte?), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.BYTE);
     SetTypeMarshaller0(typeof(System.Numerics.BigInteger?), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.BIG_INTEGER);
     SetTypeMarshaller0(typeof(System.Decimal?), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.BIG_DECIMAL);
     SetTypeMarshaller0(typeof(bool?), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.BOOLEAN_FROM_NUMBER);
     SetTypeMarshaller0(typeof(Net.Vpc.Upa.Types.FileData), new Net.Vpc.Upa.Impl.Persistence.Shared.SerializablePlatformObjectMarshaller());
     SetTypeMarshaller0(typeof(float), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.FLOAT);
     SetTypeMarshaller0(typeof(char), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.STRING);
     SetTypeMarshaller0(typeof(double), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.DOUBLE);
     SetTypeMarshaller0(typeof(int), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.INTEGER);
     SetTypeMarshaller0(typeof(long), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.LONG);
     SetTypeMarshaller0(typeof(short), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.SHORT);
     SetTypeMarshaller0(typeof(byte), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.BYTE);
     SetTypeMarshaller0(typeof(bool), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.BOOLEAN_FROM_NUMBER);
     SetTypeMarshaller0(typeof(Net.Vpc.Upa.Types.Temporal), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.UTIL_DATE);
     SetTypeMarshaller0(typeof(Net.Vpc.Upa.Types.Date), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.SQL_DATE);
     SetTypeMarshaller0(typeof(Net.Vpc.Upa.Types.Time), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.SQL_TIME);
     SetTypeMarshaller0(typeof(Net.Vpc.Upa.Types.Timestamp), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.SQL_TIMESTAMP);
     SetTypeMarshaller0(typeof(Net.Vpc.Upa.Types.Date), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.DATE);
     SetTypeMarshaller0(typeof(Net.Vpc.Upa.Types.Month), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.MONTH_YEAR);
     SetTypeMarshaller0(typeof(Net.Vpc.Upa.Types.Year), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.YEAR);
     SetTypeMarshaller0(typeof(Net.Vpc.Upa.Types.Time), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.VPC_TIME);
     SetTypeMarshaller0(typeof(Net.Vpc.Upa.Types.DateTime), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.DATE_TIME);
     SetTypeMarshaller0(typeof(Net.Vpc.Upa.Types.Timestamp), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.TIMESTAMP);
     SetTypeMarshaller0(typeof(byte[]), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.BYTES);
     SetTypeMarshaller0(typeof(byte?[]), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.BYTE_REFS);
     SetTypeMarshaller0(typeof(char[]), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.CHARS);
     SetTypeMarshaller0(typeof(char?[]), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.CHAR_REFS);
     SetTypeMarshallerFactory0(typeof(Net.Vpc.Upa.Types.ImageType), new Net.Vpc.Upa.Impl.Persistence.Shared.ConstantDataMarshallerFactory(new Net.Vpc.Upa.Impl.Persistence.Shared.SerializablePlatformObjectMarshaller()));
     SetTypeMarshallerFactory0(typeof(Net.Vpc.Upa.Types.TemporalType), new Net.Vpc.Upa.Impl.Persistence.Shared.TemporalDataMarshallerFactory());
     SetTypeMarshallerFactory0(typeof(Net.Vpc.Upa.Types.FileType), new Net.Vpc.Upa.Impl.Persistence.Shared.ConstantDataMarshallerFactory(new Net.Vpc.Upa.Impl.Persistence.Shared.SerializablePlatformObjectMarshaller()));
     SetTypeMarshallerFactory0(typeof(Net.Vpc.Upa.Types.NumberType), new Net.Vpc.Upa.Impl.Persistence.Shared.NumberDataMarshallerFactory());
     SetTypeMarshallerFactory0(typeof(Net.Vpc.Upa.Types.StringType), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.F_STRING);
     SetTypeMarshallerFactory0(typeof(Net.Vpc.Upa.Types.BooleanType), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.F_BOOLEAN_FROM_NUMBER);
     SetTypeMarshallerFactory0(typeof(Net.Vpc.Upa.Types.ListType), new Net.Vpc.Upa.Impl.Persistence.Shared.ListDataMarshallerFactory());
     SetTypeMarshallerFactory0(typeof(Net.Vpc.Upa.Types.DataType), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.F_OBJECT);
     SetTypeMarshallerFactory0(typeof(Net.Vpc.Upa.Types.SerializableType), Net.Vpc.Upa.Impl.Persistence.Shared.TypeMarshallerUtils.F_OBJECT);
     SetTypeMarshallerFactory0(typeof(Net.Vpc.Upa.Types.EnumType), new Net.Vpc.Upa.Impl.Persistence.Shared.EnumMarshallerFactory());
 }
Exemple #6
0
        public virtual int ExecuteNonQuery(string query, System.Collections.Generic.IList <Net.Vpc.Upa.Persistence.Parameter> queryParameters, System.Collections.Generic.IList <Net.Vpc.Upa.Persistence.Parameter> generatedKeys) /* throws Net.Vpc.Upa.Exceptions.UPAException */
        {
            if (closed)
            {
                throw new System.ArgumentException("Connection closed");
            }
            System.Exception error = null;
            int  count             = -1;
            bool gen       = generatedKeys != null && (generatedKeys).Count > 0;
            long startTime = System.DateTime.Now.Ticks;

            try {
                System.Data.IDbCommand s = null;
                s             = connection.CreateCommand();
                s.CommandText = query;
                s.CommandType = System.Data.CommandType.Text;
                int index = 1;
                if (queryParameters != null)
                {
                    foreach (Net.Vpc.Upa.Persistence.Parameter @value in queryParameters)
                    {
                        Net.Vpc.Upa.Types.DataTypeTransform         chain          = @value.GetTypeTransform();
                        Net.Vpc.Upa.Impl.Persistence.TypeMarshaller typeMarshaller = marshallManager.GetTypeMarshaller(chain);
                        typeMarshaller.Write(@value.GetValue(), index, s);
                        index += typeMarshaller.GetSize();
                    }
                }
                count = s.ExecuteNonQuery();
            } catch (System.Exception ee) {
                error = ee;
                //            Log.log(PersistenceUnitManager.DB_ERROR_LOG,"[Error] "+currentQueryInfo+" :=" + currentQuery);
                throw CreateUPAException(ee, "ExecuteUpdateFailedException", query);
            } finally {
                if (/*IsLoggable=*/ true)
                {
                    if (error != null)
                    {
                        log.TraceEvent(System.Diagnostics.TraceEventType.Error, 100, Net.Vpc.Upa.Impl.FwkConvertUtils.LogMessageExceptionFormatter(nameDebugString + " [Error] executeNonQuery " + query + " :: parameters = " + queryParameters, error));
                    }
                    else
                    {
                        log.TraceEvent(System.Diagnostics.TraceEventType.Verbose, 60, Net.Vpc.Upa.Impl.FwkConvertUtils.LogMessageExceptionFormatter("{0} executeNonQuery {1}" + ((queryParameters != null && !(queryParameters.Count == 0)) ? "\n\tqueryParameters={2}" : "") + " ;; time = {3}", null, new object[] { nameDebugString, query, queryParameters, (System.DateTime.Now.Ticks - startTime) }));
                    }
                }
            }
            //            Log.log(PersistenceUnitManager.DB_NATIVE_UPDATE_LOG,"[TIME="+Log.DELTA_FORMAT.format(endTime-startTime)+" ; COUNT="+count+"] "+debug+" :=" + currentQuery);
            return(count);
        }
Exemple #7
0
        public override string GetSQL(object oo, Net.Vpc.Upa.Persistence.EntityExecutionContext qlContext, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations)
        {
            Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral o = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledLiteral)oo;
            Net.Vpc.Upa.Impl.Util.ExprTypeInfo ei = Net.Vpc.Upa.Impl.Util.UPAUtils.ResolveExprTypeInfo(o);
            object objectValue = o.GetValue();

            Net.Vpc.Upa.Types.DataTypeTransform d = null;
            if (ei.GetOldReferrer() != null)
            {
                Net.Vpc.Upa.Field oldField = (Net.Vpc.Upa.Field)ei.GetOldReferrer();
                if (oldField.GetDataType() is Net.Vpc.Upa.Types.ManyToOneType)
                {
                    Net.Vpc.Upa.Types.ManyToOneType et = (Net.Vpc.Upa.Types.ManyToOneType)oldField.GetDataType();
                    objectValue = et.GetRelationship().GetTargetEntity().GetBuilder().ObjectToId(objectValue);
                }
            }
            else if (ei.GetReferrer() != null && ei.GetReferrer() is Net.Vpc.Upa.Field)
            {
                Net.Vpc.Upa.Field field = (Net.Vpc.Upa.Field)ei.GetReferrer();
                if (field.GetDataType() is Net.Vpc.Upa.Types.ManyToOneType)
                {
                    Net.Vpc.Upa.Types.ManyToOneType et = (Net.Vpc.Upa.Types.ManyToOneType)field.GetDataType();
                    objectValue = et.GetRelationship().GetTargetEntity().GetBuilder().ObjectToId(objectValue);
                    System.Collections.Generic.IList <Net.Vpc.Upa.Field> tf = et.GetRelationship().GetTargetEntity().GetPrimaryFields();
                    if ((tf).Count != 1)
                    {
                        throw new System.ArgumentException("Unsupported");
                    }
                    d = Net.Vpc.Upa.Impl.Util.UPAUtils.GetTypeTransformOrIdentity(tf[0]);
                }
            }
            if (d == null)
            {
                d = o.GetEffectiveDataType();
            }
            Net.Vpc.Upa.Impl.Persistence.TypeMarshaller mm = sqlManager.GetMarshallManager().GetTypeMarshaller(d);
            return(mm.ToSQLLiteral(objectValue));
        }
Exemple #8
0
 public DataTypeTransformMarshaller(Net.Vpc.Upa.Types.DataTypeTransform dataTypeTransform, Net.Vpc.Upa.Impl.Persistence.TypeMarshaller targetMarshaller)
 {
     this.dataTypeTransform = dataTypeTransform;
     this.targetMarshaller  = targetMarshaller;
 }
Exemple #9
0
        public virtual Net.Vpc.Upa.Persistence.QueryResult ExecuteQuery(string query, Net.Vpc.Upa.Types.DataTypeTransform[] types, System.Collections.Generic.IList <Net.Vpc.Upa.Persistence.Parameter> queryParameters, bool updatable) /* throws Net.Vpc.Upa.Exceptions.UPAException */
        {
            if (closed)
            {
                throw new System.ArgumentException("Connection closed");
            }
            long startTime = System.DateTime.Now.Ticks;

            System.Exception error = null;
            try {
                try {
                    System.Data.IDbCommand s = null;
                    s             = connection.CreateCommand();
                    s.CommandText = query;
                    s.CommandType = System.Data.CommandType.Text;
                    int mi    = 0;
                    int index = 1;
                    if (queryParameters != null)
                    {
                        foreach (Net.Vpc.Upa.Persistence.Parameter @value in queryParameters)
                        {
                            Net.Vpc.Upa.Types.DataTypeTransform         transform  = @value.GetTypeTransform();
                            Net.Vpc.Upa.Impl.Persistence.TypeMarshaller marshaller = marshallManager.GetTypeMarshaller(transform);
                            marshaller.Write(@value.GetValue(), index, s);
                            index += marshaller.GetSize();
                            mi++;
                        }
                    }
                    System.Data.IDataReader resultSet = s.ExecuteReader();
                    if (types == null)
                    {
                        int           columnCount;
                        System.Type[] colTypes;
                        columnCount = resultSet.FieldCount;
                        colTypes    = new System.Type[columnCount];
                        for (int i = 0; i < columnCount; i++)
                        {
                            colTypes[i] = resultSet.GetFieldType(i);
                        }
                        types = new Net.Vpc.Upa.Types.DataTypeTransform[columnCount];
                        for (int i = 0; i < types.Length; i++)
                        {
                            types[i] = new Net.Vpc.Upa.Impl.Transform.IdentityDataTypeTransform(Net.Vpc.Upa.Types.TypesFactory.ForPlatformType(colTypes[i]));
                        }
                    }
                    Net.Vpc.Upa.Impl.Persistence.TypeMarshaller[] marshallers = new Net.Vpc.Upa.Impl.Persistence.TypeMarshaller[types.Length];
                    for (int i = 0; i < marshallers.Length; i++)
                    {
                        marshallers[i] = marshallManager.GetTypeMarshaller(types[i]);
                    }
                    //        Log.log(PersistenceUnitManager.DB_PRE_NATIVE_QUERY_LOG,"[BEFORE] "+currentQueryInfo+" :=" + currentQuery);
                    return(new Net.Vpc.Upa.Impl.Persistence.DefaultQueryResult(resultSet, s, marshallers, types));
                } catch (System.Exception ee) {
                    error = ee;
                    throw ee;
                } finally {
                    if (/*IsLoggable=*/ true)
                    {
                        if (error != null)
                        {
                            log.TraceEvent(System.Diagnostics.TraceEventType.Error, 100, Net.Vpc.Upa.Impl.FwkConvertUtils.LogMessageExceptionFormatter(nameDebugString + " [Error] executeQuery " + query + " :: parameters = " + queryParameters, error));
                        }
                        else
                        {
                            log.TraceEvent(System.Diagnostics.TraceEventType.Verbose, 60, Net.Vpc.Upa.Impl.FwkConvertUtils.LogMessageExceptionFormatter("{0}   executeQuery    {1} ;; parameters = {2} ;; time = {3}", null, new object[] { nameDebugString, query, queryParameters, (System.DateTime.Now.Ticks - startTime) }));
                        }
                    }
                }
            } catch (System.Exception ex) {
                throw CreateUPAException(ex, "ExecuteQueryFailedException", query);
            }
        }
 public virtual Net.Vpc.Upa.Impl.Persistence.TypeMarshaller GetDelegate() {
     return @delegate = GetMarshallManager().GetTypeMarshaller(delegateType);
 }
 private void SetTypeMarshaller0(System.Type platformType, Net.Vpc.Upa.Impl.Persistence.TypeMarshaller wrapper)
 {
     wrapper.SetMarshallManager(this);
     typeToMarshallerMap[platformType] = wrapper;
 }
 public virtual void SetTypeMarshaller(System.Type platformType, Net.Vpc.Upa.Impl.Persistence.TypeMarshaller wrapper)
 {
     SetTypeMarshaller0(platformType, wrapper);
 }
 public virtual void SetNullMarshaller(Net.Vpc.Upa.Impl.Persistence.TypeMarshaller wrapper)
 {
     nullMarshaller = wrapper;
 }
 public ConstantDataMarshallerFactory(Net.Vpc.Upa.Impl.Persistence.TypeMarshaller w)
 {
     this.w = w;
 }