void (XmlFile xmlFile, String uri, ClassLoader loader, @Nullable AntDomTypeDef typedef, AntDomProject antProject) { final AntDomAntlib antLib = AntSupport.getAntLib(xmlFile); if (antLib != null) { final List<AntDomTypeDef> defs = new ArrayList<>(); defs.addAll(antLib.getTaskdefs()); defs.addAll(antLib.getTypedefs()); if (!defs.isEmpty()) { for (AntDomTypeDef def : defs) { final String tagName = def.getName().getStringValue(); final String className = def.getClassName().getStringValue(); if (tagName != null && className != null) { AntDomNamedElement declaringElement = typedef != null? typedef : def; addCustomDefinition(declaringElement, tagName, uri, ClassProvider.create(className, loader)); } else { defineCustomElementsFromResources(def, uri, antProject, loader); } } } } }