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;
|