[JEDI.NET-commits] main/run Jedi.System.pas,1.3,1.4
Status: Pre-Alpha
Brought to you by:
jedi_mbe
From: Marcel B. <jed...@us...> - 2004-08-26 09:44:30
|
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26951/main/run Modified Files: Jedi.System.pas Log Message: * Added ToArrayList methods to safely convert 'array of Attribute' or AttributeCollection to an ArrayList, specifically when the specified array or collection is a nil reference. * Added GetAttribute to retrieve a specific attribute from the array or collection Index: Jedi.System.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.System.pas,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Jedi.System.pas 4 Aug 2004 08:28:18 -0000 1.3 --- Jedi.System.pas 26 Aug 2004 09:44:10 -0000 1.4 *************** *** 46,52 **** {$HINTS ON} strict protected - class function IndexOf(attrList: ArrayList; attr: System.Object): Integer; static; class function CombineAttributes(attributes1, attributes2: ArrayList; operation: AttributeCombineOperation): ArrayList; overload; static; public class function CombineAttributes(attributes1, attributes2: array of Attribute): AttributeArray; overload; static; --- 46,54 ---- {$HINTS ON} strict protected class function CombineAttributes(attributes1, attributes2: ArrayList; operation: AttributeCombineOperation): ArrayList; overload; static; + class function IndexOf(attrList: ArrayList; attr: System.Object): Integer; static; + class function ToArrayList(attrs: array of Attribute): ArrayList; overload; static; + class function ToArrayList(attrs: AttributeCollection): ArrayList; overload; static; public class function CombineAttributes(attributes1, attributes2: array of Attribute): AttributeArray; overload; static; *************** *** 65,68 **** --- 67,74 ---- class function CombineAttributes(attributes1: AttributeCollection; attributes2: array of Attribute; operation: AttributeCombineOperation): AttributeCollection; overload; static; + class function GetAttribute(attributes: array of Attribute; attr: Attribute): Attribute; overload; static; + class function GetAttribute(attributes: array of Attribute; attrType: System.Type): Attribute; overload; static; + class function GetAttribute(attributes: AttributeCollection; attr: Attribute): Attribute; overload; static; + class function GetAttribute(attributes: AttributeCollection; attrType: System.Type): Attribute; overload; static; end; {$ENDREGION} *************** *** 89,92 **** --- 95,114 ---- end; + class function AttributeUtils.ToArrayList(attrs: array of Attribute): ArrayList; + begin + if Assigned(attrs) then + Result := ArrayList.Create(&Array(attrs)) + else + Result := ArrayList.Create; + end; + + class function AttributeUtils.ToArrayList(attrs: AttributeCollection): ArrayList; + begin + if Assigned(attrs) then + Result := ArrayList.Create(attrs) + else + Result := ArrayList.Create; + end; + class function AttributeUtils.CombineAttributes(attributes1, attributes2: ArrayList; operation: AttributeCombineOperation): ArrayList; *************** *** 123,128 **** operation: AttributeCombineOperation): AttributeArray; begin ! Result := AttributeArray(CombineAttributes(ArrayList.Create(&Array(attributes1)), ! ArrayList.Create(&Array(attributes2)), operation).ToArray(TypeOf(Attribute))); end; --- 145,150 ---- operation: AttributeCombineOperation): AttributeArray; begin ! Result := AttributeArray(CombineAttributes(ToArrayList(attributes1), ToArrayList(attributes2), ! operation).ToArray(TypeOf(Attribute))); end; *************** *** 135,140 **** operation: AttributeCombineOperation): AttributeCollection; begin ! Result := AttributeCollection.Create(AttributeArray(CombineAttributes(ArrayList.Create(attributes1), ! ArrayList.Create(attributes2), operation).ToArray(TypeOf(Attribute)))); end; --- 157,162 ---- operation: AttributeCombineOperation): AttributeCollection; begin ! Result := AttributeCollection.Create(AttributeArray(CombineAttributes(ToArrayList(attributes1), ! ToArrayList(attributes2), operation).ToArray(TypeOf(Attribute)))); end; *************** *** 148,153 **** operation: AttributeCombineOperation): AttributeArray; begin ! Result := AttributeArray(CombineAttributes(ArrayList.Create(&Array(attributes1)), ! ArrayList.Create(attributes2), operation).ToArray(TypeOf(Attribute))); end; --- 170,175 ---- operation: AttributeCombineOperation): AttributeArray; begin ! Result := AttributeArray(CombineAttributes(ToArrayList(attributes1), ToArrayList(attributes2), ! operation).ToArray(TypeOf(Attribute))); end; *************** *** 161,166 **** attributes2: array of Attribute; operation: AttributeCombineOperation): AttributeCollection; begin ! Result := AttributeCollection.Create(AttributeArray(CombineAttributes(ArrayList.Create(attributes1), ! ArrayList.Create(&Array(attributes2)), operation).ToArray(TypeOf(Attribute)))); end; {$ENDREGION} --- 183,232 ---- attributes2: array of Attribute; operation: AttributeCombineOperation): AttributeCollection; begin ! Result := AttributeCollection.Create(AttributeArray(CombineAttributes(ToArrayList(attributes1), ! ToArrayList(attributes2), operation).ToArray(TypeOf(Attribute)))); ! end; ! ! class function AttributeUtils.GetAttribute(attributes: array of Attribute; attr: Attribute): Attribute; ! var ! idx: Integer; ! begin ! idx := IndexOf(ToArrayList(attributes), attr); ! if idx > -1 then ! Result := attributes[idx] ! else ! Result := nil; ! end; ! ! class function AttributeUtils.GetAttribute(attributes: array of Attribute; attrType: System.Type): Attribute; ! var ! idx: Integer; ! begin ! idx := IndexOf(ToArrayList(attributes), attrType); ! if idx > -1 then ! Result := attributes[idx] ! else ! Result := nil; ! end; ! ! class function AttributeUtils.GetAttribute(attributes: AttributeCollection; attr: Attribute): Attribute; ! var ! idx: Integer; ! begin ! idx := IndexOf(ToArrayList(attributes), attr); ! if idx > -1 then ! Result := attributes[idx] ! else ! Result := nil; ! end; ! ! class function AttributeUtils.GetAttribute(attributes: AttributeCollection; attrType: System.Type): Attribute; ! var ! idx: Integer; ! begin ! idx := IndexOf(ToArrayList(attributes), attrType); ! if idx > -1 then ! Result := attributes[idx] ! else ! Result := nil; end; {$ENDREGION} |