class ExtensionBeanDefinitionParser extends AbstractExtBeanDefinitionParser {

    public static final String                         CONTENT  = "content";

    private static final ExtensionBeanDefinitionParser INSTANCE = new ExtensionBeanDefinitionParser();

    public ExtensionBeanDefinitionParser() {
    }

    public static ExtensionBeanDefinitionParser getInstance() {
        return INSTANCE;
    }

    @Override
    protected Class<?> getBeanClass(Element element) {
        return ExtensionFactoryBean.class;
    }

    @Override
    protected void parserSubElement(Element element, ParserContext parserContext,
                                    BeanDefinitionBuilder builder) {<FILL_FUNCTION_BODY>}

    @Override
    public String supportTagName() {
        return "extension";
    }
}

        NodeList nl = element.getChildNodes();

        // parse all sub elements
        for (int i = 0; i < nl.getLength(); i++) {
            Node node = nl.item(i);
            if (node instanceof Element subElement) {
                // osgi:content
                if (CONTENT.equals(subElement.getLocalName())) {
                    builder.addPropertyValue(CONTENT, subElement);
                }
            }
        }
    
<methods>public non-sealed void <init>() <variables>private static final java.lang.String BEAN_CLASS_LOADER_WRAPPER,public static final java.lang.String REF