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