package com.planet_ink.coffee_mud.Common;
import com.planet_ink.coffee_mud.core.interfaces.*;
import com.planet_ink.coffee_mud.core.*;
import com.planet_ink.coffee_mud.core.collections.*;
import com.planet_ink.coffee_mud.Abilities.interfaces.*;
import com.planet_ink.coffee_mud.Areas.interfaces.*;
import com.planet_ink.coffee_mud.Behaviors.interfaces.*;
import com.planet_ink.coffee_mud.CharClasses.interfaces.*;
import com.planet_ink.coffee_mud.Commands.interfaces.*;
import com.planet_ink.coffee_mud.Common.interfaces.*;
import com.planet_ink.coffee_mud.Common.interfaces.CoffeeShop.ShelfProduct;
import com.planet_ink.coffee_mud.Exits.interfaces.*;
import com.planet_ink.coffee_mud.Items.interfaces.*;
import com.planet_ink.coffee_mud.Locales.interfaces.*;
import com.planet_ink.coffee_mud.MOBS.interfaces.*;
import com.planet_ink.coffee_mud.Races.interfaces.*;
import java.lang.ref.WeakReference;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.List;
import java.util.Vector;
import java.util.*;
import com.planet_ink.coffee_mud.Libraries.interfaces.*;
/*
Copyright 2007-2019 Bo Zimmerman
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
public class AuctionCoffeeShop implements CoffeeShop
{
@Override
public String ID()
{
return "AuctionCoffeeShop";
}
@Override
public String name()
{
return ID();
}
@Override
public int compareTo(final CMObject o)
{
return CMClass.classID(this).compareToIgnoreCase(CMClass.classID(o));
}
public static final Vector<Environmental> emptyV=new Vector<Environmental>();
public static final Vector<ShelfProduct> emptyV2=new Vector<ShelfProduct>();
public String auctionShop="";
protected WeakReference<ShopKeeper> shopKeeper=null;
@Override
public CMObject copyOf()
{
try
{
final Object O=this.clone();
return (CMObject)O;
}
catch(final CloneNotSupportedException e)
{
return new AuctionCoffeeShop();
}
}
@Override
public CMObject newInstance()
{
try
{
return getClass().newInstance();
}
catch(final Exception e)
{
return new AuctionCoffeeShop();
}
}
@Override
public void initializeClass()
{
}
@Override
public CoffeeShop build(final ShopKeeper SK)
{
shopKeeper=new WeakReference<ShopKeeper>(SK);
return this;
}
@Override
public ShopKeeper shopKeeper()
{
return (shopKeeper==null)?null:shopKeeper.get();
}
@Override
public boolean isSold(final int code)
{
final ShopKeeper SK=shopKeeper();
return (SK==null)?false:SK.isSold(code);
}
@Override
public boolean inEnumerableInventory(final Environmental thisThang)
{
return false;
}
@Override
public Environmental addStoreInventory(final Environmental thisThang)
{
return addStoreInventory(thisThang,1,-1);
}
@Override
public int enumerableStockSize()
{
return 0;
}
@Override
public int totalStockSize()
{
return 0;
}
@Override
public Iterator<Environmental> getStoreInventory()
{
return emptyV.iterator();
}
@Override
public Iterator<ShelfProduct> getStoreShelves()
{
return emptyV2.iterator();
}
@Override
public boolean lowerStock(final String name)
{
return false;
}
@Override
public CoffeeShop weakCopyOf()
{
return this;
}
@Override
public Iterator<Environmental> getStoreInventory(final String srchStr)
{
return emptyV.iterator();
}
@Override
public Iterator<Environmental> getEnumerableInventory()
{
return emptyV.iterator();
}
@Override
public Environmental addStoreInventory(final Environmental thisThang,
final int number,
final int price)
{
if(shopKeeper() instanceof Auctioneer)
auctionShop=((Auctioneer)shopKeeper()).auctionHouse();
return thisThang;
}
@Override
public int totalStockWeight()
{
return 0;
}
@Override
public int totalStockSizeIncludingDuplicates()
{
return 0;
}
@Override
public void delAllStoreInventory(final Environmental thisThang)
{
}
@Override
public boolean doIHaveThisInStock(final String name, final MOB mob)
{
return getStock(name,mob)!=null;
}
@Override
public int stockPrice(final Environmental likeThis)
{
return -1;
}
@Override
public int numberInStock(final Environmental likeThis)
{
return 1;
}
@Override
public void resubmitInventory(final List<Environmental> V)
{
}
@Override
public Environmental getStock(final String name, final MOB mob)
{
final List<AuctionData> auctions=CMLib.coffeeShops().getAuctions(null,auctionShop);
final Vector<Environmental> auctionItems=new Vector<Environmental>();
for(int a=0;a<auctions.size();a++)
{
final Item I=auctions.get(a).getAuctionedItem();
auctionItems.addElement(I);
}
for(int a=0;a<auctionItems.size();a++)
{
final Item I=(Item)auctionItems.elementAt(a);
I.setExpirationDate(CMLib.english().getContextNumber(auctionItems,I));
}
Environmental item=CMLib.english().fetchEnvironmental(auctionItems,name,true);
if(item==null)
item=CMLib.english().fetchEnvironmental(auctionItems,name,false);
return item;
}
@Override
public void destroyStoreInventory()
{
}
@Override
public Environmental removeStock(final String name, final MOB mob)
{
return null;
}
@Override
public void emptyAllShelves()
{
}
@Override
public List<Environmental> removeSellableProduct(final String named, final MOB mob)
{
return emptyV;
}
@Override
public String makeXML()
{
return "";
}
@Override
public void buildShopFromXML(final String text)
{
}
@Override
public long contentHash()
{
return this.hashCode();
}
@Override
public void deleteShelfProduct(final ShelfProduct P)
{
}
}