-
+ function is_a(cls, instance_of) {
+ return methods[cls].extendsClasses.indexOf(instance_of) > -1;
+ }
function verifyUsage(parent,child)
{
-
-
+ // find all the methods that child can be added to parent.
+ var methods = methods[parent].can_contain_using;
+ for(var i =0;i<methods.length;i++) {
+ var m = methods[i].split(':');
+ if (!is_a(child,m[0])) {
+ continue;
+
+ }
+ if (verifyUsageMethod(parent,child,m[1])) {
+ return true;
+ }
+ }
+ return false;
}
usage[par] = [];
}
- verifyUsage(par,cls);
+ if (!verifyUsage(par,cls)) {
+ continue;
+ }
usage[par].pushUnique(cls);
if (typeof(tops[cls]) == 'undefined') {