protected void map( Set<String> constraints ) {
        
        if( log.isLoggable(Level.FINEST) ) {
            log.log(Level.FINEST, "map({0})", constraints);
        } 
        for( Method m : delegateType.getDeclaredMethods() ) {        
            if( log.isLoggable(Level.FINEST) ) {
                log.log(Level.FINEST, "Checking method:{0}", m);
            }

            if( constraints == null && !allowName(m.getName()) ) {
                log.finest("Name is not allowed.");
                continue;
            }
            if( constraints != null && !constraints.contains(m.getName()) ) {
                log.finest("Name is not in constraints set.");
                continue;
            }

            if( isValidMethod(m, null) ) {
                if( log.isLoggable(Level.FINEST) ) {
                    log.log(Level.FINEST, "Adding method mapping:{0} = {1}", new Object[]{getMessageType(m), m});
                }
                // Make sure we can access the method even if it's not public or
                // is in a non-public inner class.
                m.setAccessible(true);  
                methods.put(getMessageType(m), m);
            }            
        }
        
        messageTypes = null;        
    }
Goes through all of the delegate type's declared methods
 mapping methods that match the current constraints.
 If the constraints set is null then allowName() is
 checked for names otherwise only names in the constraints
 set are allowed.
 For each candidate method that passes the above checks,
 isValidMethod() is called with a null message type argument.
 All methods are made accessible thus supporting non-public
 methods as well as public methods.
jme3-networking/src/main/java/com/jme3/network/util/AbstractMessageDelegator.java