Because all of the parameter extraction and transaction setup is done by the command framework, commands themselves can be very simple. The listing below shows the command to update a content provider in BELTS.
/* Copyright 2002-2005, education.au limited and Curriculum Corporation, All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, this list of * conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright notice, this list * of conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. * * Neither the names education.au limited, Curriculum Corporation nor The Learning * Federation nor the names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * To the extent permitted by law, the copyright owners of this software and its contributors: * * (i) exclude all warranties in relation to the software; and * (ii) exclude liability for all losses, costs, expenses and damages arising in any way * from the use of the software whether arising from or in relation to breach of contract, * negligence or any other tort, in equity or otherwise. If the software is in breach of a * warranty which is implied by law, the copyright owners and contributors liability is * limited to the replacement of the software. * * Created: 8/07/2003 * * $Id: developer.xml,v 1.5 2005/01/25 10:59:59 gregj_jacus Exp $ */ package au.edu.educationau.belts.command.content.action; import java.util.Date; import org.apache.commons.lang.StringUtils; import au.edu.educationau.belts.command.CommandResult; import au.edu.educationau.belts.command.container.AbstractBeltsContainerCommand; import au.edu.educationau.belts.content.Update; /** * UpdateProviderAction causes a update to be run on the provider service named. * * @author <a href="mailto:kevin@rocketred.com.au">Kevin O'Neill</a> * @version $Revision: 1.5 $ - $Date: 2005/01/25 10:59:59 $ */ public class UpdateProviderAction extends AbstractBeltsContainerCommand { private String _provider; public void execute() { _outcome = CommandResult.OUTCOME_ERROR; new Update(_provider).update(new Date(0L)); _outcome = CommandResult.OUTCOME_OK; } /** * @param name - provider name to update */ public void setProvider(String name) { _provider = name; } /* (non-Javadoc) * @see au.edu.educationau.belts.command.Command#validate() */ public boolean validate() { if (StringUtils.isEmpty(_provider)) { addFieldValidationError("provider"); } return super.validate(); } } |