From: <na...@us...> - 2006-08-07 11:30:44
|
Revision: 700 Author: nandod Date: 2006-08-07 04:30:35 -0700 (Mon, 07 Aug 2006) ViewCVS: http://svn.sourceforge.net/instantobjects?rev=700&view=rev Log Message: ----------- * pulled TInstantAttribute.Initialize up to keep TInstantAttribute.SetMetadata clean of unwanted side effects. Modified Paths: -------------- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas 2006-08-07 04:06:11 UTC (rev 699) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantClasses.pas 2006-08-07 11:30:35 UTC (rev 700) @@ -404,6 +404,7 @@ procedure SetOwner(AOwner: TInstantAbstractObject); function GetMetadata: TInstantCollectionItem; procedure SetMetadata(AMetadata: TInstantCollectionItem); + procedure Initialize; virtual; public constructor Create(AOwner: TInstantAbstractObject; AMetadata: TInstantCollectionItem); virtual; @@ -1943,10 +1944,15 @@ Result := FOwner; end; +procedure TInstantAbstractAttribute.Initialize; +begin +end; + procedure TInstantAbstractAttribute.SetMetadata( AMetadata: TInstantCollectionItem); begin FMetadata := AMetadata; + Initialize; end; procedure TInstantAbstractAttribute.SetOwner(AOwner: TInstantAbstractObject); @@ -1959,7 +1965,7 @@ begin inherited Create; FOwner := AOwner; - FMetadata := AMetadata; + SetMetadata(AMetadata); end; end. Modified: branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas =================================================================== --- branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas 2006-08-07 04:06:11 UTC (rev 699) +++ branches/Refactor_InstantPersistenceUnit/Source/Core/InstantPersistence.pas 2006-08-07 11:30:35 UTC (rev 700) @@ -179,7 +179,6 @@ function GetIsDefault: Boolean; virtual; function GetIsMandatory: Boolean; virtual; function GetOwner: TInstantObject; reintroduce; virtual; - procedure Initialize; virtual; procedure ReadName(Reader: TInstantReader); procedure SetAsBoolean(AValue: Boolean); virtual; procedure SetAsCurrency(AValue: Currency); virtual; @@ -2270,8 +2269,7 @@ begin Assert((AOwner = nil) or (AOwner is TInstantObject)); Assert((AMetadata = nil) or (AMetadata is TInstantAttributeMetadata)); - inherited Create(AOwner, nil); - SetMetadata(TInstantAttributeMetadata(AMetadata)); + inherited Create(AOwner, AMetadata); end; function TInstantAttribute.GetAsBoolean: Boolean; @@ -2386,10 +2384,6 @@ Result := AsVariant; end; -procedure TInstantAttribute.Initialize; -begin -end; - procedure TInstantAttribute.ReadName(Reader: TInstantReader); begin Reader.ReadStr; @@ -2454,7 +2448,6 @@ if Assigned(Value) and (Value.AttributeType <> AttributeType) then raise EInstantError.CreateFmt(SMetadataMismatch, [ClassName, Name]); inherited SetMetadata(Value); - Initialize; end; procedure TInstantAttribute.SetOwner(AOwner: TInstantObject); |