package module.item;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import module.command.api.IndexStringPair;
import module.item.api.IItem;
import module.utility.Parse;
import module.utility.Search;
public class ItemList implements Serializable{
public List<SingleItemList> itemList;
public ItemList(){
itemList = Collections.synchronizedList(new ArrayList<SingleItemList>());
}
public void addItem(IItem obj){
for (SingleItemList sil : itemList){
if (sil.list.get(0).getEngName().equals(obj.getEngName())){
sil.list.add(obj);
return;
}
}
itemList.add(new SingleItemList(obj));
}
public boolean removeItem(IItem obj){
for (SingleItemList sil : itemList){
if (sil.list.contains(obj)){
sil.list.remove(obj);
if (sil.list.size() == 0) itemList.remove(sil);
return true;
}
}
return false;
}
public IItem findItem(String name){
IndexStringPair pair = Parse.parseName(name);
int index = 0;
for (SingleItemList sil : itemList){
for (IItem obj : sil.list){
if (Search.searchName(obj.getEngName(), pair.name)){
if (index == pair.index) return obj;
else index++;
}
}
}
return null;
}
public String displayInfo(){
if (itemList.size() == 0) return "";
StringBuffer buf = new StringBuffer();
for (SingleItemList sil : itemList){
buf.append(" " + sil.displayInfo());
}
return buf.toString();
}
}