Revert "use simple cached value as it can handle non-physical elements properly"

This reverts commit 7ba7dae
This commit is contained in:
Dennis Ushakov
2017-11-07 22:58:03 +00:00
parent 0b6d910d16
commit 195861bdd1
@@ -55,7 +55,7 @@ public class RngNsDescriptor implements XmlNSDescriptorEx, Validator {
private final Map<QName, CachedValue<XmlElementDescriptor>> myDescriptorsMap =
Collections.synchronizedMap(new HashMap<QName, CachedValue<XmlElementDescriptor>>());
private static final Key<CachedValue<XmlElementDescriptor>> ROOT_KEY = Key.create("ROOT_DESCRIPTOR");
private static final Key<ParameterizedCachedValue<XmlElementDescriptor, RngNsDescriptor>> ROOT_KEY = Key.create("ROOT_DESCRIPTOR");
private XmlFile myFile;
private PsiElement myElement;
@@ -100,15 +100,19 @@ public class RngNsDescriptor implements XmlNSDescriptorEx, Validator {
}
private XmlElementDescriptor findRootDescriptor(final XmlTag tag) {
return CachedValuesManager.getCachedValue(tag, ROOT_KEY, () -> {
final XmlElementDescriptor descr = findRootDescriptorInner(tag);
if (descr != null) {
return CachedValueProvider.Result.create(descr, descr.getDependences(), getDependences());
}
else {
return CachedValueProvider.Result.create(null, getDependences());
}
});
return CachedValuesManager.getManager(tag.getProject())
.getParameterizedCachedValue(tag, ROOT_KEY, new ParameterizedCachedValueProvider<XmlElementDescriptor, RngNsDescriptor>() {
@Override
public CachedValueProvider.Result<XmlElementDescriptor> compute(RngNsDescriptor o) {
final XmlElementDescriptor descr = o.findRootDescriptorInner(tag);
if (descr != null) {
return CachedValueProvider.Result.create(descr, descr.getDependences(), o.getDependences());
}
else {
return CachedValueProvider.Result.create(null, o.getDependences());
}
}
}, false, this);
}
private XmlElementDescriptor findRootDescriptorInner(XmlTag tag) {