- Json.Object class_to_json (Symbol cls)
- {
- var ret = new Json.Object();
- ret.set_string_member("name", cls.alias);
- var ag = new Json.Array();
- ret.set_array_member("augments", ag);
- for(var ii = 0, il = cls.augments.size; ii < il; ii++) {
- var contributer = this.symbolSet.getSymbol(cls.augments[ii]);
- if (contributer == null) {
- continue;
- }
- ag.add_string_element(contributer.alias);
- }
- ret.set_string_member("name", cls.alias);
- ret.set_string_member("desc", cls.desc);
- ret.set_boolean_member("isSingleton", cls.comment.getTag(DocTagTitle.SINGLETON).size > 0);
- ret.set_boolean_member("isStatic", cls.isa != "CONSTRUCTOR");
- ret.set_boolean_member("isBuiltin", cls.isBuiltin());
-
- // needded so that the class can fake a ctor..
- ret.set_string_member("memberOf", cls.name);
- ret.set_string_member("example", cls.comment.getTagAsString(DocTagTitle.EXAMPLE));
- ret.set_string_member("deprecated", // as depricated is used as a flag...
- cls.comment.getTag(DocTagTitle.DEPRECATED).size > 0 ?
- "This has been deprecated: "+ cls.comment.getTagAsString(DocTagTitle.DEPRECATED) :
- "");
- ret.set_string_member("since", cls.comment.getTagAsString(DocTagTitle.SINCE));
- ret.set_string_member("see", cls.comment.getTagAsString(DocTagTitle.SINCE));
- // not supported or used yet?
- //add.set_string_member("exceptions", m.comment.getTagAsString(DocTagTitle.EXCEPTIONS));
- //add.set_string_member("requires", m.comment.getTagAsString(DocTagTitle.REQUIRES));
- ret.set_array_member("params", cls.paramsToJson());
- ret.set_array_member("returns", new Json.Array());
-
- //ret.set_string_member("desc", cls.comment.getTagAsString(DocTagTitle.DESC));
- /// fixme - @see ... any others..
-
- var props = new Json.Array();
- ret.set_array_member("config", props);
- var cfgProperties = cls.configToArray();
- for(var i =0; i < cfgProperties.size;i++) {
- var p = cfgProperties.get(i);
- var add = new Json.Object();
- add.set_string_member("name",p.name);
- add.set_string_member("type",p.type);
- add.set_string_member("desc",p.desc);
- add.set_string_member("memberOf", p.memberOf);
- add.set_array_member("optvals",p.optvalues.size > 0 ? p.optvalue_as_json_array() : new Json.Array());
- props.add_object_element(add );
- }
-
- // methods
-
-
- var methods = new Json.Array();
- ret.set_array_member("methods", methods);
- foreach(var m in cls.methods) {
- if (m.isEvent || m.isIgnored) {
- continue;
- }
-
- var add = new Json.Object();
- add.set_string_member("name",m.name);
- //add.set_string_member("type","function");
- add.set_string_member("desc",m.desc);
- //add.set_string_member("sig", m.makeMethodSkel());
- add.set_boolean_member("isStatic", m.isStatic);
- add.set_boolean_member("isConstructor", m.isa == "CONSTRUCTOR");
- add.set_boolean_member("isPrivate", m.isPrivate);
- //add.set_string_member("instanceOf", m.comment.getTagAsString(DocTagTitle.INSTANCEOF));
- add.set_string_member("memberOf", m.memberOf);
- add.set_string_member("example", m.comment.getTagAsString(DocTagTitle.EXAMPLE));
- add.set_string_member("deprecated", // as depricated is used as a flag...
- m.comment.getTag(DocTagTitle.DEPRECATED).size > 0 ?
- "This has been deprecated: "+ m.comment.getTagAsString(DocTagTitle.DEPRECATED) :
- "");
- add.set_string_member("since", m.comment.getTagAsString(DocTagTitle.SINCE));
- add.set_string_member("see", m.comment.getTagAsString(DocTagTitle.SINCE));
- // not supported or used yet?
- //add.set_string_member("exceptions", m.comment.getTagAsString(DocTagTitle.EXCEPTIONS));
- //add.set_string_member("requires", m.comment.getTagAsString(DocTagTitle.REQUIRES));
- add.set_array_member("params", m.paramsToJson());
- add.set_array_member("returns", m.returnsToJson());
-
- /// fixme - @see ... any others..
-
-
- methods.add_object_element(add);
- }
-
-
- var events = new Json.Array();
- ret.set_array_member("events", events);
- foreach(var m in cls.methods) {
- if (!m.isEvent || m.isIgnored) {
- continue;
- }
-
- var add = new Json.Object();
- add.set_string_member("name",m.name.substring(1)); // all prefixed with '*'...
- //add.set_string_member("type","function");
- add.set_string_member("desc",m.desc);
- //add.set_string_member("sig", m.makeMethodSkel());
-
- add.set_string_member("memberOf", m.memberOf);
- add.set_string_member("example", m.comment.getTagAsString(DocTagTitle.EXAMPLE));
- add.set_string_member("deprecated", // as depricated is used as a flag...
- m.comment.getTag(DocTagTitle.DEPRECATED).size > 0 ?
- "This has been deprecated: "+ m.comment.getTagAsString(DocTagTitle.DEPRECATED) :
- "");
- add.set_string_member("since", m.comment.getTagAsString(DocTagTitle.SINCE));
- add.set_string_member("see", m.comment.getTagAsString(DocTagTitle.SINCE));
- // not supported or used yet?
- //add.set_string_member("exceptions", m.comment.getTagAsString(DocTagTitle.EXCEPTIONS));
- //add.set_string_member("requires", m.comment.getTagAsString(DocTagTitle.REQUIRES));
-
- add.set_array_member("params", m.paramsToJson());
- add.set_array_member("returns", m.returnsToJson());
-
- /// fixme - @see ... any others..
-
-
- events.add_object_element(add);
- }
-
-
-
-
- return ret;
- }