From: Michael D. <mik...@us...> - 2004-08-22 06:24:43
|
Update of /cvsroot/nhibernate/nhibernate/src/NHibernate/Type In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31809/NHibernate/Type Modified Files: ComponentType.cs Log Message: Added code to use IGetter and ISetter Index: ComponentType.cs =================================================================== RCS file: /cvsroot/nhibernate/nhibernate/src/NHibernate/Type/ComponentType.cs,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ComponentType.cs 6 May 2004 13:14:03 -0000 1.8 --- ComponentType.cs 22 Aug 2004 06:24:26 -0000 1.9 *************** *** 17,22 **** private ConstructorInfo contructor; private IType[] types; ! private ReflectHelper.Getter[] getters; ! private ReflectHelper.Setter[] setters; private string[] propertyNames; private int propertySpan; --- 17,22 ---- private ConstructorInfo contructor; private IType[] types; ! private Property.IGetter[] getters; ! private Property.ISetter[] setters; private string[] propertyNames; private int propertySpan; *************** *** 24,28 **** private OuterJoinLoaderType[] joinedFetch; private string parentProperty; ! private ReflectHelper.Setter parentSetter; public override SqlType[] SqlTypes(IMapping mapping) { --- 24,30 ---- private OuterJoinLoaderType[] joinedFetch; private string parentProperty; ! private Property.ISetter parentSetter; ! //TODO: This is new... ! private Property.IGetter parentGetter; public override SqlType[] SqlTypes(IMapping mapping) { *************** *** 49,52 **** --- 51,57 ---- public ComponentType(System.Type componentClass, string[] properties, + Property.IGetter[] propertyGetters, + Property.ISetter[] propertySetters, + bool foundCustomAcessor, IType[] types, OuterJoinLoaderType[] joinedFetch, *************** *** 59,75 **** this.types = types; propertySpan = properties.Length; ! getters = new ReflectHelper.Getter[propertySpan]; ! setters = new ReflectHelper.Setter[propertySpan]; string[] getterNames = new string[propertySpan]; string[] setterNames = new string[propertySpan]; System.Type[] propTypes = new System.Type[propertySpan]; ! for (int i=0; i<propertySpan; i++) { ! getters[i] = ReflectHelper.GetGetter( componentClass, properties[i] ); ! setters[i] = ReflectHelper.GetSetter( componentClass, properties[i] ); getterNames[i] = getters[i].Property.Name; setterNames[i] = setters[i].Property.Name; propTypes[i] = getters[i].Property.PropertyType; } ! this.parentSetter = (parentProperty==null) ? null : ReflectHelper.GetSetter(componentClass, parentProperty); this.parentProperty = parentProperty; this.propertyNames = properties; --- 64,90 ---- this.types = types; propertySpan = properties.Length; ! getters = propertyGetters; ! setters = propertySetters; string[] getterNames = new string[propertySpan]; string[] setterNames = new string[propertySpan]; System.Type[] propTypes = new System.Type[propertySpan]; ! for (int i=0; i<propertySpan; i++) ! { getterNames[i] = getters[i].Property.Name; setterNames[i] = setters[i].Property.Name; propTypes[i] = getters[i].Property.PropertyType; } ! ! if(parentProperty==null) ! { ! parentSetter = null; ! parentGetter = null; ! } ! else ! { ! Property.IPropertyAccessor pa = Property.PropertyAccessorFactory.GetPropertyAccessor(null); ! parentSetter = pa.GetSetter( componentClass, parentProperty ); ! parentGetter = pa.GetGetter( componentClass, parentProperty ); ! } this.parentProperty = parentProperty; this.propertyNames = properties; |