package onlinefrontlines.lobbyedit.web;
import onlinefrontlines.lobby.*;
import java.sql.SQLException;
import onlinefrontlines.taglib.CacheTag;
import onlinefrontlines.web.*;
/**
* This action creates a new (empty) lobby in the database based on the name that the user supplied.
*
* @author jorrit
*
* Copyright (C) 2009-2013 Jorrit Rouwe
*
* This file is part of Online Frontlines.
*
* Online Frontlines is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Online Frontlines is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Online Frontlines. If not, see <http://www.gnu.org/licenses/>.
*/
public class LobbyCreateAction extends WebAction
{
/**
* Name for the new lobby
*/
public String lobbyName;
/**
* Execute the action
*/
protected WebView execute() throws Exception
{
// Validate lobby name
if (lobbyName == null || lobbyName.isEmpty())
{
addFieldError("lobbyName", getText("lobbyNameRequired"));
return getInputView();
}
// Validate max length
if (lobbyName.length() > 32)
{
addFieldError("lobbyName", getText("nameTooLong"));
return getInputView();
}
// Create new empty lobby
LobbyConfig lobby = new LobbyConfig(-1, lobbyName, 0, 37, 43, 0, 0, 0, -1, 100);
// Insert it in the database
try
{
LobbyConfigDAO.create(lobby);
}
catch (SQLException e)
{
addActionError(getText("lobbyAlreadyExists"));
return getInputView();
}
// Reload all lobbies
LobbyConfig.loadAll();
LobbyStateCache.getInstance().removeAll();
CacheTag.purgeAll();
return getSuccessView();
}
}