T () { T element = myRef.get(); if (element != null) { return element; } element = (T)myOriginal.retrieve(); if (element == null) { throw new PsiInvalidElementAccessException(this); } myRef = new SoftReference<>(element); return element; }