public String addPosition(Position p) { if (isDataEditable(ResUnit.Position)) { String newID = getDataSource(ResUnit.Position).insert(p); // persist it if (!hasDefaultDataSource(ResUnit.Position)) p.setID(newID); putPosition(p); // ...and add it to the data set return newID; } else return fail("External Position dataset is read-only"); }