in mapper/src/main/java/jetbrains/jetpad/mapper/Mapper.java [213:245]
final void detach() {
if (myMappingContext == null) {
throw new IllegalStateException();
}
try {
onDetach();
} catch (Throwable t) {
ThrowableHandlers.handle(t);
}
for (Object part : myParts) {
if (part instanceof Synchronizer) {
Synchronizer s = (Synchronizer) part;
try {
s.detach();
} catch (Throwable t) {
ThrowableHandlers.handle(t);
}
}
if (part instanceof ChildContainer) {
for (Mapper<?, ?> m : (ChildContainer<?>) part) {
m.detach();
}
}
}
myMappingContext.unregister(this);
myMappingContext = null;
myState = State.DETACHED;
myParts = null;
}