edu.harvard.med.iccbl.screensaver.io.libraries.CreateLibraryWells.java Source code

Java tutorial

Introduction

Here is the source code for edu.harvard.med.iccbl.screensaver.io.libraries.CreateLibraryWells.java

Source

// $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);
                }
            }

        });
    }
}