Android Open Source - ShoppingList Shopping Item Builder From Project Back to project page ShoppingList .
License The source code is released under:
GNU General Public License
If you think the Android project ShoppingList listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package net.sledzdev.shoppinglist.model;
/ / f r o m w w w . j a v a 2 s . c o m
import com.google.common.base.Optional;
import net.sledzdev.shoppinglist.manager.ContentManager;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ExecutionException;
public class ShoppingItemBuilder {
private static Set<ShoppingItem> createdItems = new HashSet<ShoppingItem>();
private static Map<Long, ShoppingItem> itemsWithId = new HashMap<Long, ShoppingItem>();
public void put(ShoppingItem item) {
if (item.id != -1) {
itemsWithId.put(item.id, item);
}
}
private long id = -1;
private String name;
private double price = 0.0;
private ShoppingList list;
private long list_id = -1;
private boolean checked = false;
public ShoppingItemBuilder setId(long id) {
this.id = id;
return this ;
}
public ShoppingItemBuilder setName(String name) {
this.name = name;
return this ;
}
public ShoppingItemBuilder setPrice(double price) {
this.price = price;
return this ;
}
public ShoppingItemBuilder setList(ShoppingList list) {
this.list = list;
return this ;
}
public ShoppingItemBuilder setList_id(long list_id) {
this.list_id = list_id;
return this ;
}
public ShoppingItemBuilder setChecked(boolean checked) {
this.checked = checked;
return this ;
}
public ShoppingItemBuilder setChecked(int checked) {
return setChecked(checked == 1);
}
public ShoppingItem createShoppingItem() {
preconditions();
if (checkIfNew()) {
return createNewItem();
}
return changeExistingItem();
}
protected void preconditions() {
if (listNotSet() || name == null) {
throw new IllegalArgumentException("shopping list or name not set!" );
}
if (list == null) {
try {
setListFromId();
} catch (InterruptedException e) {
throw new IllegalArgumentException(e.toString());
} catch (ExecutionException e) {
throw new IllegalArgumentException(e.toString());
}
}
}
protected boolean checkIfNew() {
return id == -1 || !itemsWithId.containsKey(id);
}
protected ShoppingItem createNewItem() {
ShoppingItem item = new ShoppingItem(id, name, list, price, checked, id == -1);
createdItems.add(item);
put(item);
return item;
}
protected ShoppingItem changeExistingItem() {
ShoppingItem item = itemsWithId.get(id);
item.list = list;
item.name = name;
item.price = price;
return item;
}
protected boolean listNotSet() {
return list == null && list_id < 0;
}
protected void setListFromId() throws InterruptedException, ExecutionException {
Optional<ShoppingList> shoppingListOptional = getShoppingListOptional();
if (!shoppingListOptional.isPresent()) {
throw new IllegalArgumentException("shopping item must have list\n got: " + this );
}
list = shoppingListOptional.orNull();
}
private Optional<ShoppingList> getShoppingListOptional() throws InterruptedException, ExecutionException {
Optional<ShoppingList> shoppingListOptional;
Optional<ContentManager> managerOptional = ContentManager.getExistingManager();
if (managerOptional.isPresent()) {
shoppingListOptional = managerOptional.get().getList(list_id).get();
} else {
shoppingListOptional = ShoppingListFactory.get(list_id);
}
return shoppingListOptional;
}
@Override
public String toString() {
return "ShoppingItemBuilder{" +
"id=" + id +
", name='" + name + '\'' +
", price=" + price +
", list=" + list +
", list_id=" + list_id +
'}' ;
}
}
Java Source Code List net.sledzdev.shoppinglist.DetailFragmentHandlersRegister.java net.sledzdev.shoppinglist.ItemDialogActivity.java net.sledzdev.shoppinglist.ShoppingListDetailActivity.java net.sledzdev.shoppinglist.ShoppingListDetailFragment.java net.sledzdev.shoppinglist.ShoppingListsActivity.java net.sledzdev.shoppinglist.ShoppingListsFragment.java net.sledzdev.shoppinglist.adapter.DataModelAdapter.java net.sledzdev.shoppinglist.adapter.DataModel.java net.sledzdev.shoppinglist.adapter.ElementWithId.java net.sledzdev.shoppinglist.adapter.ItemAdapterEventController.java net.sledzdev.shoppinglist.adapter.ItemAdapter.java net.sledzdev.shoppinglist.adapter.ListMapDataModelTest.java net.sledzdev.shoppinglist.adapter.ListMapDataModel.java net.sledzdev.shoppinglist.adapter.ShoppingListAdapterEventsHandler.java net.sledzdev.shoppinglist.adapter.ShoppingListsAdapter.java net.sledzdev.shoppinglist.content.DatabaseHelper.java net.sledzdev.shoppinglist.content.DatabaseUriContentProvider.java net.sledzdev.shoppinglist.content.ItemRowProvider.java net.sledzdev.shoppinglist.content.ItemsProvider.java net.sledzdev.shoppinglist.content.ItemsTable.java net.sledzdev.shoppinglist.content.ListRowProvider.java net.sledzdev.shoppinglist.content.ListsProvider.java net.sledzdev.shoppinglist.content.ListsTable.java net.sledzdev.shoppinglist.content.RowUriProvider.java net.sledzdev.shoppinglist.content.ShoppingListProviderTest.java net.sledzdev.shoppinglist.content.ShoppingListProvider.java net.sledzdev.shoppinglist.content.ShoppingProviderContract.java net.sledzdev.shoppinglist.content.TableUriProvider.java net.sledzdev.shoppinglist.content.UriContentProvider.java net.sledzdev.shoppinglist.event.ClearListEvent.java net.sledzdev.shoppinglist.event.EventBusFactory.java net.sledzdev.shoppinglist.event.ItemChangedEvent.java net.sledzdev.shoppinglist.event.ItemCheckedChangedEvent.java net.sledzdev.shoppinglist.event.ItemDeleteEvent.java net.sledzdev.shoppinglist.event.ItemDialogCloseEvent.java net.sledzdev.shoppinglist.event.ItemDialogOpenRequestEvent.java net.sledzdev.shoppinglist.event.ListDeleteEvent.java net.sledzdev.shoppinglist.event.ListSelectedEvent.java net.sledzdev.shoppinglist.event.ListTitleChangedEvent.java net.sledzdev.shoppinglist.event.NewItemEvent.java net.sledzdev.shoppinglist.event.NewListEvent.java net.sledzdev.shoppinglist.event.NewListRequestEvent.java net.sledzdev.shoppinglist.event.TextWatcherAdapter.java net.sledzdev.shoppinglist.event.UpdateListAdapterEvent.java net.sledzdev.shoppinglist.handlers.ClearListEventHandler.java net.sledzdev.shoppinglist.handlers.ItemChangedEventHandler.java net.sledzdev.shoppinglist.handlers.ItemCheckedChangeEventHandler.java net.sledzdev.shoppinglist.handlers.ItemDeleteEventHandler.java net.sledzdev.shoppinglist.handlers.ItemDialogOpenRequestEventHandler.java net.sledzdev.shoppinglist.handlers.ListDeleteEventHandler.java net.sledzdev.shoppinglist.handlers.ListSelectedEventHandler.java net.sledzdev.shoppinglist.handlers.ListTitleChangedEventHandler.java net.sledzdev.shoppinglist.handlers.NewItemEventHandler.java net.sledzdev.shoppinglist.handlers.NewListEventHandler.java net.sledzdev.shoppinglist.manager.ContentManagerTests.java net.sledzdev.shoppinglist.manager.ContentManager.java net.sledzdev.shoppinglist.manager.ContentTransformer.java net.sledzdev.shoppinglist.manager.ItemContentTransformer.java net.sledzdev.shoppinglist.manager.ListsContentTransformer.java net.sledzdev.shoppinglist.manager.MockContentManager.java net.sledzdev.shoppinglist.manager.OnUiThreadFutureCallback.java net.sledzdev.shoppinglist.model.ShoppingItemBuilderTest.java net.sledzdev.shoppinglist.model.ShoppingItemBuilder.java net.sledzdev.shoppinglist.model.ShoppingItem.java net.sledzdev.shoppinglist.model.ShoppingListFactoryTest.java net.sledzdev.shoppinglist.model.ShoppingListFactory.java net.sledzdev.shoppinglist.model.ShoppingList.java