public Object[] get(final PsiElement context, CompletionContext completionContext) { XmlTag tag = PsiTreeUtil.getParentOfType(context, XmlTag.class, false); if (tag != null) { final XmlTag simpleContent = XmlUtil.getSchemaSimpleContent(tag); if (simpleContent != null) { final HashSet<String> variants = new HashSet<String>(); XmlUtil.collectEnumerationValues(simpleContent, variants); return ArrayUtil.toObjectArray(variants); } } return ArrayUtil.EMPTY_OBJECT_ARRAY; }
private static EnumerationData getEnumeratedValuesImpl(final XmlTag declaration) { if ("boolean".equals(declaration.getAttributeValue("name"))) { return new EnumerationData(new String[] {"true", "false"}, true); } final HashSet<String> variants = new HashSet<String>(); final boolean exaustive = XmlUtil.collectEnumerationValues(declaration, variants); if (variants.size() > 0) { return new EnumerationData(ArrayUtil.toStringArray(variants), exaustive); } return null; }