|
From: <na...@us...> - 2010-09-11 16:48:02
|
Revision: 904
http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=904&view=rev
Author: nandod
Date: 2010-09-11 16:47:56 +0000 (Sat, 11 Sep 2010)
Log Message:
-----------
+ TInstantModel.MergeFromResFile. A first attempt to support distributed models.
Modified Paths:
--------------
trunk/Source/Core/InstantMetadata.pas
Modified: trunk/Source/Core/InstantMetadata.pas
===================================================================
--- trunk/Source/Core/InstantMetadata.pas 2010-09-11 16:46:38 UTC (rev 903)
+++ trunk/Source/Core/InstantMetadata.pas 2010-09-11 16:47:56 UTC (rev 904)
@@ -289,6 +289,7 @@
destructor Destroy; override;
procedure LoadFromFile(const FileName: string);
procedure LoadFromResFile(const FileName: string);
+ procedure MergeFromResFile(const FileName: string);
procedure SaveToFile(const FileName: string);
procedure SaveToResFile(const FileName: string);
property ClassMetadatas: TInstantClassMetadatas read GetClassMetadatas;
@@ -1396,6 +1397,30 @@
end;
end;
+procedure TInstantModel.MergeFromResFile(const FileName: string);
+var
+ LModel: TInstantModel;
+ I: Integer;
+ LClassMetadata: TInstantClassMetadata;
+begin
+ LModel := TInstantModel.Create;
+ try
+ LModel.LoadFromResFile(FileName);
+ for I := 0 to LModel.ClassMetadatas.Count - 1 do
+ begin
+ LClassMetadata := ClassMetadatas.Add;
+ try
+ LClassMetadata.Assign(LModel.ClassMetadatas[I]);
+ except
+ FreeAndNil(LClassMetadata);
+ raise;
+ end;
+ end;
+ finally
+ LModel.Free;
+ end;
+end;
+
procedure TInstantModel.SaveToFile(const FileName: string);
var
Stream: TInstantFileStream;
|