code: 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_;
      }
docs: Return a map that associates each value property with the set of bindings that provide it.