private void put()

in core/src/main/java/com/alibaba/smart/framework/engine/extension/scanner/SimpleAnnotationScanner.java [194:219]


    private void put(ProcessEngineConfiguration processEngineConfiguration, Class<?> currentClazz,
                     Map<Class, Object> bindingMap, Class bindKeyClass) {
        boolean pecFound = false;

        Class tempClazz = currentClazz;

        while (tempClazz != null && !tempClazz.equals(Object.class)){

            Class<?>[] interfaces = tempClazz.getInterfaces();
            for (Class<?> anInterface : interfaces) {
                if (anInterface.equals(ProcessEngineConfigurationAware.class)) {
                    pecFound = true;
                    break;
                }
            }
            tempClazz = tempClazz.getSuperclass();
        }

        Object newInstance  = ClassUtil.createNewInstance(currentClazz);
        if (pecFound) {
            ((ProcessEngineConfigurationAware)newInstance).setProcessEngineConfiguration(
                processEngineConfiguration);
        }

        bindingMap.put(bindKeyClass, newInstance);
    }