+ function verifyUsageMethod(parent,child,method)
+ {
+ // currently only verifies add on container.
+ if (method !='Gtk.Container:add') {
+ return true;
+ }
+ var cls = parent.split('.').pop();
+ var x = new Gtk[cls]();
+ print(parent + " : says children are of type : " + x.child_type());
+
+ }
+
+ 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,methods[i])) {
+ return true;
+ }
+ }
+ return false;
+
+
+ }
+
+
+
+
+
+