{ "type": "class",
  "qname": "org.apache.royale.collections.CollectionUtils",
  "baseClassname": ""
  ,
  "members": [
  { "type": "method",
        "qname": "findIndex",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Search for an index in a collection of objects, given the key and the value",
        "tags": [
        {  "tagName": "param",
               "values": ["collection The <code>ICollectionView</code> to inspect", "key The <code>String</code> that will be use for search", "value Any kind of object to perform the comparison"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "return",
               "values": ["an <code>int</code> that represents the index of the object in the collection"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "int",
          "params": [{ "name": "collection", "type": "org.apache.royale.collections.ICollectionView"},
        { "name": "key", "type": "String"},
        { "name": "value", "type": "*"}]}
      ,
      { "type": "method",
        "qname": "getItemByField",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Get a item in a given collection given a key and a value",
        "tags": [
        {  "tagName": "param",
               "values": ["collection The <code>ICollectionView</code> to inspect", "key The <code>String</code> that will be used for comparison field name", "value Any kind of object to perform the comparison - a value of undefined is ignored"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "return",
               "values": ["The first object with a comparison field match to the value, if exists in the collection"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "*",
          "params": [{ "name": "collection", "type": "org.apache.royale.collections.ICollectionView"},
        { "name": "key", "type": "String"},
        { "name": "value", "type": "*"}]}
      ,
      { "type": "method",
        "qname": "findSelectedIndex",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Tries to find the object or the propertyId in a collection and returns the index if found. The comparison is based on 'id' Supports nulls in property object and returns -1 For use with List components in bindings with &quot;selectedIndex&quot;",
        "tags": [
        {  "tagName": "param",
               "values": ["collection a <code>ICollectionView</code> dataprovider where we need to look for", "obj an <code>Object</code> with a subproperty used for comparison", "property the <code>String</code> name of the subproperty. This could be an Object with an id or directly a propertyId"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "return",
               "values": ["the index if found, -1 if the object is null or not found"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Number",
          "params": [{ "name": "collection", "type": "org.apache.royale.collections.ICollectionView"},
        { "name": "obj", "type": "Object"},
        { "name": "property", "type": "String"}]}
      ]
  }
