// $HeadURL$
// $Id$
//
// Copyright © 2010 by the President and Fellows of Harvard College.
//
// Screensaver is an open-source project developed by the ICCB-L and NSRB labs
// at Harvard Medical School. This software is distributed under the terms of
// the GNU General Public License.
package edu.harvard.med.iccbl.screensaver.io.libraries;
import java.util.List;
import org.apache.commons.cli.OptionBuilder;
import org.apache.log4j.Logger;
import edu.harvard.med.screensaver.db.DAOTransaction;
import edu.harvard.med.screensaver.db.GenericEntityDAO;
import edu.harvard.med.screensaver.io.CommandLineApplication;
import edu.harvard.med.screensaver.model.libraries.Library;
import edu.harvard.med.screensaver.service.libraries.LibraryCreator;
/**
* Command-line application that adds missing wells to a library
*
* @author <a mailto="andrew_tolopko@hms.harvard.edu">Andrew Tolopko</a>
*/
public class CreateLibraryWells
{
private static Logger log = Logger.getLogger(CreateLibraryWells.class);
@SuppressWarnings("static-access")
public static void main(String[] args)
{
final CommandLineApplication app = new CommandLineApplication(args);
app.addCommandLineOption(OptionBuilder.hasArgs().isRequired()
.withArgName("short name").withLongOpt("short-name")
.withDescription("a short name for identifying the library").create("l"));
app.processOptions(true, false);
final GenericEntityDAO dao = (GenericEntityDAO) app.getSpringBean("genericEntityDao");
dao.doInTransaction(new DAOTransaction() {
@Override
public void runTransaction()
{
try {
LibraryCreator libraryCreator = (LibraryCreator) app.getSpringBean("libraryCreator");
List<String> libraryShortNames = app.getCommandLineOptionValues("l");
for (String libraryShortName : libraryShortNames) {
libraryCreator.createWells(dao.findEntityByProperty(Library.class, "shortName", libraryShortName));
}
}
catch (Exception e) {
e.printStackTrace();
log.error(e.toString());
System.err.println("error: " + e.getMessage());
System.exit(1);
}
}
});
}
}