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)); }
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"); }
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()); }
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); }
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)); }
public DataTypeTransformMarshaller(Net.Vpc.Upa.Types.DataTypeTransform dataTypeTransform, Net.Vpc.Upa.Impl.Persistence.TypeMarshaller targetMarshaller) { this.dataTypeTransform = dataTypeTransform; this.targetMarshaller = targetMarshaller; }
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; }