private static IIBItem Create(String name, IDictionary<string, string> attributes)
{
switch (name)
{
case "archive":
return new IBArchive(attributes);
case "array":
return new IBArray(attributes);
case "bool":
case "boolean":
return new IBBoolean(attributes);
case "bytes":
return new IBBytes(attributes);
case "dictionary":
return new IBDictionary(attributes);
case "double":
return new IBDouble(attributes);
case "float":
case "real":
return new IBFloat(attributes);
case "nil":
return new IBNil(attributes);
case "int":
case "integer":
return new IBInteger(attributes);
case "object":
return GetInstance(attributes);
case "reference":
return new IBReference(attributes);
case "set":
return new IBSet(attributes);
case "string":
return new IBString(attributes);
case "characters":
case "data":
return new IBObject(attributes);
default:
throw new NotSupportedException("Element not supported: " + name);
}
}