blob: 3ae6e7543591efc11aa05c585ab221e28ff7f1b9 [file] [log] [blame]
/*global console:false, org:false */
(function() {
var getPropsFromCode = function( fun ) {
var reg = /properties\.\w+/g;
var matches = fun.toString().match( reg );
if( matches === null ) {
matches = [];
} else {
matches = matches.sort();
}
var lastMatch = null;
var result = [];
while( matches.length > 0 ) {
var prop = matches.pop().slice( 11 );
if( prop !== lastMatch ) {
result.push( prop );
}
lastMatch = prop;
}
return result;
};
var nl = "\n";
var lv1 = " ";
var lv2 = " ";
var registry = rwt.protocol.AdapterRegistry._registry;
var text = "RAP Protocol Reference" + nl + nl;
for( var key in registry ) {
try {
var adapter = registry[ key ];
text += "Type \"" + key + "\"" + nl;
var factoryProps = getPropsFromCode( adapter.factory );
if( factoryProps.length > 0 ) {
text += lv1 + "Contructor-Properties: \"" + factoryProps.join( "\", \"" ) + "\"" + nl;
}
if( adapter.properties.length > 0 ) {
text += lv1 + "Properties: \"" + adapter.properties.sort().join( "\", \"" ) + "\"" + nl;
}
if( adapter.knownListeners && adapter.knownListeners.length > 0 ) {
text += lv1 + "Events: \"" + adapter.knownListeners.sort().join( "\", \"" ) + "\"" + nl;
}
if( adapter.methods && adapter.methods.length > 0 ) {
var methods = adapter.methods.sort();
text += lv1 + "Methods: " + nl;
for( var i = 0; i < methods.length; i++ ) {
text += lv2 + "- \"" + methods[ i ] + "\"";
var handler = adapter.methodHandler && adapter.methodHandler[ [ methods[ i ] ] ];
if( handler ) {
var methodProps = getPropsFromCode( adapter.methodHandler[ [ methods[ i ] ] ] );
if( methodProps.length > 0 ) {
text += " (Properties: \"" + methodProps.join( "\", \"" ) + "\")";
}
}
text += nl;
}
}
text += nl;
} catch( ex ) {
console.log( ex );
}
}
console.log( text );
}());