package com.planet_ink.coffee_mud.core.database;
import com.planet_ink.coffee_mud.core.interfaces.*;
import com.planet_ink.coffee_mud.core.*;
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.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.sql.*;
import java.util.*;
/**
* <p>Portions Copyright (c) 2003 Jeremy Vyska</p>
* <p>Portions Copyright (c) 2004 Bo Zimmerman</p>
* <p>Licensed under the Apache License, Version 2.0 (the "License");
* <p>you may not use this file except in compliance with the License.
* <p>You may obtain a copy of the License at
*
* <p> http://www.apache.org/licenses/LICENSE-2.0
*
* <p>Unless required by applicable law or agreed to in writing, software
* <p>distributed under the License is distributed on an "AS IS" BASIS,
* <p>WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* <p>See the License for the specific language governing permissions and
* <p>limitations under the License.
*/
public class ClanLoader
{
protected DBConnector DB=null;
public ClanLoader(DBConnector newDB)
{
DB=newDB;
}
protected int currentRecordPos=1;
protected int recordCount=0;
public void updateBootStatus(String loading)
{
CMProps.setUpLowVar(CMProps.SYSTEM_MUDSTATUS,"Booting: Loading "+loading+" ("+currentRecordPos+" of "+recordCount+")");
}
public void DBRead()
{
DBConnection D=null;
Clan C=null;
try
{
D=DB.DBFetch();
ResultSet R=D.query("SELECT * FROM CMCLAN");
recordCount=DB.getRecordCount(D,R);
while(R.next())
{
currentRecordPos=R.getRow();
String name=DBConnections.getRes(R,"CMCLID");
C=CMLib.clans().getClanType(CMath.s_int(DBConnections.getRes(R,"CMTYPE")));
C.setName(name);
C.setPremise(DBConnections.getRes(R,"CMDESC"));
C.setAcceptanceSettings(DBConnections.getRes(R,"CMACPT"));
C.setPolitics(DBConnections.getRes(R,"CMPOLI"));
C.setRecall(DBConnections.getRes(R,"CMRCLL"));
C.setDonation(DBConnections.getRes(R,"CMDNAT"));
C.setStatus(CMath.s_int(DBConnections.getRes(R, "CMSTAT")));
C.setMorgue(DBConnections.getRes(R,"CMMORG"));
C.setTrophies(CMath.s_int(DBConnections.getRes(R, "CMTROP")));
CMLib.clans().addClan(C);
updateBootStatus("Clans");
}
}
catch(Exception sqle)
{
Log.errOut("Clan",sqle);
}
if(D!=null) DB.DBDone(D);
// log comment
}
public void DBUpdate(Clan C)
{
String str="UPDATE CMCLAN SET "
+"CMDESC='"+C.getPremise()+"',"
+"CMACPT='"+C.getAcceptanceSettings()+"',"
+"CMPOLI='"+C.getPolitics()+"',"
+"CMRCLL='"+C.getRecall()+"',"
+"CMDNAT='"+C.getDonation()+"',"
+"CMSTAT="+C.getStatus()+","
+"CMMORG='"+C.getMorgue()+"',"
+"CMTROP="+C.getTrophies()+""
+" WHERE CMCLID='"+C.clanID()+"'";
DB.update(str);
}
public void DBCreate(Clan C)
{
if(C.clanID().length()==0) return;
String str="INSERT INTO CMCLAN ("
+"CMCLID,"
+"CMTYPE,"
+"CMDESC,"
+"CMACPT,"
+"CMPOLI,"
+"CMRCLL,"
+"CMDNAT,"
+"CMSTAT,"
+"CMMORG,"
+"CMTROP"
+") values ("
+"'"+C.clanID()+"',"
+""+C.getType()+","
+"'"+C.getPremise()+"',"
+"'"+C.getAcceptanceSettings()+"',"
+"'"+C.getPolitics()+"',"
+"'"+C.getRecall()+"',"
+"'"+C.getDonation()+"',"
+""+C.getStatus()+","
+"'"+C.getMorgue()+"',"
+""+C.getTrophies()
+")";
DB.update(str);
}
public void DBDelete(Clan C)
{
DB.update("DELETE FROM CMCLAN WHERE CMCLID='"+C.clanID()+"'");
}
}