From: Nando D. <na...@us...> - 2004-09-30 15:28:11
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20710/Core Modified Files: InstantCode.pas Log Message: Added support for externalstored and externallinked to TPart; mixed reformatting and cosmetic changes Index: InstantCode.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantCode.pas,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** InstantCode.pas 10 Sep 2004 10:16:59 -0000 1.4 --- InstantCode.pas 30 Sep 2004 15:27:54 -0000 1.5 *************** *** 26,30 **** * Contributor(s): * Carlo Barazzetta, Adrea Petrelli: porting Kylix ! * * ***** END LICENSE BLOCK ***** *) --- 26,31 ---- * Contributor(s): * Carlo Barazzetta, Adrea Petrelli: porting Kylix ! * Nando Dessena, Andrea Petrelli: ! * - ExternalPart, ExternalParts and ExternalReferences support * ***** END LICENSE BLOCK ***** *) *************** *** 1516,1519 **** --- 1517,1525 ---- end; + TPartTypeProcessor = class(TObjectTypeProcessor) + protected + procedure InternalRead; override; + end; + const {$IFDEF MSWINDOWS} *************** *** 1602,1606 **** AddObject('Memo', TStringTypeProcessor.Create); AddObject('DateTime', TDateTimeTypeProcessor.Create); ! AddObject('Part', TObjectTypeProcessor.Create); AddObject('Reference', TObjectTypeProcessor.Create); AddObject('Parts', TContainerTypeProcessor.Create); --- 1608,1612 ---- AddObject('Memo', TStringTypeProcessor.Create); AddObject('DateTime', TDateTimeTypeProcessor.Create); ! AddObject('Part', TPartTypeProcessor.Create); AddObject('Reference', TObjectTypeProcessor.Create); AddObject('Parts', TContainerTypeProcessor.Create); *************** *** 1768,1775 **** procedure TContainerTypeProcessor.InternalRead; var ! Token:String; begin inherited; with FReader do while not Finished do begin --- 1774,1782 ---- procedure TContainerTypeProcessor.InternalRead; var ! Token: string; begin inherited; with FReader do + begin while not Finished do begin *************** *** 1777,1794 **** if NextChar = ';' then Break; ! Token:=ReadToken; ! if SameText(Token, 'default') then FMetadata.IsDefault := True; if SameText(Token, MetaKeyExternalStored) then ! begin ! FMetadata.IsExternal := ceStored; ! FMetadata.ExternalStoredName := ReadStringValue; ! end; if SameText(Token, MetaKeyExternalLinked) then ! begin ! FMetadata.IsExternal := ceLinked; ! FMetadata.ExternalLinkedName := ReadStringValue; ! end; end; end; --- 1784,1802 ---- if NextChar = ';' then Break; ! Token := ReadToken; ! if SameText(Token, MetaKeyDefault) then FMetadata.IsDefault := True; if SameText(Token, MetaKeyExternalStored) then ! begin ! FMetadata.IsExternal := ceStored; ! FMetadata.ExternalStoredName := ReadStringValue; ! end; if SameText(Token, MetaKeyExternalLinked) then ! begin ! FMetadata.IsExternal := ceLinked; ! FMetadata.ExternalLinkedName := ReadStringValue; ! end; end; + end; end; *************** *** 3163,3167 **** begin Token := LowerCase(Reader.ReadToken); ! if Token = 'index' then Reader.ReadToken else if Token = 'read' then --- 3171,3175 ---- begin Token := LowerCase(Reader.ReadToken); ! if Token = MetaKeyIndex then Reader.ReadToken else if Token = 'read' then *************** *** 3169,3175 **** else if Token = 'write' then SetterName := Reader.ReadToken ! else if Token = 'default' then DefaultValue := Reader.ReadRestOfStatement ! else if Token = 'stored' then Stored := Reader.ReadToken else if Token = ';' then --- 3177,3183 ---- else if Token = 'write' then SetterName := Reader.ReadToken ! else if Token = MetaKeyDefault then DefaultValue := Reader.ReadRestOfStatement ! else if Token = MetaKeyStored then Stored := Reader.ReadToken else if Token = ';' then *************** *** 3177,3181 **** end; SavePos := Reader.Position; ! IsDefault := SameText(Reader.ReadToken, 'default'); if IsDefault then Reader.ReadEndOfStatement(True) --- 3185,3189 ---- end; SavePos := Reader.Position; ! IsDefault := SameText(Reader.ReadToken, MetaKeyDefault); if IsDefault then Reader.ReadEndOfStatement(True) *************** *** 8505,8508 **** --- 8513,8545 ---- end; + { TPartTypeProcessor } + + procedure TPartTypeProcessor.InternalRead; + var + Token: string; + begin + inherited; + with FReader do + begin + while not Finished do + begin + SkipSpace; + if NextChar = ';' then + Break; + Token := ReadToken; + if SameText(Token, MetaKeyExternalStored) then + begin + FMetadata.IsExternal := ceStored; + FMetadata.ExternalStoredName := ReadStringValue; + end; + if SameText(Token, MetaKeyExternalLinked) then + begin + FMetadata.IsExternal := ceLinked; + FMetadata.ExternalLinkedName := ReadStringValue; + end; + end; + end; + end; + initialization CreateTypeProcessors; |