@Override protected Template[] getTemplates(String contextTypeId) { if (contextType.getId().equals(contextTypeId)) { Template[] computedTemplates = null; if (templates != null) { computedTemplates = templates.getTemplate().toArray(new Template[templates.getTemplate().size()]); } TemplateStore templateStore = WikiTextTemplateAccess.getInstance().getTemplateStore(); if (templateStore != null) { Template[] customTemplates = templateStore.getTemplates(contextTypeId); if (customTemplates != null && customTemplates.length > 0) { if (computedTemplates == null) { computedTemplates = customTemplates; } else { List<Template> allTemplates = new ArrayList<>(computedTemplates.length + customTemplates.length); allTemplates.addAll(Arrays.asList(computedTemplates)); allTemplates.addAll(Arrays.asList(customTemplates)); computedTemplates = allTemplates.toArray(new Template[allTemplates.size()]); } } } if (computedTemplates != null) { return computedTemplates; } } return NO_TEMPLATES; }
public MarkupTemplateCompletionProcessor() { ContextTypeRegistry contextTypeRegistry = WikiTextTemplateAccess.getInstance().getContextTypeRegistry(); contextType = (SourceTemplateContextType) contextTypeRegistry.getContextType(SourceTemplateContextType.ID); if (contextType == null) { throw new IllegalStateException(); } }