thirdparty/jsdoctoolkit/app/frame/Reflection.js
author Lennard de Rijk <ljvderijk@gmail.com>
Sun, 25 Oct 2009 18:43:23 -0700
changeset 3050 5f135cfac194
parent 3041 c8f47f0b6697
permissions -rw-r--r--
Reworked the redirects to work with the new Request model. Also made use of the collection of Role Views in the Role View in combination with the role property in the Request model, to facilitate the redirects.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3041
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     1
/**@constructor*/
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     2
function Reflection(obj) {
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     3
	this.obj = obj;
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     4
}
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     5
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     6
Reflection.prototype.getConstructorName = function() {
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     7
	if (this.obj.constructor.name) return this.obj.constructor.name;
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     8
	var src = this.obj.constructor.toSource();
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
     9
	var name = src.substring(name.indexOf("function")+8, src.indexOf('(')).replace(/ /g,'');
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    10
	return name;
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    11
}
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    12
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    13
Reflection.prototype.getMethod = function(name) {
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    14
	for (var p in this.obj) {
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    15
		if (p == name && typeof(this.obj[p]) == "function") return this.obj[p];
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    16
	}
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    17
	return null;
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    18
}
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    19
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    20
Reflection.prototype.getParameterNames = function() {
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    21
	var src = this.obj.toSource();
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    22
	src = src.substring(
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    23
		src.indexOf("(", 8)+1, src.indexOf(")")
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    24
	);
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    25
	return src.split(/, ?/);
c8f47f0b6697 JSDocToolkit 2.3.0 added to create documentation for JS files.
Mario Ferraro <fadinlight@gmail.com>
parents:
diff changeset
    26
}