private MultiValuedMap < String , VarBindingDef > createPropertyProviders ( FunctionInputDef inputDef ) { propertyProviders_ = MultiMapUtils . newListValuedHashMap ( ) ; for ( VarDefIterator varDefs = new VarDefIterator ( inputDef . getVarDefs ( ) ) ; varDefs . hasNext ( ) ; ) { VarDef varDef = varDefs . next ( ) ; for ( Iterator < VarValueDef > values = varDef . getValidValues ( ) ; values . hasNext ( ) ; ) { VarValueDef value = values . next ( ) ; if ( value . hasProperties ( ) ) { VarBindingDef binding = new VarBindingDef ( varDef , value ) ; for ( Iterator < String > properties = value . getProperties ( ) . iterator ( ) ; properties . hasNext ( ) ; ) { propertyProviders_ . put ( properties . next ( ) , binding ) ; } } } } return propertyProviders_ ; }
Return a map that associates each value property with the set of bindings that provide it .