String () { if (!myPrefixEvaluated) { for(PsiElement curParent = PsiTreeUtil.getParentOfType(getElement().getParent().getParent(),XmlTag.class); curParent instanceof XmlTag curParentTag; curParent = curParent.getParent()) { if ("bundle".equals(curParentTag.getLocalName()) && Arrays.binarySearch(XmlUtil.JSTL_FORMAT_URIS,curParentTag.getNamespace()) >= 0) { final String attributeValue = curParentTag.getAttributeValue(PREFIX_ATTR_NAME); if (attributeValue != null && attributeValue.length() > 0) { final XmlAttributeValue valueElement = curParentTag.getAttribute(PREFIX_ATTR_NAME, null).getValueElement(); if (PropertiesReferenceProvider.isNonDynamicAttribute(valueElement)) { myKeyPrefix = attributeValue; } else { myDynamicPrefix = true; } } break; } } myPrefixEvaluated = true; } return myKeyPrefix; }