public static String validateCapabilities ( ToolConsumer consumer , JSONObject providerProfile ) { List < Properties > theTools = new ArrayList < Properties > ( ) ; Properties info = new Properties ( ) ; // Mostly to catch casting errors from bad JSON try { String retval = parseToolProfile ( theTools , info , providerProfile ) ; if ( retval != null ) return retval ; if ( theTools . size ( ) < 1 ) return "No tools found in profile" ; // Check all the capabilities requested by all the tools comparing against consumer List < String > capabilities = consumer . getCapability_offered ( ) ; for ( Properties theTool : theTools ) { String ec = ( String ) theTool . get ( "enabled_capability" ) ; JSONArray enabled_capability = ( JSONArray ) JSONValue . parse ( ec ) ; if ( enabled_capability != null ) for ( Object o : enabled_capability ) { ec = ( String ) o ; if ( capabilities . contains ( ec ) ) continue ; return "Capability not permitted=" + ec ; } } return null ; } catch ( Exception e ) { return "Exception:" + e . getLocalizedMessage ( ) ; } }
Validate incoming capabilities requested against out ToolConsumer