public synchronized void removePosition(Position p) { if (isDataEditable(ResUnit.Position)) { disconnectResources(p); for (Position position : getPositions()) { Position boss = position.getReportsTo(); if ((boss != null) && boss.getID().equals(p.getID())) { position.setReportsTo((Position) null); getDataSource(ResUnit.Position).update(position); } } delPosition(p); getDataSource(ResUnit.Position).delete(p); } }