/*
* Copyright 2008 Jeff Dwyer
*
* 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.
*/
package com.apress.progwt.client.domain.commands;
import java.io.Serializable;
import com.allen_sauer.gwt.log.client.Log;
import com.apress.progwt.client.domain.Application;
import com.apress.progwt.client.exception.SiteSecurityException;
public class SaveApplicationCommand extends AbstractCommand implements
Serializable {
private long applicationID;
private Application original;
private Application toSave;
public SaveApplicationCommand() {
super();
}
public SaveApplicationCommand(Application application) {
super(application);
applicationID = application.getId();
original = application;
}
public boolean haveYouSecuredYourselfAndFilteredUserInput() {
return true;
}
public void execute(CommandService commandService)
throws SiteSecurityException {
toSave = commandService.get(Application.class, applicationID);
commandService.assertUserIsAuthenticated(toSave.getUser());
Log.debug("SaveApplicationCommand " + applicationID + " loaded: "
+ toSave + " original: " + original);
String xssFiltered = commandService.filterHTML(original
.getNotes());
escapeStringList(commandService, original.getCons());
escapeStringList(commandService, original.getPros());
toSave.setCons(original.getCons());
toSave.setPros(original.getPros());
toSave.setNotes(xssFiltered);
Log.debug("notes " + toSave.getNotes() + " o: "
+ original.getNotes());
commandService.save(toSave);
}
/**
* For testing
*
* @return
*/
public Application getToSave() {
return toSave;
}
@Override
public String toString() {
return "SaveApplicationCommand applicationID " + applicationID;
}
}