void (NodeDescriptor descriptor) { if (descriptor instanceof NodeDescriptorImpl that) { myIsExpanded = that.myIsExpanded; myIsSelected = that.myIsSelected; myIsVisible = that.myIsVisible; myUserData = that.myUserData != null ? new HashMap<>(that.myUserData) : null; // TODO introduce unified way to handle this if (myUserData != null) { myUserData.remove(OnDemandRenderer.ON_DEMAND_CALCULATED); // calculated flag should not be inherited } } }