package crmdna.inventory; import crmdna.client.Client; import crmdna.common.Utils; import crmdna.group.Group; import static crmdna.common.AssertUtils.ensure; import static crmdna.common.AssertUtils.ensureNotNull; import static crmdna.common.OfyService.ofy; // TODO: to be removed class InventoryItemSaver { private String client; private InventoryItemEntity entity; private InventoryItemSaver() { } static InventoryItemSaver inventoryItemSaver(String client, InventoryItemEntity entity) { Client.ensureValid(client); ensureNotNull(entity); InventoryItemSaver saver = new InventoryItemSaver(); saver.client = client; saver.entity = entity; return saver; } void populateDependentsAndSave() { Client.ensureValid(client); ensureNotNull(entity); ensureNotNull(entity.displayName, "Display name cannot be null"); ensure(entity.displayName.length() > 0, "Display name cannot be empty"); // first character should be an alphabet char c = entity.displayName.toLowerCase().charAt(0); ensure(c >= 'a' && c <= 'z', "First character should be an alphabet"); Group.safeGet(client, entity.groupId); InventoryItemType.safeGet(client, entity.inventoryItemTypeId); // populate dependents entity.name = entity.displayName.toLowerCase(); entity.name = Utils.removeSpaceUnderscoreBracketAndHyphen(entity.name); entity.firstChar = entity.name.substring(0, 1); ofy(client).save().entity(entity); } void save() { Client.ensureValid(client); ensureNotNull(entity); ofy(client).save().entity(entity); } }