introduce ArrayType, parse type expressions to JSType objects
diff --git a/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ExampleModelSaver.java b/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ExampleModelSaver.java
index 104292f..0c9839e 100644
--- a/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ExampleModelSaver.java
+++ b/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ExampleModelSaver.java
@@ -11,7 +11,7 @@
  *******************************************************************************/
 package org.eclipse.dltk.javascript.developertools;
 
-import org.eclipse.dltk.javascript.typeinfo.TypeInfoUtil;
+import org.eclipse.dltk.javascript.typeinfo.TypeUtil;
 import org.eclipse.dltk.javascript.typeinfo.model.Property;
 import org.eclipse.dltk.javascript.typeinfo.model.Type;
 import org.eclipse.dltk.javascript.typeinfo.model.TypeInfoModelFactory;
@@ -38,16 +38,21 @@
 		//
 		final Property id = typeInfoFactory.createProperty();
 		id.setName("id");
-		id.setType(TypeInfoUtil.ref(numberType));
+		id.setType(TypeUtil.ref(numberType));
 		exampleType.getMembers().add(id);
-		id.setAttribute("a", 1);
-		id.setAttribute("b", 2L);
+		// id.setAttribute("a", 1);
+		// id.setAttribute("b", 2L);
 		//
 		final Property name = typeInfoFactory.createProperty();
 		name.setName("name");
-		name.setType(TypeInfoUtil.ref(stringType));
+		name.setType(TypeUtil.ref(stringType));
 		exampleType.getMembers().add(name);
 		//
+		final Property names = typeInfoFactory.createProperty();
+		names.setName("names");
+		names.setType(TypeUtil.arrayOf(TypeUtil.ref(stringType)));
+		exampleType.getMembers().add(names);
+		//
 		resource.getContents().add((EObject) exampleType);
 		resource.setEncoding("UTF-8");
 		resource.save(System.out, null);
diff --git a/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ReferenceModelSaver.java b/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ReferenceModelSaver.java
index f47cd75..e79b621 100644
--- a/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ReferenceModelSaver.java
+++ b/javascript/tools/org.eclipse.dltk.javascript.dev-tools/src/org/eclipse/dltk/javascript/developertools/ReferenceModelSaver.java
@@ -29,7 +29,7 @@
 import org.eclipse.dltk.internal.javascript.typeinference.NativeStringReference;
 import org.eclipse.dltk.internal.javascript.typeinference.NativeXMLReference;
 import org.eclipse.dltk.internal.javascript.typeinference.StandardSelfCompletingReference;
-import org.eclipse.dltk.javascript.typeinfo.TypeInfoUtil;
+import org.eclipse.dltk.javascript.typeinfo.TypeUtil;
 import org.eclipse.dltk.javascript.typeinfo.model.Member;
 import org.eclipse.dltk.javascript.typeinfo.model.Method;
 import org.eclipse.dltk.javascript.typeinfo.model.Parameter;
@@ -110,7 +110,7 @@
 				member = TypeInfoModelFactory.eINSTANCE.createProperty();
 			}
 			member.setName(reference.getName());
-			member.setType(TypeInfoUtil.ref(types.get(ref.getClass())));
+			member.setType(TypeUtil.ref(types.get(ref.getClass())));
 			member.setDescription(ref.getProposalInfo());
 			type.getMembers().add(member);
 		}