Example usage for org.joda.time.format DateTimeFormatter parseDateTime

List of usage examples for org.joda.time.format DateTimeFormatter parseDateTime

Introduction

In this page you can find the example usage for org.joda.time.format DateTimeFormatter parseDateTime.

Prototype

public DateTime parseDateTime(String text) 

Source Link

Document

Parses a date-time from the given text, returning a new DateTime.

Usage

From source file:org.dllearner.utilities.OWLAPIUtils.java

License:Open Source License

/**
 * Checks whether the given value is in the closed interval [min,max], i.e.
 * the value is greater than min and lower than max.
 * @param value the value// w  ww  . j  a v a 2 s.  c om
 * @param min the lower interval endpoint
 * @param max the upper interval endpoint
 * @return whether the given value is in the closed interval [min,max]
 */
public static boolean inRange(OWLLiteral value, OWLLiteral min, OWLLiteral max) {
    OWLDatatype datatype = value.getDatatype();

    if (OWLAPIUtils.dtDatatypes.contains(datatype)) {
        DateTimeFormatter parser = OWLAPIUtils.dateTimeParsers.get(datatype);

        // parse min
        DateTime minDateTime = null;
        if (min != null) {
            minDateTime = parser.parseDateTime(min.getLiteral());
        }

        // parse max
        DateTime maxDateTime = null;
        if (max != null) {
            maxDateTime = parser.parseDateTime(max.getLiteral());
        }

        // parse value
        DateTime dateTime = parser.parseDateTime(value.getLiteral());

        if ((minDateTime == null || (dateTime.isEqual(minDateTime) || dateTime.isAfter(minDateTime)))
                && (maxDateTime == null || (dateTime.isEqual(maxDateTime) || dateTime.isBefore(maxDateTime)))) {
            return true;
        }
    }

    return false;
}

From source file:org.dllearner.utilities.split.DefaultDateTimeValuesSplitter.java

License:Open Source License

@Override
public List<OWLLiteral> computeSplits(OWLDataProperty dp) {
    List<OWLLiteral> splitLiterals = new ArrayList<>();

    Map<OWLIndividual, SortedSet<OWLLiteral>> ind2Values = reasoner.getDatatypeMembers(dp);

    OWLDatatype datatype = reasoner.getDatatype(dp);

    DateTimeFormatter parser = OWLAPIUtils.dateTimeParsers.get(datatype);
    DateTimeFormatter formatter = OWLAPIUtils.dateTimeFormatters.get(datatype);

    List<DateTime> values = new LinkedList<>();
    for (Entry<OWLIndividual, SortedSet<OWLLiteral>> entry : ind2Values.entrySet()) {

        for (OWLLiteral value : entry.getValue()) {
            DateTime dateTime = parser.parseDateTime(value.getLiteral());
            values.add(dateTime);//from  w  ww . j  av  a  2s .c o  m
        }

    }

    List<DateTime> splitValues = simpleListSplitter(values, maxNrOfSplits);

    for (DateTime value : splitValues) {
        OWLLiteral literal = dataFactory.getOWLLiteral(value.toString(formatter), reasoner.getDatatype(dp));
        splitLiterals.add(literal);
    }

    return splitLiterals;
}

From source file:org.dmb.trueprice.utils.internal.ServletUtils.java

/**
 * Renvoie la priode de temps ecoule depuis <param>fromDate</param>
 * en un String formatte en FR//from  w w  w .j  a v a 2  s. co m
 * @param fromDate
 * @return la priode de temps ecoule formattee en FR
 */
public static String getFormattedTimeElapsed(String fromDate) {
    /* Rcupration de la date courante */
    DateTime dtCourante = new DateTime();
    /* Rcupration de la date prsente dans le cookie */
    DateTimeFormatter formatter = DateTimeFormat.forPattern(FORMAT_DATE);
    DateTime dtDerniereConnexion = formatter.parseDateTime(fromDate);
    /* Calcul de la dure de l'intervalle */
    Period periode = new Period(dtDerniereConnexion, dtCourante);
    /* Formatage de la dure de l'intervalle */
    PeriodFormatter periodFormatter = new PeriodFormatterBuilder().appendYears().appendSuffix(" an ", " ans ")
            .appendMonths().appendSuffix(" mois ").appendDays().appendSuffix(" jour ", " jours ").appendHours()
            .appendSuffix(" heure ", " heures ").appendMinutes().appendSuffix(" minute ", "minutes ")
            .appendSeparator(" et ").appendSeconds().appendSuffix(" seconde ", " secondes ").toFormatter();

    String intervalleConnexions = periodFormatter.print(periode);

    return intervalleConnexions;
}

From source file:org.drftpd.commands.tvmaze.TvMazeUtils.java

License:Open Source License

public static ReplacerEnvironment getShowEnv(TvMazeInfo tvShow) {
    ReplacerEnvironment env = new ReplacerEnvironment(SiteBot.GLOBAL_ENV);
    DateTimeFormatter df = DateTimeFormat.forPattern(TvMazeConfig.getInstance().getDateFormat());
    DateTimeFormatter tf = DateTimeFormat.forPattern(TvMazeConfig.getInstance().getTimeFormat());

    env.add("id", tvShow.getID());
    env.add("url", tvShow.getURL());
    env.add("name", tvShow.getName());
    env.add("type", tvShow.getType());
    env.add("language", tvShow.getLanguage());
    env.add("genres", StringUtils.join(tvShow.getGenres(), " | "));
    env.add("status", tvShow.getStatus());
    env.add("runtime", tvShow.getRuntime());
    DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd");
    env.add("premiered", df.withZone(TvMazeConfig.getInstance().getTimezone())
            .print(dtf.parseDateTime(tvShow.getPremiered())));
    env.add("network", tvShow.getNetwork());
    env.add("country", tvShow.getCountry());
    env.add("summary", StringUtils.abbreviate(tvShow.getSummary(), 250));

    if (tvShow.getPreviousEP() != null) {
        env.add("prevepid", tvShow.getPreviousEP().getID());
        env.add("prevepurl", tvShow.getPreviousEP().getURL());
        env.add("prevepname", tvShow.getPreviousEP().getName());
        env.add("prevepseason", tvShow.getPreviousEP().getSeason());
        env.add("prevepnumber", String.format("%02d", tvShow.getPreviousEP().getNumber()));
        env.add("prevepairdate", df.withZone(TvMazeConfig.getInstance().getTimezone())
                .print(new DateTime(tvShow.getPreviousEP().getAirDate())));
        env.add("prevepairtime", tf.withZone(TvMazeConfig.getInstance().getTimezone())
                .print(new DateTime(tvShow.getPreviousEP().getAirDate())));
        env.add("prevepruntime", tvShow.getPreviousEP().getRuntime());
        env.add("prevepsummary", StringUtils.abbreviate(tvShow.getPreviousEP().getSummary(), 250));
        env.add("prevepage", calculateAge(new DateTime(tvShow.getPreviousEP().getAirDate())));
    }//from  w w w  .  jav  a 2 s . com
    if (tvShow.getNextEP() != null) {
        env.add("nextepid", tvShow.getNextEP().getID());
        env.add("nextepurl", tvShow.getNextEP().getURL());
        env.add("nextepname", tvShow.getNextEP().getName());
        env.add("nextepseason", tvShow.getNextEP().getSeason());
        env.add("nextepnumber", String.format("%02d", tvShow.getNextEP().getNumber()));
        env.add("nextepairdate", df.withZone(TvMazeConfig.getInstance().getTimezone())
                .print(new DateTime(tvShow.getNextEP().getAirDate())));
        env.add("nextepairtime", tf.withZone(TvMazeConfig.getInstance().getTimezone())
                .print(new DateTime(tvShow.getNextEP().getAirDate())));
        env.add("nextepruntime", tvShow.getNextEP().getRuntime());
        env.add("nextepsummary", StringUtils.abbreviate(tvShow.getNextEP().getSummary(), 250));
        env.add("nextepage", calculateAge(new DateTime(tvShow.getNextEP().getAirDate())));
    }

    return env;
}

From source file:org.drftpd.commands.tvmaze.TvMazeUtils.java

License:Open Source License

public static ReplacerEnvironment getEPEnv(TvMazeInfo tvShow, TvEpisode tvEP) {
    ReplacerEnvironment env = new ReplacerEnvironment(SiteBot.GLOBAL_ENV);
    DateTimeFormatter df = DateTimeFormat.forPattern(TvMazeConfig.getInstance().getDateFormat());
    DateTimeFormatter tf = DateTimeFormat.forPattern(TvMazeConfig.getInstance().getTimeFormat());

    env.add("id", tvShow.getID());
    env.add("url", tvShow.getURL());
    env.add("name", tvShow.getName());
    env.add("type", tvShow.getType());
    env.add("language", tvShow.getLanguage());
    env.add("genres", StringUtils.join(tvShow.getGenres(), " | "));
    env.add("status", tvShow.getStatus());
    env.add("runtime", tvShow.getRuntime());
    DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd");
    env.add("premiered", df.withZone(TvMazeConfig.getInstance().getTimezone())
            .print(dtf.parseDateTime(tvShow.getPremiered())));
    env.add("network", tvShow.getNetwork());
    env.add("country", tvShow.getCountry());
    env.add("summary", StringUtils.abbreviate(tvShow.getSummary(), 250));

    env.add("epid", tvEP.getID());
    env.add("epurl", tvEP.getURL());
    env.add("epname", tvEP.getName());
    env.add("epseason", tvEP.getSeason());
    env.add("epnumber", String.format("%02d", tvEP.getNumber()));
    env.add("epairdate",
            df.withZone(TvMazeConfig.getInstance().getTimezone()).print(new DateTime(tvEP.getAirDate())));
    env.add("epairtime",
            tf.withZone(TvMazeConfig.getInstance().getTimezone()).print(new DateTime(tvEP.getAirDate())));
    env.add("epruntime", tvEP.getRuntime());
    env.add("epsummary", StringUtils.abbreviate(tvEP.getSummary(), 250));
    env.add("epage", calculateAge(new DateTime(tvEP.getAirDate())));

    return env;//from www . java 2  s. co  m
}

From source file:org.dspace.authority.AuthorityValue.java

License:BSD License

public Date stringToDate(String date) {
    Date result = null;/*from ww w .j a  v a2s  .c o  m*/
    if (StringUtils.isNotBlank(date)) {
        List<DateTimeFormatter> dateFormatters = getDateFormatters();
        boolean converted = false;
        int formatter = 0;
        while (!converted) {
            try {
                DateTimeFormatter dateTimeFormatter = dateFormatters.get(formatter);
                DateTime dateTime = dateTimeFormatter.parseDateTime(date);
                result = dateTime.toDate();
                converted = true;
            } catch (IllegalArgumentException e) {
                formatter++;
                if (formatter > dateFormatters.size()) {
                    converted = true;
                }
                log.error("Could not find a valid date format for: \"" + date + "\"", e);
            }
        }
    }
    return result;
}

From source file:org.dspace.search.IndexDenIndex.java

License:BSD License

/**
 * Helper function to retrieve a date using a best guess of the potential date encodings on a field
 *  /*from   w w w.j a  v  a  2 s.  c om*/
 * @param t
 * @return
 */
private static Date toDate(String t) {

    List<String> fmts = new ArrayList<String>();
    // Choose the likely date formats based on string length
    switch (t.length()) {
    case 4:
        fmts.add("yyyy");
        break;
    case 6:
        fmts.add("yyyyMM");
        break;
    case 7:
        fmts.add("yyyy-MM");
        break;
    case 8:
        fmts.add("yyyyMMdd");
        fmts.add("yyyy MMM");
        break;
    case 10:
        fmts.add("yyyy-MM-dd");
        break;
    case 11:
        fmts.add("yyyy MM dd");
        break;
    case 20:
        fmts.add("yyyy-MM-dd'T'HH:mm:ss'Z'");
        break;
    default:
        fmts.add("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
        break;
    }

    for (String fmt : fmts) {
        try {
            // Parse the date
            DateTimeFormatter formatter = DateTimeFormat.forPattern(fmt);
            DateTime dt = formatter.parseDateTime(t);
            return dt.toDate();
        } catch (IllegalArgumentException pe) {
            log.error("Unable to parse date format", pe);
        }
    }
    return null;
}

From source file:org.ecocean.servlet.importer.ImportExcelMetadata.java

License:Open Source License

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    //set up for response
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    boolean locked = false;

    String context = "context0";
    context = ServletUtilities.getContext(request);
    Shepherd myShepherd = new Shepherd(context);
    myShepherd.beginDBTransaction();/*from ww  w . j a  v  a2  s  . c  o m*/
    AssetStore assetStore = AssetStore.getDefault(myShepherd);
    myShepherd.commitDBTransaction();

    System.out.println("\n\nStarting ImportExcelMetadata servlet...");

    //setup data dir
    String rootWebappPath = getServletContext().getRealPath("/");
    File webappsDir = new File(rootWebappPath).getParentFile();
    File shepherdDataDir = new File(webappsDir, CommonConfiguration.getDataDirectoryName(context));
    if (!shepherdDataDir.exists()) {
        shepherdDataDir.mkdirs();
    }
    File tempSubdir = new File(webappsDir, "temp");
    if (!tempSubdir.exists()) {
        tempSubdir.mkdirs();
    }
    System.out.println("\n\n     Finished directory creation...");

    String fileName = "None";

    StringBuffer messages = new StringBuffer();

    boolean successfullyWroteFile = false;

    File finalFile = new File(tempSubdir, "temp.csv");

    try {
        MultipartParser mp = new MultipartParser(request,
                (CommonConfiguration.getMaxMediaSizeInMegabytes(context) * 1048576));
        Part part;
        while ((part = mp.readNextPart()) != null) {
            String name = part.getName();
            if (part.isParam()) {

                // it's a parameter part
                ParamPart paramPart = (ParamPart) part;
                String value = paramPart.getStringValue();

            }

            if (part.isFile()) {
                FilePart filePart = (FilePart) part;
                fileName = ServletUtilities.cleanFileName(filePart.getFileName());
                if (fileName != null) {
                    System.out.println("ImportExcelMetadata is trying to upload file " + fileName);
                    //File thisSharkDir = new File(encountersDir.getAbsolutePath() +"/"+ encounterNumber);
                    //if(!thisSharkDir.exists()){thisSharkDir.mkdirs();}
                    finalFile = new File(tempSubdir, fileName);
                    filePart.writeTo(finalFile);
                    successfullyWroteFile = true;
                    System.out.println("\n\nImportExcelMetadata successfully uploaded the file!");
                }
            }
        }

        try {
            if (successfullyWroteFile) {

                System.out.println("\n\n     Starting Excel Metadata content import");

                //OK, we have our CSV file
                //let's import
                CSVReader reader = new CSVReader(new FileReader(finalFile));
                List<String[]> allLines = reader.readAll();
                System.out.println("\n\n     Read in the file!");

                //let's detect the size of this array by reading the number of header columns in row 0
                String[] headerNames = allLines.get(0);
                int numColumns = headerNames.length;
                int numRows = allLines.size();

                //determine the Occurrence_ID column as it is at the end
                int occurrenceIDColumnNumber = -1;
                for (int g = 0; g < numColumns; g++) {
                    if (headerNames[g].equals("Occurrence_ID")) {
                        occurrenceIDColumnNumber = g;
                    }
                }

                for (int i = 1; i < numRows; i++) {

                    System.out.println("\n\n     Processing row " + i);
                    boolean newEncounter = true;
                    boolean newShark = true;
                    String[] line = allLines.get(i);

                    boolean ok2import = true;

                    Encounter enc = new Encounter();

                    myShepherd.beginDBTransaction();

                    //line[0] is the sample_ID
                    String encNumber = line[0].trim();
                    if ((encNumber != null) && (!encNumber.equals(""))) {
                        if (myShepherd.isEncounter(encNumber)) {
                            enc = myShepherd.getEncounter(encNumber);
                            newEncounter = false;
                        } else {
                            enc.setCatalogNumber(encNumber);
                            enc.setState("approved");
                        }
                    } else {
                        ok2import = false;
                        messages.append("<li>Row " + i
                                + ": could not find sample/encounter ID in the first column of row " + i
                                + ".</li>");
                        System.out.println(
                                "          Could not find sample/encounter ID in the first column of row " + i
                                        + ".");
                    }

                    //line[1] is the IndividualID
                    String individualID = line[1].trim();
                    if (individualID != null) {

                        enc.addComments("<p><em>" + request.getRemoteUser() + " on "
                                + (new java.util.Date()).toString() + "</em><br>"
                                + "Import SRGD process set marked individual to " + individualID + ".</p>");

                        //enc.setIndividualID(individualID);
                        System.out.println(
                                "          Setting Individual ID for row " + i + ". Value: " + individualID);

                    }

                    //line[2] is the latitude
                    String latitude = line[2].trim();
                    if ((latitude != null) && (!latitude.equals(""))) {
                        try {

                            enc.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br>"
                                    + "Import SRGD process set latitude to " + latitude + ".</p>");

                            Double lat = new Double(latitude);
                            enc.setDecimalLatitude(lat);
                            System.out.println(
                                    "          Setting latitude for row " + i + ". Value: " + latitude);

                        } catch (NumberFormatException nfe) {
                            messages.append("<li>Row " + i + " for sample ID " + enc.getCatalogNumber()
                                    + ": Latitude hit a NumberFormatException in row " + i
                                    + " and could not be imported. The listed value was: " + latitude
                                    + "</li>");
                        }
                    }

                    //line[3] is the latitude
                    String longitude = line[3].trim();
                    if ((longitude != null) && (!longitude.equals(""))) {
                        try {

                            enc.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br>"
                                    + "Import SRGD process set longitude to " + longitude + ".</p>");

                            Double longie = new Double(longitude);
                            enc.setDecimalLongitude(longie);
                            System.out.println(
                                    "          Setting longitude for row " + i + ". Value: " + longitude);

                        } catch (NumberFormatException nfe) {
                            nfe.printStackTrace();
                            messages.append("<li>Row " + i + " for sample ID " + enc.getCatalogNumber()
                                    + ": Longitude hit a NumberFormatException in row " + i
                                    + " and could not be imported. The listed value was: " + longitude
                                    + "</li>");
                        }
                    }

                    //line[4] is the date_time
                    String isoDate = line[4].trim();
                    if ((isoDate != null) && (!isoDate.equals(""))) {

                        StringTokenizer tks = new StringTokenizer(isoDate, "-");
                        int numTokens = tks.countTokens();
                        DateTimeFormatter parser2 = ISODateTimeFormat.dateTimeParser();

                        enc.setMonth(-1);
                        enc.setDay(-1);
                        enc.setYear(-1);
                        enc.setHour(-1);
                        enc.setMinutes("00");

                        try {
                            DateTime time = parser2.parseDateTime(isoDate);
                            enc.setYear(time.getYear());

                            if (numTokens >= 2) {
                                enc.setMonth(time.getMonthOfYear());
                            }
                            if (numTokens >= 3) {
                                enc.setDay(time.getDayOfMonth());
                            }

                            if (isoDate.indexOf("T") != -1) {
                                int minutes = time.getMinuteOfHour();
                                String minutes2 = (new Integer(minutes)).toString();
                                if ((time.getHourOfDay() != 0) && (minutes != 0)) {
                                    enc.setHour(time.getHourOfDay());
                                    if (isoDate.indexOf(":") != -1) {
                                        enc.setMinutes(minutes2);
                                    }
                                }
                            }

                            enc.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br>"
                                    + "Import SRGD process set date to " + enc.getDate() + ".</p>");

                            System.out.println("          Set date for encounter: " + enc.getDate());

                        } catch (IllegalArgumentException iae) {
                            iae.printStackTrace();
                            messages.append("<li>Row " + i + ": could not import the date and time for row: "
                                    + i + ". Cancelling the import for this row.</li>");
                            ok2import = false;

                        }
                    }

                    //line[5] get locationID
                    String locationID = line[5].trim();
                    if (line.length >= 6) {
                        if ((locationID != null) && (!locationID.equals(""))) {
                            enc.setLocationID(locationID);
                            enc.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br>"
                                    + "Import SRGD process set location ID to " + locationID + ".</p>");

                            System.out.println(
                                    "          Setting location ID for row " + i + ". Value: " + locationID);
                        }
                    }

                    //line[6] get sex
                    String sex = line[6].trim();
                    if (line.length >= 7) {
                        if ((sex != null) && (!sex.equals(""))) {

                            if (sex.equals("M")) {
                                enc.setSex("male");
                            } else if (sex.equals("F")) {
                                enc.setSex("female");
                            } else {
                                enc.setSex("unknown");
                            }

                            System.out.println("          Setting sex for row " + i + ". Value: " + sex);
                            enc.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br>"
                                    + "Import SRGD process set sex to " + enc.getSex() + ".</p>");

                        }

                        //line[occurrenceIDColumnNumber] get Occurrence_ID
                        Occurrence occur = new Occurrence();
                        if (occurrenceIDColumnNumber != -1) {
                            String occurID = line[occurrenceIDColumnNumber];

                            if (myShepherd.isOccurrence(occurID)) {
                                occur = myShepherd.getOccurrence(occurID);
                                boolean isNew = occur.addEncounter(enc);
                                if (isNew) {
                                    occur.addComments("<p><em>" + request.getRemoteUser() + " on "
                                            + (new java.util.Date()).toString() + "</em><br>"
                                            + "Import SRGD process added encounter " + enc.getCatalogNumber()
                                            + ".</p>");
                                }

                            } else {
                                occur = new Occurrence(occurID, enc);
                                occur.addComments("<p><em>" + request.getRemoteUser() + " on "
                                        + (new java.util.Date()).toString() + "</em><br>"
                                        + "Import SRGD process added encounter " + enc.getCatalogNumber()
                                        + ".</p>");

                                myShepherd.getPM().makePersistent(occur);

                            }
                        }

                    }

                    if (ok2import) {

                        System.out.println("          ok2import");

                        myShepherd.commitDBTransaction();
                        if (newEncounter) {
                            myShepherd.storeNewEncounter(enc, enc.getCatalogNumber());
                        }

                        //before proceeding with haplotype and loci importing, we need to create the tissue sample
                        myShepherd.beginDBTransaction();
                        Encounter enc3 = myShepherd.getEncounter(encNumber);
                        TissueSample ts = new TissueSample(encNumber, ("sample_" + encNumber));

                        if (myShepherd.isTissueSample(("sample_" + encNumber), encNumber)) {
                            ts = myShepherd.getTissueSample(("sample_" + encNumber), encNumber);
                        } else {
                            myShepherd.getPM().makePersistent(ts);
                            enc3.addTissueSample(ts);
                        }
                        System.out.println("          Added TissueSample.");

                        //let's set genetic Sex
                        if ((sex != null) && (!sex.equals(""))) {
                            SexAnalysis sexDNA = new SexAnalysis(
                                    ("analysis_" + enc3.getCatalogNumber() + "_sex"), sex,
                                    enc3.getCatalogNumber(), ("sample_" + enc3.getCatalogNumber()));
                            if (myShepherd.isGeneticAnalysis(ts.getSampleID(), encNumber,
                                    ("analysis_" + enc3.getCatalogNumber() + "_sex"), "SexAnalysis")) {
                                sexDNA = myShepherd.getSexAnalysis(ts.getSampleID(), encNumber,
                                        ("analysis_" + enc3.getCatalogNumber() + "_sex"));
                                sexDNA.setSex(sex);
                            } else {
                                ts.addGeneticAnalysis(sexDNA);
                                myShepherd.getPM().makePersistent(sexDNA);
                            }
                            enc3.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br />"
                                    + "Import SRGD process added or updated genetic sex analysis "
                                    + sexDNA.getAnalysisID() + " for tissue sample " + ts.getSampleID()
                                    + ".<br />" + sexDNA.getHTMLString());
                        }
                        System.out.println("          Added genetic sex.");

                        //line[7] get haplotype
                        if (line.length >= 8) {
                            String haplo = line[7].trim();
                            if ((haplo != null) && (!haplo.equals(""))) {
                                //TBD check id this analysis already exists
                                System.out.println("          Starting haplotype.");

                                MitochondrialDNAAnalysis mtDNA = new MitochondrialDNAAnalysis(
                                        ("analysis_" + enc3.getCatalogNumber()), haplo, enc3.getCatalogNumber(),
                                        ("sample_" + enc3.getCatalogNumber()));
                                if (myShepherd.isGeneticAnalysis(ts.getSampleID(), encNumber,
                                        ("analysis_" + enc3.getCatalogNumber()), "MitochondrialDNA")) {
                                    mtDNA = myShepherd.getMitochondrialDNAAnalysis(ts.getSampleID(), encNumber,
                                            ("analysis_" + enc3.getCatalogNumber()));
                                    mtDNA.setHaplotype(haplo);
                                    System.out.println("                  Haplotype reset.");

                                } else {
                                    ts.addGeneticAnalysis(mtDNA);
                                    myShepherd.getPM().makePersistent(mtDNA);
                                    System.out.println("          Added new haplotype.");

                                }
                                enc3.addComments("<p><em>" + request.getRemoteUser() + " on "
                                        + (new java.util.Date()).toString() + "</em><br />"
                                        + "Import SRGD process added or updated mitochondrial DNA analysis (haplotype) "
                                        + mtDNA.getAnalysisID() + " for tissue sample " + ts.getSampleID()
                                        + ".<br />" + mtDNA.getHTMLString());
                                System.out.println("          Added haplotype.");
                            } else {
                                System.out.println("          Did NOT add haplotype.");
                            }
                        }

                        ArrayList<Locus> loci = new ArrayList<Locus>();

                        //loci value import
                        if (line.length >= 9) {

                            for (int f = 8; f < numColumns; f++) {
                                if (line.length > (f + 2)) {
                                    String l1 = line[f].trim();
                                    String l2 = line[f + 1].trim();
                                    String locusName = headerNames[f].replaceAll("L_", "");

                                    System.out.println("          Loaded loci name.");

                                    //verify that we're looking at the right loci and everything matches up nicely
                                    if ((l1 != null) && (l2 != null) && (!l1.equals("")) && (!l2.equals(""))
                                            && (!locusName.equals(""))
                                            && (headerNames[f].trim().toLowerCase().startsWith("l_"))
                                            && (headerNames[f + 1].trim().toLowerCase().startsWith("l_"))
                                            && (headerNames[f].trim().toLowerCase()
                                                    .equals(headerNames[f + 1].trim().toLowerCase()))) {

                                        //get allele values
                                        Integer intA = new Integer(l1);
                                        Integer intB = new Integer(l2);

                                        Locus myLocus = new Locus(locusName, intA, intB);
                                        loci.add(myLocus);

                                    }

                                    f++;
                                }
                            }
                        }

                        //TBD check if this analysis already exists
                        if (loci.size() > 0) {

                            System.out.println("          Found msMarkers!!!!!!!!!!!!1");

                            MicrosatelliteMarkersAnalysis microAnalysis = new MicrosatelliteMarkersAnalysis(
                                    (ts.getSampleID() + "_msMarkerAnalysis"), ts.getSampleID(),
                                    enc.getCatalogNumber(), loci);

                            if (myShepherd.isGeneticAnalysis(ts.getSampleID(), encNumber,
                                    (ts.getSampleID() + "_msMarkerAnalysis"), "MicrosatelliteMarkers")) {
                                microAnalysis = myShepherd.getMicrosatelliteMarkersAnalysis(ts.getSampleID(),
                                        encNumber, (ts.getSampleID() + "_msMarkerAnalysis"));
                                microAnalysis.setLoci(loci);
                            } else {
                                ts.addGeneticAnalysis(microAnalysis);
                                myShepherd.getPM().makePersistent(microAnalysis);
                            }
                            System.out.println("          Added ms markers.");

                            enc3.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br />"
                                    + "Import SRGD process added or updated microsatellite markers of analysis "
                                    + microAnalysis.getAnalysisID() + " for tissue sample " + ts.getSampleID()
                                    + ".<br />" + microAnalysis.getHTMLString());

                        }

                        myShepherd.commitDBTransaction();

                        if (!individualID.equals("")) {
                            MarkedIndividual indie = new MarkedIndividual();
                            myShepherd.beginDBTransaction();

                            Encounter enc2 = myShepherd.getEncounter(encNumber);

                            if (myShepherd.isMarkedIndividual(individualID)) {
                                indie = myShepherd.getMarkedIndividual(individualID);
                                newShark = false;
                            } else {
                                //indie.setIndividualID(individualID);  FIXME  !!!
                            }

                            //OK to generically add it as the addEncounter() method will ignore it if already added to marked individual
                            indie.addEncounter(enc2);

                            if ((indie.getSex() == null)
                                    || ((enc2.getSex() != null) && (indie.getSex() != enc2.getSex()))) {
                                indie.setSex(enc2.getSex());
                                indie.addComments("<p><em>" + request.getRemoteUser() + " on "
                                        + (new java.util.Date()).toString() + "</em><br>"
                                        + "Import SRGD process set sex to " + enc2.getSex() + ".</p>");

                            }

                            if ((indie.getHaplotype() == null) && (enc2.getHaplotype() != null)) {
                                indie.doNotSetLocalHaplotypeReflection(enc2.getHaplotype());
                            }

                            indie.refreshDependentProperties();
                            indie.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br>"
                                    + "Import SRGD process added encounter " + enc2.getCatalogNumber()
                                    + ".</p>");

                            myShepherd.commitDBTransaction();
                            if (newShark) {
                                myShepherd.storeNewMarkedIndividual(indie);
                            }
                        }

                    } else {
                        myShepherd.rollbackDBTransaction();
                    }

                    //out.println("Imported row: "+line);

                }

            } else {
                locked = true;
                System.out.println("ImportSRGD: For some reason the import failed without exception.");
            }

        } catch (Exception le) {
            locked = true;
            myShepherd.rollbackDBTransaction();
            myShepherd.closeDBTransaction();
            le.printStackTrace();
        }

        if (!locked) {
            myShepherd.commitDBTransaction();
            myShepherd.closeDBTransaction();
            out.println(ServletUtilities.getHeader(request));
            out.println(
                    "<p><strong>Success!</strong> I have successfully uploaded and imported your SRGD CSV file.</p>");

            if (messages.toString().equals("")) {
                messages.append("None");
            }
            out.println("<p>The following error messages were reported during the import process:<br /><ul>"
                    + messages + "</ul></p>");

            out.println("<p><a href=\"appadmin/import.jsp\">Return to the import page</a></p>");

            out.println(ServletUtilities.getFooter(context));
        }

    } catch (IOException lEx) {
        lEx.printStackTrace();
        out.println(ServletUtilities.getHeader(request));
        out.println(
                "<strong>Error:</strong> I was unable to upload your SRGD CSV. Please contact the webmaster about this message.");
        out.println(ServletUtilities.getFooter(context));
    } catch (NullPointerException npe) {
        npe.printStackTrace();
        out.println(ServletUtilities.getHeader(request));
        out.println("<strong>Error:</strong> I was unable to import SRGD data as no file was specified.");
        out.println(ServletUtilities.getFooter(context));
    }
    out.close();
}

From source file:org.ecocean.servlet.importer.ImportSRGD.java

License:Open Source License

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    String context = "context0";
    context = ServletUtilities.getContext(request);
    Shepherd myShepherd = new Shepherd(context);
    myShepherd.setAction("ImportSRGD");
    System.out.println("\n\nStarting ImportSRGD servlet...");

    //setup data dir
    String rootWebappPath = getServletContext().getRealPath("/");
    File webappsDir = new File(rootWebappPath).getParentFile();
    File shepherdDataDir = new File(webappsDir, CommonConfiguration.getDataDirectoryName(context));
    if (!shepherdDataDir.exists()) {
        shepherdDataDir.mkdirs();/*from   w  ww  . ja  v a2s. c om*/
    }
    File tempSubdir = new File(webappsDir, "temp");
    if (!tempSubdir.exists()) {
        tempSubdir.mkdirs();
    }
    System.out.println("\n\n     Finished directory creation...");

    //set up for response
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    boolean locked = false;

    String fileName = "None";

    StringBuffer messages = new StringBuffer();

    boolean successfullyWroteFile = false;

    File finalFile = new File(tempSubdir, "temp.csv");

    try {
        MultipartParser mp = new MultipartParser(request,
                (CommonConfiguration.getMaxMediaSizeInMegabytes(context) * 1048576));
        Part part;
        while ((part = mp.readNextPart()) != null) {
            String name = part.getName();
            if (part.isParam()) {

                // it's a parameter part
                ParamPart paramPart = (ParamPart) part;
                String value = paramPart.getStringValue();

            }

            if (part.isFile()) {
                FilePart filePart = (FilePart) part;
                fileName = ServletUtilities.cleanFileName(filePart.getFileName());
                if (fileName != null) {
                    System.out.println("     Trying to upload file: " + fileName);
                    //File thisSharkDir = new File(encountersDir.getAbsolutePath() +"/"+ encounterNumber);
                    //if(!thisSharkDir.exists()){thisSharkDir.mkdirs();}
                    finalFile = new File(tempSubdir, fileName);
                    filePart.writeTo(finalFile);
                    successfullyWroteFile = true;
                    System.out.println("\n\n     I successfully uploaded the file!");
                }
            }
        }

        try {
            if (successfullyWroteFile) {

                System.out.println("\n\n     Starting CSV content import...");

                //OK, we have our CSV file
                //let's import
                CSVReader reader = new CSVReader(new FileReader(finalFile));
                List<String[]> allLines = reader.readAll();
                System.out.println("\n\n     Read in the CSV file!");

                //let's detect the size of this array by reading the number of header columns in row 0
                String[] headerNames = allLines.get(0);
                int numColumns = headerNames.length;
                int numRows = allLines.size();

                //determine the Occurrence_ID column as it is at the end
                int occurrenceIDColumnNumber = -1;
                for (int g = 0; g < numColumns; g++) {
                    if (headerNames[g].equals("Occurrence_ID")) {
                        occurrenceIDColumnNumber = g;
                    }
                }

                for (int i = 1; i < numRows; i++) {

                    System.out.println("\n\n     Processing row " + i);
                    boolean newEncounter = true;
                    boolean newShark = true;
                    String[] line = allLines.get(i);

                    boolean ok2import = true;

                    Encounter enc = new Encounter();

                    myShepherd.beginDBTransaction();

                    //line[0] is the sample_ID
                    String encNumber = line[0].trim();
                    if ((encNumber != null) && (!encNumber.equals(""))) {
                        if (myShepherd.isEncounter(encNumber)) {
                            enc = myShepherd.getEncounter(encNumber);
                            newEncounter = false;
                        } else {
                            enc.setCatalogNumber(encNumber);
                            enc.setState("approved");
                        }
                    } else {
                        ok2import = false;
                        messages.append("<li>Row " + i
                                + ": could not find sample/encounter ID in the first column of row " + i
                                + ".</li>");
                        System.out.println(
                                "          Could not find sample/encounter ID in the first column of row " + i
                                        + ".");
                    }

                    //line[1] is the IndividualID
                    String individualID = line[1].trim();
                    if (individualID != null) {

                        enc.addComments("<p><em>" + request.getRemoteUser() + " on "
                                + (new java.util.Date()).toString() + "</em><br>"
                                + "Import SRGD process set marked individual to " + individualID + ".</p>");

                        //enc.setIndividualID(individualID);
                        System.out.println(
                                "          Setting Individual ID for row " + i + ". Value: " + individualID);

                    }

                    //line[2] is the latitude
                    String latitude = line[2].trim();
                    if ((latitude != null) && (!latitude.equals(""))) {
                        try {

                            enc.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br>"
                                    + "Import SRGD process set latitude to " + latitude + ".</p>");

                            Double lat = new Double(latitude);
                            enc.setDecimalLatitude(lat);
                            System.out.println(
                                    "          Setting latitude for row " + i + ". Value: " + latitude);

                        } catch (NumberFormatException nfe) {
                            messages.append("<li>Row " + i + " for sample ID " + enc.getCatalogNumber()
                                    + ": Latitude hit a NumberFormatException in row " + i
                                    + " and could not be imported. The listed value was: " + latitude
                                    + "</li>");
                        }
                    }

                    //line[3] is the latitude
                    String longitude = line[3].trim();
                    if ((longitude != null) && (!longitude.equals(""))) {
                        try {

                            enc.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br>"
                                    + "Import SRGD process set longitude to " + longitude + ".</p>");

                            Double longie = new Double(longitude);
                            enc.setDecimalLongitude(longie);
                            System.out.println(
                                    "          Setting longitude for row " + i + ". Value: " + longitude);

                        } catch (NumberFormatException nfe) {
                            nfe.printStackTrace();
                            messages.append("<li>Row " + i + " for sample ID " + enc.getCatalogNumber()
                                    + ": Longitude hit a NumberFormatException in row " + i
                                    + " and could not be imported. The listed value was: " + longitude
                                    + "</li>");
                        }
                    }

                    //line[4] is the date_time
                    String isoDate = line[4].trim();
                    if ((isoDate != null) && (!isoDate.equals(""))) {

                        StringTokenizer tks = new StringTokenizer(isoDate, "-");
                        int numTokens = tks.countTokens();
                        DateTimeFormatter parser2 = ISODateTimeFormat.dateTimeParser();

                        enc.setMonth(-1);
                        enc.setDay(-1);
                        enc.setYear(-1);
                        enc.setHour(-1);
                        enc.setMinutes("00");

                        try {
                            DateTime time = parser2.parseDateTime(isoDate);
                            enc.setYear(time.getYear());

                            if (numTokens >= 2) {
                                enc.setMonth(time.getMonthOfYear());
                            }
                            if (numTokens >= 3) {
                                enc.setDay(time.getDayOfMonth());
                            }

                            if (isoDate.indexOf("T") != -1) {
                                int minutes = time.getMinuteOfHour();
                                String minutes2 = (new Integer(minutes)).toString();
                                if ((time.getHourOfDay() != 0) && (minutes != 0)) {
                                    enc.setHour(time.getHourOfDay());
                                    if (isoDate.indexOf(":") != -1) {
                                        enc.setMinutes(minutes2);
                                    }
                                }
                            }

                            enc.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br>"
                                    + "Import SRGD process set date to " + enc.getDate() + ".</p>");

                            System.out.println("          Set date for encounter: " + enc.getDate());

                        } catch (IllegalArgumentException iae) {
                            iae.printStackTrace();
                            messages.append("<li>Row " + i + ": could not import the date and time for row: "
                                    + i + ". Cancelling the import for this row.</li>");
                            ok2import = false;

                        }
                    }

                    //line[5] get locationID
                    String locationID = line[5].trim();
                    if (line.length >= 6) {
                        if ((locationID != null) && (!locationID.equals(""))) {
                            enc.setLocationID(locationID);
                            enc.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br>"
                                    + "Import SRGD process set location ID to " + locationID + ".</p>");

                            System.out.println(
                                    "          Setting location ID for row " + i + ". Value: " + locationID);
                        }
                    }

                    //line[6] get sex
                    String sex = line[6].trim();
                    if (line.length >= 7) {
                        if ((sex != null) && (!sex.equals(""))) {

                            if (sex.equals("M")) {
                                enc.setSex("male");
                            } else if (sex.equals("F")) {
                                enc.setSex("female");
                            } else {
                                enc.setSex("unknown");
                            }

                            System.out.println("          Setting sex for row " + i + ". Value: " + sex);
                            enc.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br>"
                                    + "Import SRGD process set sex to " + enc.getSex() + ".</p>");

                        }

                        //line[occurrenceIDColumnNumber] get Occurrence_ID
                        Occurrence occur = new Occurrence();
                        if (occurrenceIDColumnNumber != -1) {
                            String occurID = line[occurrenceIDColumnNumber];

                            if (myShepherd.isOccurrence(occurID)) {
                                occur = myShepherd.getOccurrence(occurID);
                                boolean isNew = occur.addEncounter(enc);
                                if (isNew) {
                                    occur.addComments("<p><em>" + request.getRemoteUser() + " on "
                                            + (new java.util.Date()).toString() + "</em><br>"
                                            + "Import SRGD process added encounter " + enc.getCatalogNumber()
                                            + ".</p>");
                                }

                            } else {
                                occur = new Occurrence(occurID, enc);
                                occur.addComments("<p><em>" + request.getRemoteUser() + " on "
                                        + (new java.util.Date()).toString() + "</em><br>"
                                        + "Import SRGD process added encounter " + enc.getCatalogNumber()
                                        + ".</p>");

                                myShepherd.getPM().makePersistent(occur);

                            }
                        }

                    }

                    if (ok2import) {

                        System.out.println("          ok2import");

                        myShepherd.commitDBTransaction();
                        if (newEncounter) {
                            myShepherd.storeNewEncounter(enc, enc.getCatalogNumber());
                        }

                        //before proceeding with haplotype and loci importing, we need to create the tissue sample
                        myShepherd.beginDBTransaction();
                        Encounter enc3 = myShepherd.getEncounter(encNumber);
                        TissueSample ts = new TissueSample(encNumber, ("sample_" + encNumber));

                        if (myShepherd.isTissueSample(("sample_" + encNumber), encNumber)) {
                            ts = myShepherd.getTissueSample(("sample_" + encNumber), encNumber);
                        } else {
                            myShepherd.getPM().makePersistent(ts);
                            enc3.addTissueSample(ts);
                        }
                        System.out.println("          Added TissueSample.");

                        //let's set genetic Sex
                        if ((sex != null) && (!sex.equals(""))) {
                            SexAnalysis sexDNA = new SexAnalysis(
                                    ("analysis_" + enc3.getCatalogNumber() + "_sex"), sex,
                                    enc3.getCatalogNumber(), ("sample_" + enc3.getCatalogNumber()));
                            if (myShepherd.isGeneticAnalysis(ts.getSampleID(), encNumber,
                                    ("analysis_" + enc3.getCatalogNumber() + "_sex"), "SexAnalysis")) {
                                sexDNA = myShepherd.getSexAnalysis(ts.getSampleID(), encNumber,
                                        ("analysis_" + enc3.getCatalogNumber() + "_sex"));
                                sexDNA.setSex(sex);
                            } else {
                                ts.addGeneticAnalysis(sexDNA);
                                myShepherd.getPM().makePersistent(sexDNA);
                            }
                            enc3.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br />"
                                    + "Import SRGD process added or updated genetic sex analysis "
                                    + sexDNA.getAnalysisID() + " for tissue sample " + ts.getSampleID()
                                    + ".<br />" + sexDNA.getHTMLString());
                        }
                        System.out.println("          Added genetic sex.");

                        //line[7] get haplotype
                        if (line.length >= 8) {
                            String haplo = line[7].trim();
                            if ((haplo != null) && (!haplo.equals(""))) {
                                //TBD check id this analysis already exists
                                System.out.println("          Starting haplotype.");

                                MitochondrialDNAAnalysis mtDNA = new MitochondrialDNAAnalysis(
                                        ("analysis_" + enc3.getCatalogNumber()), haplo, enc3.getCatalogNumber(),
                                        ("sample_" + enc3.getCatalogNumber()));
                                if (myShepherd.isGeneticAnalysis(ts.getSampleID(), encNumber,
                                        ("analysis_" + enc3.getCatalogNumber()), "MitochondrialDNA")) {
                                    mtDNA = myShepherd.getMitochondrialDNAAnalysis(ts.getSampleID(), encNumber,
                                            ("analysis_" + enc3.getCatalogNumber()));
                                    mtDNA.setHaplotype(haplo);
                                    System.out.println("                  Haplotype reset.");

                                } else {
                                    ts.addGeneticAnalysis(mtDNA);
                                    myShepherd.getPM().makePersistent(mtDNA);
                                    System.out.println("          Added new haplotype.");

                                }
                                enc3.addComments("<p><em>" + request.getRemoteUser() + " on "
                                        + (new java.util.Date()).toString() + "</em><br />"
                                        + "Import SRGD process added or updated mitochondrial DNA analysis (haplotype) "
                                        + mtDNA.getAnalysisID() + " for tissue sample " + ts.getSampleID()
                                        + ".<br />" + mtDNA.getHTMLString());
                                System.out.println("          Added haplotype.");
                            } else {
                                System.out.println("          Did NOT add haplotype.");
                            }
                        }

                        ArrayList<Locus> loci = new ArrayList<Locus>();

                        //loci value import       
                        if (line.length >= 9) {

                            for (int f = 8; f < numColumns; f++) {
                                if (line.length > (f + 2)) {
                                    String l1 = line[f].trim();
                                    String l2 = line[f + 1].trim();
                                    String locusName = headerNames[f].replaceAll("L_", "");

                                    System.out.println("          Loaded loci name.");

                                    //verify that we're looking at the right loci and everything matches up nicely
                                    if ((l1 != null) && (l2 != null) && (!l1.equals("")) && (!l2.equals(""))
                                            && (!locusName.equals(""))
                                            && (headerNames[f].trim().toLowerCase().startsWith("l_"))
                                            && (headerNames[f + 1].trim().toLowerCase().startsWith("l_"))
                                            && (headerNames[f].trim().toLowerCase()
                                                    .equals(headerNames[f + 1].trim().toLowerCase()))) {

                                        //get allele values
                                        Integer intA = new Integer(l1);
                                        Integer intB = new Integer(l2);

                                        Locus myLocus = new Locus(locusName, intA, intB);
                                        loci.add(myLocus);

                                    }

                                    f++;
                                }
                            }
                        }

                        //TBD check if this analysis already exists
                        if (loci.size() > 0) {

                            System.out.println("          Found msMarkers!!!!!!!!!!!!1");

                            MicrosatelliteMarkersAnalysis microAnalysis = new MicrosatelliteMarkersAnalysis(
                                    (ts.getSampleID() + "_msMarkerAnalysis"), ts.getSampleID(),
                                    enc.getCatalogNumber(), loci);

                            if (myShepherd.isGeneticAnalysis(ts.getSampleID(), encNumber,
                                    (ts.getSampleID() + "_msMarkerAnalysis"), "MicrosatelliteMarkers")) {
                                microAnalysis = myShepherd.getMicrosatelliteMarkersAnalysis(ts.getSampleID(),
                                        encNumber, (ts.getSampleID() + "_msMarkerAnalysis"));
                                microAnalysis.setLoci(loci);
                            } else {
                                ts.addGeneticAnalysis(microAnalysis);
                                myShepherd.getPM().makePersistent(microAnalysis);
                            }
                            System.out.println("          Added ms markers.");

                            enc3.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br />"
                                    + "Import SRGD process added or updated microsatellite markers of analysis "
                                    + microAnalysis.getAnalysisID() + " for tissue sample " + ts.getSampleID()
                                    + ".<br />" + microAnalysis.getHTMLString());

                        }

                        myShepherd.commitDBTransaction();

                        if (!individualID.equals("")) {
                            MarkedIndividual indie = new MarkedIndividual();
                            myShepherd.beginDBTransaction();

                            Encounter enc2 = myShepherd.getEncounter(encNumber);

                            if (myShepherd.isMarkedIndividual(individualID)) {
                                indie = myShepherd.getMarkedIndividual(individualID);
                                newShark = false;
                            } else {
                                //indie.setIndividualID(individualID);
                            }

                            //OK to generically add it as the addEncounter() method will ignore it if already added to marked individual
                            indie.addEncounter(enc2);

                            if ((indie.getSex() == null)
                                    || ((enc2.getSex() != null) && (indie.getSex() != enc2.getSex()))) {
                                indie.setSex(enc2.getSex());
                                indie.addComments("<p><em>" + request.getRemoteUser() + " on "
                                        + (new java.util.Date()).toString() + "</em><br>"
                                        + "Import SRGD process set sex to " + enc2.getSex() + ".</p>");

                            }

                            if ((indie.getHaplotype() == null) && (enc2.getHaplotype() != null)) {
                                indie.doNotSetLocalHaplotypeReflection(enc2.getHaplotype());
                            }

                            indie.refreshDependentProperties();
                            indie.addComments("<p><em>" + request.getRemoteUser() + " on "
                                    + (new java.util.Date()).toString() + "</em><br>"
                                    + "Import SRGD process added encounter " + enc2.getCatalogNumber()
                                    + ".</p>");

                            myShepherd.commitDBTransaction();
                            if (newShark) {
                                myShepherd.storeNewMarkedIndividual(indie);
                            }
                        }

                    } else {
                        myShepherd.rollbackDBTransaction();
                    }

                    //out.println("Imported row: "+line);

                }

            } else {
                locked = true;
                System.out.println("ImportSRGD: For some reason the import failed without exception.");
            }

        } catch (Exception le) {
            locked = true;
            myShepherd.rollbackDBTransaction();
            myShepherd.closeDBTransaction();
            le.printStackTrace();
        }

        if (!locked) {
            myShepherd.commitDBTransaction();
            myShepherd.closeDBTransaction();
            out.println(ServletUtilities.getHeader(request));
            out.println(
                    "<p><strong>Success!</strong> I have successfully uploaded and imported your SRGD CSV file.</p>");

            if (messages.toString().equals("")) {
                messages.append("None");
            }
            out.println("<p>The following error messages were reported during the import process:<br /><ul>"
                    + messages + "</ul></p>");

            out.println("<p><a href=\"appadmin/import.jsp\">Return to the import page</a></p>");

            out.println(ServletUtilities.getFooter(context));
        }

    } catch (IOException lEx) {
        lEx.printStackTrace();
        out.println(ServletUtilities.getHeader(request));
        out.println(
                "<strong>Error:</strong> I was unable to upload your SRGD CSV. Please contact the webmaster about this message.");
        out.println(ServletUtilities.getFooter(context));
    } catch (NullPointerException npe) {
        npe.printStackTrace();
        out.println(ServletUtilities.getHeader(request));
        out.println("<strong>Error:</strong> I was unable to import SRGD data as no file was specified.");
        out.println(ServletUtilities.getFooter(context));
    }
    out.close();
}

From source file:org.efaps.ui.wicket.util.DateUtil.java

License:Apache License

/**
 * Convert a date from a parameter into a <code>DateTime</code>.
 *
 * @param _value value to be converted/*from  ww w . j a va2 s. co m*/
 * @return DateTime
 * @throws EFapsException on error
 */
public static DateTime getDateFromParameter(final String _value) throws EFapsException {
    final StyleDateConverter styledate = new StyleDateConverter(false);
    final DateTimeFormatter fmt = DateTimeFormat
            .forPattern(styledate.getDatePattern(Context.getThreadContext().getLocale()));
    fmt.withLocale(Context.getThreadContext().getLocale());
    final DateTime dt = fmt.parseDateTime(_value);
    return dt;
}