private void WriteListOfListWithValues(Type ft, System.Collections.IList list)
{
//Console.Out.WriteLine("WriteListOfListWithValues()");
//example:
//owl: allValuesFrom expr:INTEGER_List_List;
//owl: onProperty ifc:coordIndex_IfcTriangulatedFaceSet
ft = ft.GetGenericArguments()[0].GetGenericArguments()[0];
FieldInfo fieldValue = ft.GetField("Value");
List<string> listoflists = new List<string>();
ListObject newListObject;
for (int i = 0; i < list.Count; i++)
{
//new List of List
List<string> valuelist = new List<string>();
System.Collections.IList listInner = (System.Collections.IList)list[i];
for (int j = 0; j < listInner.Count; j++)
{
object elem = listInner[j];
if (elem != null) // should never be null, but be safe
{
elem = fieldValue.GetValue(elem);
string encodedvalue = System.Security.SecurityElement.Escape(elem.ToString());
valuelist.Add(encodedvalue);
}
}
//create listObject
#if VERBOSE
Console.Out.WriteLine("Message: Creating ListOfListWithValues with XSDType : " + fieldValue.FieldType.Name);
#endif
//newListObject = GetListObject(ft.Name + "_List_", ft.Name, valuelist, fieldValue.GetType().Name);
newListObject = GetListObject(ft.Name + "_List_", ft.Name, valuelist, fieldValue.FieldType.Name);
//Console.Out.WriteLine("written list prop (as obj. prop - part of list of list): attr = " + "inst:" + newListObject.URI);
//add to listOfList
listoflists.Add(newListObject.URI);
}
ListObject newListOfListObject = GetListOfListObject(ft.Name, listoflists, "###LISTOFLIST###");
m_writer.Write("inst:" + newListOfListObject.URI);
Console.Out.WriteLine("written list of list prop (as obj. prop): attr = " + "inst:" + newListOfListObject.URI);
}