example updated
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 28de090..0cc81a3 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,14 @@
*******************************************************************************/
package org.eclipse.dltk.javascript.developertools;
+import org.eclipse.core.runtime.Assert;
+import org.eclipse.dltk.javascript.typeinfo.ITypeNames;
import org.eclipse.dltk.javascript.typeinfo.TypeUtil;
+import org.eclipse.dltk.javascript.typeinfo.model.Constructor;
+import org.eclipse.dltk.javascript.typeinfo.model.JSType;
+import org.eclipse.dltk.javascript.typeinfo.model.Member;
+import org.eclipse.dltk.javascript.typeinfo.model.Parameter;
+import org.eclipse.dltk.javascript.typeinfo.model.ParameterKind;
import org.eclipse.dltk.javascript.typeinfo.model.Property;
import org.eclipse.dltk.javascript.typeinfo.model.Type;
import org.eclipse.dltk.javascript.typeinfo.model.TypeInfoModelFactory;
@@ -36,34 +43,40 @@
exampleType.setName("Example");
exampleType.setKind(TypeKind.JAVASCRIPT);
//
- final Property id = typeInfoFactory.createProperty();
- id.setName("id");
- id.setType(TypeUtil.ref(numberType));
- exampleType.getMembers().add(id);
- // id.setAttribute("a", 1);
- // id.setAttribute("b", 2L);
+ exampleType.getMembers().add(
+ createProperty("id", TypeUtil.ref(numberType)));
+ exampleType.getMembers()
+ .add(createProperty("uid", TypeUtil.ref("UID")));
+ exampleType.getMembers().add(
+ createProperty("name", TypeUtil.ref(stringType)));
+ exampleType.getMembers().add(
+ createProperty("names",
+ TypeUtil.arrayOf(TypeUtil.ref(stringType))));
//
- final Property uid = typeInfoFactory.createProperty();
- uid.setName("uid");
- uid.setType(TypeUtil.ref("UID"));
- exampleType.getMembers().add(uid);
- //
- final Property name = typeInfoFactory.createProperty();
- name.setName("name");
- 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);
+ final Constructor constructor = typeInfoFactory.createConstructor();
+ constructor.setName(exampleType.getName());
+ final Parameter parameter = typeInfoFactory.createParameter();
+ parameter.setName("value");
+ parameter.setType(TypeUtil.ref(ITypeNames.OBJECT));
+ parameter.setKind(ParameterKind.OPTIONAL);
+ constructor.getParameters().add(parameter);
+ exampleType.setConstructor(constructor);
+ Assert.isTrue(constructor.getDeclaringType() == exampleType);
//
resource.getContents().add((EObject) exampleType);
+ //
resource.setEncoding("UTF-8");
resource.save(System.out, null);
return EXIT_OK;
}
+ private Member createProperty(String name, JSType type) {
+ final Property property = typeInfoFactory.createProperty();
+ property.setName(name);
+ property.setType(type);
+ return property;
+ }
+
public void stop() {
}
}