lojix/state/src/main/com/thesett/aima/state/impl/PropertyIntrospectorBase.java
private void initialize(Object callee)
    {
        // This is used to build up all the setter methods in.
        Map<String, List<Method>> settersTemp = new HashMap<String, List<Method>>();

        // Get all the property getters and setters on this class.
        Method[] methods = callee.getClass().getMethods();

        for (Method nextMethod : methods)
        {
            String methodName = nextMethod.getName();

            // Check if it is a getter method.
            if (methodName.startsWith("get") && (methodName.length() >= 4) &&
                    Character.isUpperCase(methodName.charAt(3)) && Modifier.isPublic(nextMethod.getModifiers()) &&
                    (nextMethod.getParameterTypes().length == 0))
            {
                String propertyName = methodName.substring(3, 4).toLowerCase() + methodName.substring(4);

                getters.put(propertyName, nextMethod);
            }

            // Check if it is a setter method.
            else if (methodName.startsWith("set") && Modifier.isPublic(nextMethod.getModifiers()) &&
                    (nextMethod.getParameterTypes().length == 1))
            {
                /*log.fine("Found setter method.");*/

                String propertyName = methodName.substring(3, 4).toLowerCase() + methodName.substring(4);
                /*log.fine("propertyName = " + propertyName);*/

                // Check the setter to see if any for this name already exist, and start a new list if not.
                List<Method> setterMethodsForName = settersTemp.get(propertyName);

                if (setterMethodsForName == null)
                {
                    setterMethodsForName = new ArrayList<Method>();
                    settersTemp.put(propertyName, setterMethodsForName);
                }

                // Add the setter method to the list of setter methods for the named property.
                setterMethodsForName.add(nextMethod);
            }
        }

        // Convert all the lists of setter methods into arrays.
        for (Map.Entry<String, List<Method>> entries : settersTemp.entrySet())
        {
            String nextPropertyName = entries.getKey();
            List<Method> nextMethodList = entries.getValue();

            Method[] methodArray = nextMethodList.toArray(new Method[nextMethodList.size()]);
            setters.put(nextPropertyName, methodArray);
        }

        // Initialization completed, set the initialized flag.
        initialized = true;
    }
private void initialize(Object callee)
    {
        // This is used to build up all the setter methods in.
        Map<String, List<Method>> settersTemp = new HashMap<String, List<Method>>();

        // Get all the property getters and setters on this class.
        Method[] methods = callee.getClass().getMethods();

        for (Method nextMethod : methods)
        {
            String methodName = nextMethod.getName();

            // Check if it is a getter method.
            if (methodName.startsWith("get") && (methodName.length() >= 4) &&
                    Character.isUpperCase(methodName.charAt(3)) && Modifier.isPublic(nextMethod.getModifiers()) &&
                    (nextMethod.getParameterTypes().length == 0))
            {
                String propertyName = methodName.substring(3, 4).toLowerCase() + methodName.substring(4);

                getters.put(propertyName, nextMethod);
            }

            // Check if it is a setter method.
            else if (methodName.startsWith("set") && Modifier.isPublic(nextMethod.getModifiers()) &&
                    (nextMethod.getParameterTypes().length == 1))
            {
                /*log.fine("Found setter method.");*/

                String propertyName = methodName.substring(3, 4).toLowerCase() + methodName.substring(4);
                /*log.fine("propertyName = " + propertyName);*/

                // Check the setter to see if any for this name already exist, and start a new list if not.
                List<Method> setterMethodsForName = settersTemp.get(propertyName);

                if (setterMethodsForName == null)
                {
                    setterMethodsForName = new ArrayList<Method>();
                    settersTemp.put(propertyName, setterMethodsForName);
                }

                // Add the setter method to the list of setter methods for the named property.
                setterMethodsForName.add(nextMethod);
            }
        }

        // Convert all the lists of setter methods into arrays.
        for (Map.Entry<String, List<Method>> entries : settersTemp.entrySet())
        {
            String nextPropertyName = entries.getKey();
            List<Method> nextMethodList = entries.getValue();

            Method[] methodArray = nextMethodList.toArray(new Method[nextMethodList.size()]);
            setters.put(nextPropertyName, methodArray);
        }

        // Initialization completed, set the initialized flag.
        initialized = true;
    }
private void initialize ( Object callee ) { // This is used to build up all the setter methods in. Map < String , List < Method > > settersTemp = new HashMap < String , List < Method > > ( ) ; // Get all the property getters and setters on this class. Method [ ] methods = callee . getClass ( ) . getMethods ( ) ; for ( Method nextMethod : methods ) { String methodName = nextMethod . getName ( ) ; // Check if it is a getter method. if ( methodName . startsWith ( "get" ) && ( methodName . length ( ) >= 4 ) && Character . isUpperCase ( methodName . charAt ( 3 ) ) && Modifier . isPublic ( nextMethod . getModifiers ( ) ) && ( nextMethod . getParameterTypes ( ) . length == 0 ) ) { String propertyName = methodName . substring ( 3 , 4 ) . toLowerCase ( ) + methodName . substring ( 4 ) ; getters . put ( propertyName , nextMethod ) ; } // Check if it is a setter method. else if ( methodName . startsWith ( "set" ) && Modifier . isPublic ( nextMethod . getModifiers ( ) ) && ( nextMethod . getParameterTypes ( ) . length == 1 ) ) { /*log.fine("Found setter method.");*/ String propertyName = methodName . substring ( 3 , 4 ) . toLowerCase ( ) + methodName . substring ( 4 ) ; /*log.fine("propertyName = " + propertyName);*/ // Check the setter to see if any for this name already exist, and start a new list if not. List < Method > setterMethodsForName = settersTemp . get ( propertyName ) ; if ( setterMethodsForName == null ) { setterMethodsForName = new ArrayList < Method > ( ) ; settersTemp . put ( propertyName , setterMethodsForName ) ; } // Add the setter method to the list of setter methods for the named property. setterMethodsForName . add ( nextMethod ) ; } } // Convert all the lists of setter methods into arrays. for ( Map . Entry < String , List < Method > > entries : settersTemp . entrySet ( ) ) { String nextPropertyName = entries . getKey ( ) ; List < Method > nextMethodList = entries . getValue ( ) ; Method [ ] methodArray = nextMethodList . toArray ( new Method [ nextMethodList . size ( ) ] ) ; setters . put ( nextPropertyName , methodArray ) ; } // Initialization completed, set the initialized flag. initialized = true ; }
Initialized this property introspector on a specified object, building the caches of getter and setter methods.

@param callee The object to call the getter and setter methods on.
Initialized this property introspector on a specified object building the caches of getter and setter methods .