class DeclComponentParserHolder {

    private static DeclComponentParser declComponentParser;

    public static DeclComponentParser loadDeclComponentParser(){<FILL_FUNCTION_BODY>}
}

        if (ObjectUtil.isNull(declComponentParser)) {
            List<DeclComponentParser> list = new ArrayList<>();
            ServiceLoader.load(DeclComponentParser.class).forEach(list::add);
            list.sort(Comparator.comparingInt(DeclComponentParser::priority));
            declComponentParser = list.get(0);
        }
        return declComponentParser;
    
<no_super_class>