List of usage examples for org.joda.time LocalDateTime getMonthOfYear
public int getMonthOfYear()
From source file:org.assertj.jodatime.api.LocalDateTimeAssert.java
License:Apache License
/** * Returns true if both datetime are in the same year and month, false otherwise. * //w ww . j a v a 2 s .c om * @param actual the actual datetime. expected not be null * @param other the other datetime. expected not be null * @return true if both datetime are in the same year and month, false otherwise */ private static boolean haveSameYearAndMonth(LocalDateTime actual, LocalDateTime other) { return haveSameYear(actual, other) && actual.getMonthOfYear() == other.getMonthOfYear(); }
From source file:org.broadleafcommerce.core.offer.service.processor.AbstractBaseProcessor.java
License:Apache License
/** * Removes all out of date offers. If an offer does not have a start date, or the start * date is a later date, that offer will be removed. Offers without a start date should * not be processed. If the offer has a end date that has already passed, that offer * will be removed. Offers without a end date will be processed if the start date * is prior to the transaction date./*from ww w . j a v a 2 s . c o m*/ * * @param offers * @return List of Offers with valid dates */ protected List<Offer> removeOutOfDateOffers(List<Offer> offers) { List<Offer> offersToRemove = new ArrayList<Offer>(); for (Offer offer : offers) { TimeZone timeZone = getOfferTimeZoneProcessor().getTimeZone(offer); Calendar current = timeZone == null ? SystemTime.asCalendar() : SystemTime.asCalendar(timeZone); Calendar start = null; if (offer.getStartDate() != null) { LocalDateTime startDate = new LocalDateTime(offer.getStartDate()); start = timeZone == null ? new GregorianCalendar() : new GregorianCalendar(timeZone); start.set(Calendar.YEAR, startDate.getYear()); start.set(Calendar.MONTH, startDate.getMonthOfYear() - 1); start.set(Calendar.DAY_OF_MONTH, startDate.getDayOfMonth()); start.set(Calendar.HOUR_OF_DAY, startDate.getHourOfDay()); start.set(Calendar.MINUTE, startDate.getMinuteOfHour()); start.set(Calendar.SECOND, startDate.getSecondOfMinute()); start.get(Calendar.HOUR_OF_DAY);//do not delete this line start.get(Calendar.MINUTE); if (LOG.isTraceEnabled()) { LOG.debug("Offer: " + offer.getName() + " timeZone:" + timeZone + " startTime:" + start.getTime() + " currentTime:" + current.getTime()); } } Calendar end = null; if (offer.getEndDate() != null) { LocalDateTime endDate = new LocalDateTime(offer.getEndDate()); end = timeZone == null ? new GregorianCalendar() : new GregorianCalendar(timeZone); end.set(Calendar.YEAR, endDate.getYear()); end.set(Calendar.MONTH, endDate.getMonthOfYear() - 1); end.set(Calendar.DAY_OF_MONTH, endDate.getDayOfMonth()); end.set(Calendar.HOUR_OF_DAY, endDate.getHourOfDay()); end.set(Calendar.MINUTE, endDate.getMinuteOfHour()); end.set(Calendar.SECOND, endDate.getSecondOfMinute()); end.get(Calendar.HOUR_OF_DAY);//do not delete this line end.get(Calendar.MINUTE); if (LOG.isTraceEnabled()) { LOG.debug("Offer: " + offer.getName() + " endTime:" + start.getTime()); } } if ((offer.getStartDate() == null) || (start.after(current))) { offersToRemove.add(offer); } else if (offer.getEndDate() != null && end.before(current)) { offersToRemove.add(offer); } } // remove all offers in the offersToRemove list from original offers list for (Offer offer : offersToRemove) { offers.remove(offer); } return offers; // return offers; }
From source file:org.ecocean.servlet.EncounterForm.java
License:Open Source License
@Override public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); HashMap fv = new HashMap(); //IMPORTANT - processingNotes can be used to add notes on data handling (e.g., poorly formatted dates) that can be reconciled later by the reviewer //Example usage: processingNotes.append("<p>Error encountered processing this date submitted by user: "+getVal(fv, "datepicker")+"</p>"); StringBuffer processingNotes = new StringBuffer(); HttpSession session = request.getSession(true); String context = "context0"; context = ServletUtilities.getContext(request); Shepherd myShepherd = new Shepherd(context); myShepherd.setAction("EncounterForm.class"); System.out.println("in context " + context); //request.getSession()getServlet().getServletContext().getRealPath("/")); String rootDir = getServletContext().getRealPath("/"); System.out.println("rootDir=" + rootDir); /*//from www . j av a 2 s . c o m Vector<String> fbImages = new Vector<String>(); int fbi = 0; while (request.getParameter("socialphoto_" + fbi) != null) { fbImages.add(request.getParameter("socialphoto_" + fbi)); fbi++; } System.out.println(fbImages); if (fbImages.size() > 0) { FacebookClient fbclient = null; try { fbclient = SocialAuth.getFacebookClient(context); } catch (Exception ex) { System.out.println("SocialAuth.getFacebookClient threw exception " + ex.toString()); } WebContext ctx = new J2EContext(request, response); //String callbackUrl = "http://localhost.wildme.org/a/SocialConnect?type=facebook"; String callbackUrl = "http://" + CommonConfiguration.getURLLocation(request) + "/XXXSocialConnect?type=facebook"; if (request.getParameter("disconnect") != null) callbackUrl += "&disconnect=1"; fbclient.setCallbackUrl(callbackUrl); OAuthCredentials credentials = null; try { credentials = fbclient.getCredentials(ctx); } catch (Exception ex) { System.out.println("caught exception on facebook credentials: " + ex.toString()); } if (credentials != null) { FacebookProfile facebookProfile = fbclient.getUserProfile(credentials, ctx); User fbuser = myShepherd.getUserBySocialId("facebook", facebookProfile.getId()); System.out.println("getId() = " + facebookProfile.getId() + " -> user = " + fbuser); if (fbuser != null) System.out.println("user = " + user.getUsername() + "; fbuser = " + fbuser.getUsername()); if ((fbuser != null) && (fbuser.getUsername().equals(user.getUsername())) && (request.getParameter("disconnect") != null)) { fbuser.unsetSocial("facebook"); //myShepherd.getPM().makePersistent(user); session.setAttribute("message", "disconnected from facebook"); response.sendRedirect("myAccount.jsp"); return; } else if (fbuser != null) { session.setAttribute("error", "looks like this account is already connected to an account"); response.sendRedirect("myAccount.jsp"); return; } else { //lets do this user.setSocial("facebook", facebookProfile.getId()); //myShepherd.getPM().makePersistent(user); session.setAttribute("message", "connected to facebook"); response.sendRedirect("myAccount.jsp"); return; } } else { System.out.println("*** trying redirect?"); try { fbclient.redirect(ctx, false, false); } catch (Exception ex) { System.out.println("caught exception on facebook processing: " + ex.toString()); } return; } } */ //private Map<String, Object> measurements = new HashMap<String, Object>(); //Map<String, Object> metalTags = new HashMap<String, Object>(); /* private String acousticTagSerial = ""; private String acousticTagId = ""; private String satelliteTagSerial = ""; private String satelliteTagArgosPttNumber = ""; private String satelliteTagName = ""; */ //set up for response response.setContentType("text/html"); PrintWriter out = response.getWriter(); boolean locked = false; String fileName = "None"; String username = "None"; String fullPathFilename = ""; boolean fileSuccess = false; //kinda pointless now as we just build sentFiles list now at this point (do file work at end) String doneMessage = ""; List<String> filesOK = new ArrayList<String>(); HashMap<String, String> filesBad = new HashMap<String, String>(); List<FileItem> formFiles = new ArrayList<FileItem>(); List<File> socialFiles = new ArrayList<File>(); //Calendar date = Calendar.getInstance(); long maxSizeMB = CommonConfiguration.getMaxMediaSizeInMegabytes(context); long maxSizeBytes = maxSizeMB * 1048576; if (ServletFileUpload.isMultipartContent(request)) { try { ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory()); upload.setHeaderEncoding("UTF-8"); List<FileItem> multiparts = upload.parseRequest(request); //List<FileItem> multiparts = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request); for (FileItem item : multiparts) { if (item.isFormField()) { //plain field fv.put(item.getFieldName(), ServletUtilities.preventCrossSiteScriptingAttacks(item.getString("UTF-8").trim())); //TODO do we want trim() here??? -jon //System.out.println("got regular field (" + item.getFieldName() + ")=(" + item.getString("UTF-8") + ")"); } else if (item.getName().startsWith("socialphoto_")) { System.out.println(item.getName() + ": " + item.getString("UTF-8")); } else { //file //System.out.println("content type???? " + item.getContentType()); TODO note, the helpers only check extension if (item.getSize() > maxSizeBytes) { filesBad.put(item.getName(), "file is larger than " + maxSizeMB + "MB"); } else if (myShepherd.isAcceptableImageFile(item.getName()) || myShepherd.isAcceptableVideoFile(item.getName())) { formFiles.add(item); filesOK.add(item.getName()); } else { filesBad.put(item.getName(), "invalid type of file"); } } } doneMessage = "File Uploaded Successfully"; fileSuccess = true; } catch (Exception ex) { doneMessage = "File Upload Failed due to " + ex; } } else { doneMessage = "Sorry this Servlet only handles file upload request"; System.out.println("Not a multi-part form submission!"); } if (fv.get("social_files_id") != null) { System.out.println("BBB: Social_files_id: " + fv.get("social_files_id")); //TODO better checking of files (size, type etc) File socDir = new File( ServletUtilities.dataDir(context, rootDir) + "/social_files/" + fv.get("social_files_id")); for (File sf : socDir.listFiles()) { socialFiles.add(sf); System.out.println("BBB: Adding social file : " + sf.getName()); filesOK.add(sf.getName()); } filesBad = new HashMap<String, String>(); fileSuccess = true; } session.setAttribute("filesOKMessage", (filesOK.isEmpty() ? "none" : Arrays.toString(filesOK.toArray()))); String badmsg = ""; for (String key : filesBad.keySet()) { badmsg += key + " (" + getVal(filesBad, key) + ") "; } if (badmsg.equals("")) { badmsg = "none"; } session.setAttribute("filesBadMessage", badmsg); if (fileSuccess) { //////////////////////////////////////////// START //{submitterID=tomcat, submitterProject=, photographerEmail=, metalTag(left)=, sex=unknown, measurement(weight)=34234, location=, acousticTagId=, behavior=yow behavior..., measurement(weightunits)=kilograms, acousticTagSerial=, photographerName=, lifeStage=sub-adult, submitterAddress=, satelliteTagSerial=, releaseDate=, photographerPhone=, measurement(lengthunits)=meters, measurement(weightsamplingProtocol)=samplingProtocol0, measurement(length)=, submitterOrganization=, photographerAddress=, longitude=, year=2014, lat=, measurement(lengthsamplingProtocol)=samplingProtocol0, submitterEmail=, minutes=00, elevation=, measurement(height)=, measurement(heightsamplingProtocol)=samplingProtocol0, scars=None, submitterPhone=, submitterName=tomcat, hour=-1, livingStatus=alive, depth=, country=, satelliteTagName=Wild Life Computers, metalTag(right)=, month=1, measurement(heightunits)=meters, Submit=Send encounter report, informothers=, day=0, satelliteTagArgosPttNumber=, comments=} //check for spamBots TODO possibly move this to Util for general/global usage? boolean spamBot = false; String[] spamFieldsToCheck = new String[] { "submitterPhone", "submitterName", "photographerName", "photographerPhone", "location", "comments", "behavior" }; StringBuffer spamFields = new StringBuffer(); for (int i = 0; i < spamFieldsToCheck.length; i++) { spamFields.append(getVal(fv, spamFieldsToCheck[i])); } if (spamFields.toString().toLowerCase().indexOf("porn") != -1) { spamBot = true; } if (spamFields.toString().toLowerCase().indexOf("href") != -1) { spamBot = true; } System.out.println("spambot: " + spamBot); //else if(spamFields.toString().toLowerCase().indexOf("[url]")!=-1){spamBot=true;} //else if(spamFields.toString().toLowerCase().indexOf("url=")!=-1){spamBot=true;} //else if(spamFields.toString().toLowerCase().trim().equals("")){spamBot=true;} //else if((theForm.getSubmitterID()!=null)&&(theForm.getSubmitterID().equals("N%2FA"))) {spamBot=true;} String locCode = ""; System.out.println(" **** here is what i think locationID is: " + fv.get("locationID")); if ((fv.get("locationID") != null) && !fv.get("locationID").toString().equals("")) { locCode = fv.get("locationID").toString(); } //see if the location code can be determined and set based on the location String reported else if (fv.get("location") != null) { String locTemp = getVal(fv, "location").toLowerCase(); Properties props = new Properties(); try { props = ShepherdProperties.getProperties("submitActionClass.properties", "", context); Enumeration m_enum = props.propertyNames(); while (m_enum.hasMoreElements()) { String aLocationSnippet = ((String) m_enum.nextElement()).trim(); if (locTemp.indexOf(aLocationSnippet) != -1) { locCode = props.getProperty(aLocationSnippet); } } } catch (Exception props_e) { props_e.printStackTrace(); } } //end else //end location code setter fv.put("locCode", locCode); //TODO this should live somewhere else as constant? (e.g. to build in form as well) String[] scarType = new String[] { "None", "Tail (caudal) fin", "1st dorsal fin", "2nd dorsal fin", "Left pectoral fin", "Right pectoral fin", "Head", "Body" }; int scarNum = -1; try { scarNum = Integer.parseInt(getVal(fv, "scars")); } catch (NumberFormatException e) { scarNum = -1; } if ((scarNum < 0) || (scarNum > 7)) { scarNum = -1; } if (scarNum >= 0) { fv.put("scars", scarType[scarNum]); } //System.out.println("about to do int stuff"); //need some ints for day/month/year/hour (other stuff seems to be strings) int day = 0, month = -1, year = 0, hour = 0; String minutes = ""; //try { day = Integer.parseInt(getVal(fv, "day")); } catch (NumberFormatException e) { day = 0; } //try { month = Integer.parseInt(getVal(fv, "month")); } catch (NumberFormatException e) { month = 0; } //try { year = Integer.parseInt(getVal(fv, "year")); } catch (NumberFormatException e) { year = 0; } //switch to datepicker LocalDateTime dt = new LocalDateTime(); if ((getVal(fv, "datepicker") != null) && (!getVal(fv, "datepicker").trim().equals(""))) { //System.out.println("Trying to read date: "+getVal(fv, "datepicker").replaceAll(" ", "T")); //boolean badDate=false; try { DateTimeFormatter parser1 = ISODateTimeFormat.dateOptionalTimeParser(); LocalDateTime reportedDateTime = new LocalDateTime( parser1.parseMillis(getVal(fv, "datepicker").replaceAll(" ", "T"))); StringTokenizer str = new StringTokenizer(getVal(fv, "datepicker").replaceAll(" ", "T"), "-"); int numTokens = str.countTokens(); if (numTokens >= 1) { //try { year = reportedDateTime.getYear(); if (year > (dt.getYear() + 1)) { //badDate=true; year = 0; throw new Exception( " An unknown exception occurred during date processing in EncounterForm. The user may have input an improper format: " + year + " > " + dt.getYear()); } //} catch (Exception e) { year=-1;} } if (numTokens >= 2) { try { month = reportedDateTime.getMonthOfYear(); } catch (Exception e) { month = -1; } } else { month = -1; } //see if we can get a day, because we do want to support only yyy-MM too if (str.countTokens() >= 3) { try { day = reportedDateTime.getDayOfMonth(); } catch (Exception e) { day = 0; } } else { day = 0; } //see if we can get a time and hour, because we do want to support only yyy-MM too StringTokenizer strTime = new StringTokenizer(getVal(fv, "datepicker").replaceAll(" ", "T"), "T"); if (strTime.countTokens() > 1) { try { hour = reportedDateTime.getHourOfDay(); } catch (Exception e) { hour = -1; } try { minutes = (new Integer(reportedDateTime.getMinuteOfHour()).toString()); } catch (Exception e) { } } else { hour = -1; } //System.out.println("At the end of time processing I see: "+year+"-"+month+"-"+day+" "+hour+":"+minutes); } catch (Exception e) { System.out.println( " An unknown exception occurred during date processing in EncounterForm. The user may have input an improper format."); e.printStackTrace(); processingNotes.append("<p>Error encountered processing this date submitted by user: " + getVal(fv, "datepicker") + "</p>"); } } String guess = "no estimate provided"; if ((fv.get("guess") != null) && !fv.get("guess").toString().equals("")) { guess = fv.get("guess").toString(); } //let's handle genus and species for taxonomy String genus = null; String specificEpithet = null; try { //now we have to break apart genus species if (fv.get("genusSpecies") != null) { StringTokenizer tokenizer = new StringTokenizer(fv.get("genusSpecies").toString(), " "); if (tokenizer.countTokens() >= 2) { genus = tokenizer.nextToken(); //enc.setGenus(tokenizer.nextToken()); specificEpithet = tokenizer.nextToken().replaceAll(",", "").replaceAll("_", " "); //enc.setSpecificEpithet(tokenizer.nextToken().replaceAll(",","").replaceAll("_"," ")); } //handle malformed Genus Species formats else { throw new Exception( "The format of the submitted genusSpecies parameter did not have two tokens delimited by a space (e.g., \"Rhincodon typus\"). The submitted value was: " + fv.get("genusSpecies")); } } } catch (Exception le) { le.printStackTrace(); } System.out.println("about to do enc()"); Encounter enc = new Encounter(day, month, year, hour, minutes, guess, getVal(fv, "location")); boolean llSet = false; //Encounter enc = new Encounter(); //System.out.println("Submission detected date: "+enc.getDate()); String encID = enc.generateEncounterNumber(); if ((fv.get("catalogNumber") != null) && (!fv.get("catalogNumber").toString().trim().equals(""))) { if ((!myShepherd.isEncounter(fv.get("catalogNumber").toString()))) { encID = fv.get("catalogNumber").toString().trim(); } } enc.setEncounterNumber(encID); System.out.println("hey, i think i may have made an encounter, encID=" + encID); System.out.println("enc ?= " + enc.toString()); AssetStore astore = AssetStore.getDefault(myShepherd); ArrayList<Annotation> newAnnotations = new ArrayList<Annotation>(); //for directly uploaded files for (FileItem item : formFiles) { //convert each FileItem into a MediaAsset makeMediaAssetsFromJavaFileItemObject(item, encID, astore, enc, newAnnotations, genus, specificEpithet); } ///////////////////TODO social files also!!! System.out.println("BBB: Checking if we have social files..."); if (socialFiles.size() > 0) { int numSocialFiles = socialFiles.size(); System.out.println("BBB: Trying to persist social files: " + numSocialFiles); DiskFileItemFactory factory = new DiskFileItemFactory(); for (int q = 0; q < numSocialFiles; q++) { File item = socialFiles.get(q); makeMediaAssetsFromJavaFileObject(item, encID, astore, enc, newAnnotations, genus, specificEpithet); } } if (fv.get("mediaAssetSetId") != null) { MediaAssetSet maSet = ((MediaAssetSet) (myShepherd.getPM().getObjectById( myShepherd.getPM().newObjectIdInstance(MediaAssetSet.class, fv.get("mediaAssetSetId")), true))); if ((maSet != null) && (maSet.getMediaAssets() != null) && (maSet.getMediaAssets().size() > 0)) { int num = maSet.getMediaAssets().size(); for (MediaAsset ma : maSet.getMediaAssets()) { newAnnotations.add(new Annotation(Util.taxonomyString(genus, specificEpithet), ma)); } session.setAttribute("filesOKMessage", num + " " + ((num == 1) ? "file" : "files")); } } enc.setAnnotations(newAnnotations); enc.setGenus(genus); enc.setSpecificEpithet(specificEpithet); //User management String subN = getVal(fv, "submitterName"); String subE = getVal(fv, "submitterEmail"); String subO = getVal(fv, "submitterOrganization"); if (Util.stringExists(subO)) enc.setSubmitterOrganization(subO); String subP = getVal(fv, "submitterProject"); if (Util.stringExists(subP)) enc.setSubmitterOrganization(subP); //User user=null; List<User> submitters = new ArrayList<User>(); if ((subE != null) && (!subE.trim().equals(""))) { StringTokenizer str = new StringTokenizer(subE, ","); int numTokens = str.countTokens(); for (int y = 0; y < numTokens; y++) { String tok = str.nextToken().trim(); String hashedTok = ServletUtilities.hashString(tok); if (myShepherd.getUserByHashedEmailAddress(hashedTok) != null) { User user = myShepherd.getUserByHashedEmailAddress(hashedTok); submitters.add(user); } else { User user = new User(tok, Util.generateUUID()); user.setAffiliation(subO); user.setUserProject(subP); if ((numTokens == 1) && (subN != null)) { user.setFullName(subN); } myShepherd.getPM().makePersistent(user); myShepherd.commitDBTransaction(); myShepherd.beginDBTransaction(); submitters.add(user); } } } enc.setSubmitters(submitters); //end submitter-user processing //User management - photographer processing String photoN = getVal(fv, "photographerName"); String photoE = getVal(fv, "photographerEmail"); List<User> photographers = new ArrayList<User>(); if ((photoE != null) && (!photoE.trim().equals(""))) { StringTokenizer str = new StringTokenizer(photoE, ","); int numTokens = str.countTokens(); for (int y = 0; y < numTokens; y++) { String tok = str.nextToken().trim(); if (myShepherd.getUserByEmailAddress(tok.trim()) != null) { User user = myShepherd.getUserByEmailAddress(tok); photographers.add(user); } else { User user = new User(tok, Util.generateUUID()); myShepherd.getPM().makePersistent(user); myShepherd.commitDBTransaction(); myShepherd.beginDBTransaction(); photographers.add(user); } } } enc.setPhotographers(photographers); //end photographer-user processing //User management - informOthers processing String othersString = getVal(fv, "informothers"); List<User> informOthers = new ArrayList<User>(); if ((othersString != null) && (!othersString.trim().equals(""))) { StringTokenizer str = new StringTokenizer(othersString, ","); int numTokens = str.countTokens(); for (int y = 0; y < numTokens; y++) { String tok = str.nextToken().trim(); if (myShepherd.getUserByEmailAddress(tok.trim()) != null) { User user = myShepherd.getUserByEmailAddress(tok); informOthers.add(user); } else { User user = new User(tok, Util.generateUUID()); myShepherd.getPM().makePersistent(user); myShepherd.commitDBTransaction(); myShepherd.beginDBTransaction(); informOthers.add(user); } } } enc.setInformOthers(informOthers); //end informOthers-user processing /* String baseDir = ServletUtilities.dataDir(context, rootDir); ArrayList<SinglePhotoVideo> images = new ArrayList<SinglePhotoVideo>(); for (FileItem item : formFiles) { // this will actually write file to filesystem (or [FUTURE] wherever) // TODO: either (a) undo this if any failure of writing encounter; or (b) dont write til success of enc. try { //SinglePhotoVideo spv = new SinglePhotoVideo(encID, item, context, encDataDir); SinglePhotoVideo spv = new SinglePhotoVideo(enc, item, context, baseDir); //images.add(spv); enc.addSinglePhotoVideo(spv); } catch (Exception ex) { System.out.println("failed to save " + item.toString() + ": " + ex.toString()); } } for (File sf : socialFiles) { File encDir = new File(enc.dir(baseDir)); if (!encDir.exists()) encDir.mkdirs(); File targetFile = new File(encDir, sf.getName()); System.out.println("socialFile copy: " + sf.toString() + " ---> " + targetFile.toString()); Files.copy(sf.toPath(), targetFile.toPath(), StandardCopyOption.REPLACE_EXISTING); SinglePhotoVideo spv = new SinglePhotoVideo(encID, targetFile); enc.addSinglePhotoVideo(spv); } */ //now let's add our encounter to the database enc.setComments(getVal(fv, "comments").replaceAll("\n", "<br>")); if (fv.get("releaseDate") != null && fv.get("releaseDate").toString().length() > 0) { String dateFormatPattern = CommonConfiguration.getProperty("releaseDateFormat", context); try { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormatPattern); enc.setReleaseDate(simpleDateFormat.parse(fv.get("releaseDate").toString()).getTime()); } catch (Exception e) { enc.addComments("<p>Reported release date was problematic: " + fv.get("releaseDate") + "</p>"); } } if (fv.get("behavior") != null && fv.get("behavior").toString().length() > 0) { enc.setBehavior(fv.get("behavior").toString()); } if (fv.get("alternateID") != null && fv.get("alternateID").toString().length() > 0) { enc.setAlternateID(fv.get("alternateID").toString()); } if (fv.get("lifeStage") != null && fv.get("lifeStage").toString().length() > 0) { enc.setLifeStage(fv.get("lifeStage").toString()); } if (fv.get("flukeType") != null && fv.get("flukeType").toString().length() > 0) { System.out.println(" ENCOUNTERFORM:"); System.out.println(" ENCOUNTERFORM:"); System.out.println(" ENCOUNTERFORM:"); String kwName = fv.get("flukeType").toString(); Keyword kw = myShepherd.getOrCreateKeyword(kwName); for (Annotation ann : enc.getAnnotations()) { MediaAsset ma = ann.getMediaAsset(); if (ma != null) { ma.addKeyword(kw); System.out.println("ENCOUNTERFORM: added flukeType keyword to encounter: " + kwName); } } System.out.println(" ENCOUNTERFORM:"); System.out.println(" ENCOUNTERFORM:"); } if (fv.get("manualID") != null && fv.get("manualID").toString().length() > 0) { String indID = fv.get("manualID").toString(); MarkedIndividual ind = myShepherd.getMarkedIndividualQuiet(indID); if (ind == null) { ind = new MarkedIndividual(enc); ind.addName(request, indID); // we don't just create the individual using the encounter+indID bc this request might key the name off of the logged-in user myShepherd.storeNewMarkedIndividual(ind); ind.refreshNamesCache(); System.out.println(" ENCOUNTERFORM: created new individual " + indID); } else { ind.addEncounter(enc); ind.addName(request, indID); // adds the just-entered name to the individual System.out.println(" ENCOUNTERFORM: added enc to individual " + indID); } if (ind != null) enc.setIndividual(ind); enc.setFieldID(indID); } if (fv.get("occurrenceID") != null && fv.get("occurrenceID").toString().length() > 0) { String occID = fv.get("occurrenceID").toString(); enc.setOccurrenceID(occID); Occurrence occ = myShepherd.getOccurrence(occID); if (occ == null) { occ = new Occurrence(occID, enc); myShepherd.storeNewOccurrence(occ); System.out.println(" ENCOUNTERFORM: created new Occurrence " + occID); } else { occ.addEncounter(enc); System.out.println(" ENCOUNTERFORM: added enc to Occurrence " + occID); } } List<MetalTag> metalTags = getMetalTags(fv); for (MetalTag metalTag : metalTags) { enc.addMetalTag(metalTag); } List<Measurement> measurements = getMeasurements(fv, encID, context); for (Measurement measurement : measurements) { enc.setMeasurement(measurement, myShepherd); } enc.setAcousticTag(getAcousticTag(fv)); enc.setSatelliteTag(getSatelliteTag(fv)); enc.setSex(getVal(fv, "sex")); enc.setLivingStatus(getVal(fv, "livingStatus")); if (fv.get("scars") != null) { enc.setDistinguishingScar(fv.get("scars").toString()); } int sizePeriod = 0; if ((fv.get("measureUnits") != null) && fv.get("measureUnits").toString().equals("Feet")) { if ((fv.get("depth") != null) && !fv.get("depth").toString().equals("")) { try { double tempDouble = (new Double(fv.get("depth").toString())).doubleValue() / 3.3; String truncDepth = (new Double(tempDouble)).toString(); sizePeriod = truncDepth.indexOf("."); truncDepth = truncDepth.substring(0, sizePeriod + 2); fv.put("depth", (new Double(truncDepth)).toString()); } catch (java.lang.NumberFormatException nfe) { enc.addComments( "<p>Reported depth was problematic: " + fv.get("depth").toString() + "</p>"); fv.put("depth", ""); } catch (NullPointerException npe) { fv.put("depth", ""); } } System.out.println("depth --> " + fv.get("depth").toString()); if ((fv.get("elevation") != null) && !fv.get("elevation").toString().equals("")) { try { double tempDouble = (new Double(fv.get("elevation").toString())).doubleValue() / 3.3; String truncElev = (new Double(tempDouble)).toString(); //String truncElev = ((new Double(elevation)) / 3.3).toString(); sizePeriod = truncElev.indexOf("."); truncElev = truncElev.substring(0, sizePeriod + 2); fv.put("elevation", (new Double(truncElev)).toString()); } catch (java.lang.NumberFormatException nfe) { enc.addComments("<p>Reported elevation was problematic: " + fv.get("elevation").toString() + "</p>"); fv.put("elevation", ""); } catch (NullPointerException npe) { fv.put("elevation", ""); } } if ((fv.get("size") != null) && !fv.get("size").toString().equals("")) { try { double tempDouble = (new Double(fv.get("size").toString())).doubleValue() / 3.3; String truncSize = (new Double(tempDouble)).toString(); //String truncSize = ((new Double(size)) / 3.3).toString(); sizePeriod = truncSize.indexOf("."); truncSize = truncSize.substring(0, sizePeriod + 2); fv.put("size", (new Double(truncSize)).toString()); } catch (java.lang.NumberFormatException nfe) { enc.addComments("<p>Reported size was problematic: " + fv.get("size").toString() + "</p>"); fv.put("size", ""); } catch (NullPointerException npe) { fv.put("size", ""); } } } //measureUnits if ((fv.get("size") != null) && !fv.get("size").toString().equals("")) { try { enc.setSize(new Double(fv.get("size").toString())); } catch (java.lang.NumberFormatException nfe) { enc.addComments("<p>Reported size was problematic: " + fv.get("size").toString() + "</p>"); fv.put("size", ""); } catch (NullPointerException npe) { fv.put("size", ""); } } if ((fv.get("elevation") != null) && !fv.get("elevation").toString().equals("")) { try { enc.setMaximumElevationInMeters(new Double(fv.get("elevation").toString())); } catch (java.lang.NumberFormatException nfe) { enc.addComments( "<p>Reported elevation was problematic: " + fv.get("elevation").toString() + "</p>"); fv.put("elevatoin", ""); } catch (NullPointerException npe) { fv.put("elevation", ""); } } if ((fv.get("depth") != null) && !fv.get("depth").toString().equals("")) { try { enc.setDepth(new Double(fv.get("depth").toString())); } catch (java.lang.NumberFormatException nfe) { enc.addComments("<p>Reported depth was problematic: " + fv.get("depth").toString() + "</p>"); fv.put("depth", ""); } catch (NullPointerException npe) { fv.put("depth", ""); } } //let's handle the GPS if ((fv.get("lat") != null) && (fv.get("longitude") != null) && !fv.get("lat").toString().equals("") && !fv.get("longitude").toString().equals("")) { //enc.setGPSLatitude(lat + "° " + gpsLatitudeMinutes + "\' " + gpsLatitudeSeconds + "\" " + latDirection); try { double degrees = (new Double(fv.get("lat").toString())).doubleValue(); double position = degrees; /* if (!gpsLatitudeMinutes.equals("")) { double minutes2 = ((new Double(gpsLatitudeMinutes)).doubleValue()) / 60; position += minutes2; } if (!gpsLatitudeSeconds.equals("")) { double seconds2 = ((new Double(gpsLatitudeSeconds)).doubleValue()) / 3600; position += seconds2; } if (latDirection.toLowerCase().equals("south")) { position = position * -1; }*/ enc.setDWCDecimalLatitude(position); double degrees2 = (new Double(fv.get("longitude").toString())).doubleValue(); double position2 = degrees2; enc.setDWCDecimalLongitude(position2); llSet = true; } catch (Exception e) { System.out.println("EncounterSetGPS: problem!"); e.printStackTrace(); } } //enc.setMeasureUnits("Meters"); // enc.setSubmitterPhone(getVal(fv, "submitterPhone")); //enc.setSubmitterAddress(getVal(fv, "submitterAddress")); // enc.setPhotographerPhone(getVal(fv, "photographerPhone")); // enc.setPhotographerAddress(getVal(fv, "photographerAddress")); // enc.setPhotographerName(getVal(fv, "photographerName")); // enc.setPhotographerEmail(getVal(fv, "photographerEmail")); enc.addComments("<p>Submitted on " + (new java.util.Date()).toString() + " from address: " + ServletUtilities.getRemoteHost(request) + "</p>"); //enc.approved = false; enc.addComments(processingNotes.toString()); if (CommonConfiguration.getProperty("encounterState0", context) != null) { enc.setState(CommonConfiguration.getProperty("encounterState0", context)); } if (request.getRemoteUser() != null) { enc.setSubmitterID(request.getRemoteUser()); } else { enc.setSubmitterID("N/A"); } if (!getVal(fv, "locCode").equals("")) { enc.setLocationCode(locCode); } if (!getVal(fv, "country").equals("")) { enc.setCountry(getVal(fv, "country")); } // xxxxxxx //add research team for GAq if (!getVal(fv, "researchTeam").equals("")) { enc.setDynamicProperty("Research Team", (getVal(fv, "researchTeam"))); } if (!getVal(fv, "vessel").equals("")) { enc.setDynamicProperty("Vessel", (getVal(fv, "vessel"))); } if (!getVal(fv, "conditions").equals("")) { enc.setDynamicProperty("Conditions", (getVal(fv, "conditions"))); } if (!getVal(fv, "camera").equals("")) { enc.setDynamicProperty("Camera", (getVal(fv, "camera"))); } if (!getVal(fv, "lens").equals("")) { enc.setDynamicProperty("Lens", (getVal(fv, "lens"))); } if (!getVal(fv, "card").equals("")) { enc.setDynamicProperty("Card", (getVal(fv, "card"))); } if (!getVal(fv, "folder").equals("")) { enc.setDynamicProperty("Folder", (getVal(fv, "folder"))); } if (!getVal(fv, "numberOfBoats").equals("")) { enc.setDynamicProperty("Number of boats", (getVal(fv, "numberOfBoats"))); } if (!getVal(fv, "startTime").equals("")) { enc.setDynamicProperty("Start Time", (getVal(fv, "startTime"))); } if (!getVal(fv, "endTime").equals("")) { enc.setDynamicProperty("End Time", (getVal(fv, "endTime"))); } if (!getVal(fv, "endLongitude").equals("")) { enc.setDynamicProperty("End Longitude", (getVal(fv, "endLongitude"))); } if (!getVal(fv, "endLatitude").equals("")) { enc.setDynamicProperty("End Latitude", (getVal(fv, "endLatitude"))); } if (!getVal(fv, "startLongitude").equals("")) { enc.setDynamicProperty("Start Longitude", (getVal(fv, "startLongitude"))); } if (!getVal(fv, "startLatitude").equals("")) { enc.setDynamicProperty("Start Latitude", (getVal(fv, "startLatitude"))); } if (!getVal(fv, "beginWaypoint").equals("")) { enc.setDynamicProperty("Begin Waypoint", (getVal(fv, "beginWaypoint"))); } if (!getVal(fv, "endWaypoint").equals("")) { enc.setDynamicProperty("End Waypoint", (getVal(fv, "endWaypoint"))); } //xxxxxxxx String guid = CommonConfiguration.getGlobalUniqueIdentifierPrefix(context) + encID; //new additions for DarwinCore enc.setDWCGlobalUniqueIdentifier(guid); enc.setDWCImageURL((request.getScheme() + "://" + CommonConfiguration.getURLLocation(request) + "/encounters/encounter.jsp?number=" + encID)); //populate DarwinCore dates DateTimeFormatter fmt = ISODateTimeFormat.date(); String strOutputDateTime = fmt.print(dt); enc.setDWCDateAdded(strOutputDateTime); enc.setDWCDateAdded(new Long(dt.toDateTime().getMillis())); //System.out.println("I set the date as a LONG to: "+enc.getDWCDateAddedLong()); enc.setDWCDateLastModified(strOutputDateTime); //this will try to set from MediaAssetMetadata -- ymmv if (!llSet) enc.setLatLonFromAssets(); if (enc.getYear() < 1) enc.setDateFromAssets(); String newnum = ""; if (!spamBot) { newnum = myShepherd.storeNewEncounter(enc, encID); enc.refreshAssetFormats(myShepherd); //*after* persisting this madness, then lets kick MediaAssets to IA for whatever fate awaits them // note: we dont send Annotations here, as they are always(forever?) trivial annotations, so pretty disposable // might want to set detection status here (on the main thread) for (MediaAsset ma : enc.getMedia()) { ma.setDetectionStatus(IBEISIA.STATUS_INITIATED); } Task parentTask = null; //this is *not* persisted, but only used so intakeMediaAssets will inherit its params if (locCode != null) { parentTask = new Task(); JSONObject tp = new JSONObject(); JSONObject mf = new JSONObject(); mf.put("locationId", locCode); tp.put("matchingSetFilter", mf); parentTask.setParameters(tp); } Task task = org.ecocean.ia.IA.intakeMediaAssets(myShepherd, enc.getMedia(), parentTask); //TODO are they *really* persisted for another thread (queue) myShepherd.storeNewTask(task); Logger log = LoggerFactory.getLogger(EncounterForm.class); log.info("New encounter submission: <a href=\"" + request.getScheme() + "://" + CommonConfiguration.getURLLocation(request) + "/encounters/encounter.jsp?number=" + encID + "\">" + encID + "</a>"); System.out.println("ENCOUNTER SAVED???? newnum=" + newnum + "; IA => " + task); org.ecocean.ShepherdPMF.getPMF(context).getDataStoreCache().evictAll(); } if (newnum.equals("fail")) { request.setAttribute("number", "fail"); return; } //return a forward to display.jsp System.out.println("Ending data submission."); if (!spamBot) { //send submitter on to confirmSubmit.jsp //response.sendRedirect(request.getScheme()+"://" + CommonConfiguration.getURLLocation(request) + "/confirmSubmit.jsp?number=" + encID); WebUtils.redirectToSavedRequest(request, response, ("/confirmSubmit.jsp?number=" + encID)); //start email appropriate parties if (CommonConfiguration.sendEmailNotifications(context)) { myShepherd.beginDBTransaction(); try { // Retrieve background service for processing emails ThreadPoolExecutor es = MailThreadExecutorService.getExecutorService(); Properties submitProps = ShepherdProperties.getProperties("submit.properties", ServletUtilities.getLanguageCode(request), context); // Email new submission address(es) defined in commonConfiguration.properties Map<String, String> tagMap = NotificationMailer.createBasicTagMap(request, enc); List<String> mailTo = NotificationMailer .splitEmails(CommonConfiguration.getNewSubmissionEmail(context)); String mailSubj = submitProps.getProperty("newEncounter") + enc.getCatalogNumber(); for (String emailTo : mailTo) { NotificationMailer mailer = new NotificationMailer(context, ServletUtilities.getLanguageCode(request), emailTo, "newSubmission-summary", tagMap); mailer.setUrlScheme(request.getScheme()); es.execute(mailer); } // Email those assigned this location code if (enc.getLocationID() != null) { String informMe = null; try { informMe = myShepherd.getAllUserEmailAddressesForLocationID(enc.getLocationID(), context); } catch (Exception ef) { ef.printStackTrace(); } if (informMe != null) { List<String> cOther = NotificationMailer.splitEmails(informMe); for (String emailTo : cOther) { NotificationMailer mailer = new NotificationMailer(context, null, emailTo, "newSubmission-summary", tagMap); mailer.setUrlScheme(request.getScheme()); es.execute(mailer); } } } // Add encounter dont-track tag for remaining notifications (still needs email-hash assigned). tagMap.put(NotificationMailer.EMAIL_NOTRACK, "number=" + enc.getCatalogNumber()); // Email submitter and photographer if ((enc.getPhotographerEmails() != null) && (enc.getPhotographerEmails().size() > 0)) { List<String> cOther = enc.getPhotographerEmails(); for (String emailTo : cOther) { String msg = CommonConfiguration.appendEmailRemoveHashString(request, "", emailTo, context); tagMap.put(NotificationMailer.EMAIL_HASH_TAG, Encounter.getHashOfEmailString(emailTo)); NotificationMailer mailer = new NotificationMailer(context, null, emailTo, "newSubmission", tagMap); mailer.setUrlScheme(request.getScheme()); es.execute(mailer); } } if ((enc.getSubmitterEmails() != null) && (enc.getSubmitterEmails().size() > 0)) { List<String> cOther = enc.getSubmitterEmails(); for (String emailTo : cOther) { String msg = CommonConfiguration.appendEmailRemoveHashString(request, "", emailTo, context); tagMap.put(NotificationMailer.EMAIL_HASH_TAG, Encounter.getHashOfEmailString(emailTo)); NotificationMailer mailer = new NotificationMailer(context, null, emailTo, "newSubmission", tagMap); mailer.setUrlScheme(request.getScheme()); es.execute(mailer); } } // Email interested others if ((enc.getInformOthersEmails() != null) && (enc.getInformOthersEmails().size() > 0)) { List<String> cOther = enc.getInformOthersEmails(); for (String emailTo : cOther) { String msg = CommonConfiguration.appendEmailRemoveHashString(request, "", emailTo, context); tagMap.put(NotificationMailer.EMAIL_HASH_TAG, Encounter.getHashOfEmailString(emailTo)); NotificationMailer mailer = new NotificationMailer(context, null, emailTo, "newSubmission", tagMap); mailer.setUrlScheme(request.getScheme()); es.execute(mailer); } } /* if ((enc.getInformOthers() != null) && (!enc.getInformOthers().trim().equals(""))) { List<String> cOther = NotificationMailer.splitEmails(enc.getInformOthers()); for (String emailTo : cOther) { String msg = CommonConfiguration.appendEmailRemoveHashString(request, "", emailTo, context); tagMap.put(NotificationMailer.EMAIL_HASH_TAG, Encounter.getHashOfEmailString(emailTo)); NotificationMailer mailer=new NotificationMailer(context, null, emailTo, "newSubmission", tagMap); mailer.setUrlScheme(request.getScheme()); es.execute(mailer); } } */ es.shutdown(); } catch (Exception e) { e.printStackTrace(); } finally { myShepherd.rollbackDBTransaction(); } } //end email appropriate parties } else { response.sendRedirect( request.getScheme() + "://" + CommonConfiguration.getURLLocation(request) + "/spambot.jsp"); } } //end "if (fileSuccess) myShepherd.closeDBTransaction(); //return null; }
From source file:org.ecocean.servlet.EncounterResetDate.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("EncounterResetDate.class"); //set up for response response.setContentType("text/html"); PrintWriter out = response.getWriter(); boolean locked = false; boolean isOwner = true; if ((request.getParameter("number") != null)) { myShepherd.beginDBTransaction(); Encounter fixMe = myShepherd.getEncounter(request.getParameter("number")); setDateLastModified(fixMe);//w w w . ja v a 2 s.co m String oldDate = ""; String newDate = ""; try { oldDate = fixMe.getDate(); if ((request.getParameter("datepicker") == null) || (request.getParameter("datepicker").trim().equals(""))) { fixMe.setYear(0); fixMe.setMonth(0); fixMe.setDay(0); fixMe.setHour(0); newDate = fixMe.getDate(); } else { /** * Old method of parsing fixMe.setDay(Integer.parseInt(request.getParameter("day"))); fixMe.setMonth(Integer.parseInt(request.getParameter("month"))); fixMe.setYear(Integer.parseInt(request.getParameter("year"))); fixMe.setHour(Integer.parseInt(request.getParameter("hour"))); fixMe.setMinutes(request.getParameter("minutes")); */ //new method using a datepicker //switch to datepicker //if(getVal(fv, "datepicker")!=null){ //System.out.println("Trying to read date: "+getVal(fv, "datepicker").replaceAll(" ", "T")); DateTimeFormatter parser1 = ISODateTimeFormat.dateOptionalTimeParser(); //LocalDateTime reportedDateTime=parser1.parseLocalDateTime(request.getParameter("datepicker").replaceAll(" ", "T")); LocalDateTime reportedDateTime = new LocalDateTime( parser1.parseMillis(request.getParameter("datepicker").replaceAll(" ", "T"))); //System.out.println("Day of month is: "+reportedDateTime.getDayOfMonth()); StringTokenizer str = new StringTokenizer( request.getParameter("datepicker").replaceAll(" ", "T"), "-"); int numTokens = str.countTokens(); if (numTokens >= 1) { try { fixMe.setYear(new Integer(reportedDateTime.getYear())); } catch (Exception e) { fixMe.setYear(-1); } } if (numTokens >= 2) { try { fixMe.setMonth(new Integer(reportedDateTime.getMonthOfYear())); } catch (Exception e) { fixMe.setMonth(-1); } } else { fixMe.setMonth(-1); } //see if we can get a day, because we do want to support only yyy-MM too if (str.countTokens() >= 3) { try { fixMe.setDay(new Integer(reportedDateTime.getDayOfMonth())); } catch (Exception e) { fixMe.setDay(0); } } else { fixMe.setDay(0); } //see if we can get a time and hour, because we do want to support only yyy-MM too StringTokenizer strTime = new StringTokenizer( request.getParameter("datepicker").replaceAll(" ", "T"), "T"); if (strTime.countTokens() > 1) { try { fixMe.setHour(new Integer(reportedDateTime.getHourOfDay())); } catch (Exception e) { fixMe.setHour(-1); } try { fixMe.setMinutes(new Integer(reportedDateTime.getMinuteOfHour()).toString()); } catch (Exception e) { } } else { fixMe.setHour(-1); } //} newDate = fixMe.getDate(); fixMe.addComments("<p><em>" + request.getRemoteUser() + " on " + (new java.util.Date()).toString() + "</em><br>Changed encounter date from " + oldDate + " to " + newDate + ".</p>"); if (fixMe.getIndividualID() != null) { String indieName = fixMe.getIndividualID(); if (myShepherd.isMarkedIndividual(indieName)) { MarkedIndividual indie = myShepherd.getMarkedIndividual(indieName); indie.refreshDependentProperties(); } } } //end else } catch (Exception le) { locked = true; le.printStackTrace(); myShepherd.rollbackDBTransaction(); } //out.println(ServletUtilities.getHeader(request)); if (!locked) { myShepherd.commitDBTransaction(); out.println("<strong>Success:</strong> I have changed the encounter date from " + oldDate + " to " + newDate + "."); //out.println("<p><a href=\"http://" + CommonConfiguration.getURLLocation(request) + "/encounters/encounter.jsp?number=" + request.getParameter("number") + "\">Return to encounter #" + request.getParameter("number") + "</a></p>\n"); String message = "The date of encounter " + request.getParameter("number") + " was changed from " + oldDate + " to " + newDate + "."; ServletUtilities.informInterestedParties(request, request.getParameter("number"), message, context); response.setStatus(HttpServletResponse.SC_OK); } else { out.println( "<strong>Failure:</strong> I have NOT changed the encounter date because another user is currently modifying this encounter. Please try this operation again in a few seconds."); //out.println("<p><a href=\"http://" + CommonConfiguration.getURLLocation(request) + "/encounters/encounter.jsp?number=" + request.getParameter("number") + "\">Return to encounter " + request.getParameter("number") + "</a></p>\n"); response.setStatus(HttpServletResponse.SC_BAD_REQUEST); } //out.println(ServletUtilities.getFooter(context)); } else { out.println(ServletUtilities.getHeader(request)); out.println("<strong>Error:</strong> I don't have enough information to complete your request."); //out.println("<p><a href=\"http://" + CommonConfiguration.getURLLocation(request) + "/encounters/encounter.jsp?number=" + request.getParameter("number") + "\">Return to encounter " + request.getParameter("number") + "</a></p>\n"); //out.println(ServletUtilities.getFooter(context)); response.setStatus(HttpServletResponse.SC_BAD_REQUEST); } out.close(); myShepherd.closeDBTransaction(); }
From source file:org.gnucash.android.ui.report.BarChartFragment.java
License:Apache License
/** * Returns a quarter of the specified date * @param date date/* w w w .j a v a 2 s . co m*/ * @return a quarter */ private int getQuarter(LocalDateTime date) { return ((date.getMonthOfYear() - 1) / 3 + 1); }
From source file:org.gnucash.android.ui.report.BaseReportFragment.java
License:Apache License
/** * Returns a quarter of the specified date * @param date date// w ww.j av a 2 s .co m * @return a quarter */ protected int getQuarter(LocalDateTime date) { return (date.getMonthOfYear() - 1) / 3 + 1; }
From source file:org.jadira.usertype.dateandtime.joda.AbstractMultiColumnDateTime.java
License:Apache License
@Override protected DateTime fromConvertedColumns(Object[] convertedColumns) { LocalDateTime datePart = (LocalDateTime) convertedColumns[0]; DateTimeZone offset = (DateTimeZone) convertedColumns[1]; final DateTime result; if (datePart == null) { result = null;//from w w w .j ava 2 s.c o m } else { result = new DateTime(datePart.getYear(), datePart.getMonthOfYear(), datePart.getDayOfMonth(), datePart.getHourOfDay(), datePart.getMinuteOfHour(), datePart.getSecondOfMinute(), datePart.getMillisOfSecond(), offset); } return result; }
From source file:org.kuali.student.r2.common.dto.TimeOfDayInfo.java
License:Educational Community License
/** * * @param date a java.util.Date to which timeOfDay is added (the hours, minutes, seconds * and milliseconds are ignored and treated as 0. Only the month, day, year * of date is relevant)/*from ww w . j a va 2 s .c o m*/ * @param timeOfDay the TimeOfDay that is added to the date parameter * @return a java.util.Date that is the sum of date and timeOfDay */ public static Date getDateWithTimeOfDay(Date date, TimeOfDay timeOfDay) { if (date == null || timeOfDay == null) { return null; } // This is JODA which is the preferred way to deal with time. // One issue: Java's Date class doesn't have a way to store the timezone associated with the date. // Instead, it saves millis since Jan 1, 1970 (GMT), and uses the local machine's timezone to // interpret it (although, it can also handle UTC as a timezone). To store the timezone, you either // need Joda's LocalDateTime or use the Calendar class. Thus, it is recommended that you either // pass in the date relative to the current timezone, or perhaps redo this class where you pass // a timezone in, and don't use a Date class, but use a Joda DateTime class. --cclin LocalDateTime time = new LocalDateTime(date); LocalDateTime result = new LocalDateTime(time.getYear(), time.getMonthOfYear(), time.getDayOfMonth(), timeOfDay.getHour() == null ? 0 : timeOfDay.getHour(), timeOfDay.getMinute() == null ? 0 : timeOfDay.getMinute(), timeOfDay.getSecond() == null ? 0 : timeOfDay.getSecond(), 0); return result.toDate(); }
From source file:org.kzac.common.dto.TimeOfDayInfo.java
License:Educational Community License
/** * //from w w w . j a v a 2 s . co m * @param date * a java.util.Date to which timeOfDay is added (the hours, * minutes, seconds and milliseconds are ignored and treated as * 0. Only the month, day, year of date is relevant) * @param timeOfDay * the TimeOfDay that is added to the date parameter * @return a java.util.Date that is the sum of date and timeOfDay */ public static Date getDateWithTimeOfDay(Date date, TimeOfDay timeOfDay) { if (date == null || timeOfDay == null) { return null; } // This is JODA which is the preferred way to deal with time. // One issue: Java's Date class doesn't have a way to store the timezone // associated with the date. // Instead, it saves millis since Jan 1, 1970 (GMT), and uses the local // machine's timezone to // interpret it (although, it can also handle UTC as a timezone). To // store the timezone, you either // need Joda's LocalDateTime or use the Calendar class. Thus, it is // recommended that you either // pass in the date relative to the current timezone, or perhaps redo // this class where you pass // a timezone in, and don't use a Date class, but use a Joda DateTime // class. --cclin LocalDateTime time = new LocalDateTime(date); LocalDateTime result = new LocalDateTime(time.getYear(), time.getMonthOfYear(), time.getDayOfMonth(), timeOfDay.getHour() == null ? 0 : timeOfDay.getHour(), timeOfDay.getMinute() == null ? 0 : timeOfDay.getMinute(), timeOfDay.getSecond() == null ? 0 : timeOfDay.getSecond(), 0); return result.toDateTime().toDate(); }
From source file:org.netxilia.api.utils.DateUtils.java
License:Open Source License
public static LocalDateTime toLocalDateTime(ReadablePartial partial, LocalDateTime fullDateTime) { if (partial instanceof LocalDateTime) { return (LocalDateTime) partial; }/* ww w .ja v a2 s. c om*/ if (partial instanceof LocalDate) { LocalDate d = (LocalDate) partial; return new LocalDateTime(d.getYear(), d.getMonthOfYear(), d.getDayOfMonth(), fullDateTime.getHourOfDay(), fullDateTime.getMinuteOfHour(), fullDateTime.getSecondOfMinute(), fullDateTime.getMillisOfSecond()); } if (partial instanceof LocalTime) { LocalTime t = (LocalTime) partial; return new LocalDateTime(fullDateTime.getYear(), fullDateTime.getMonthOfYear(), fullDateTime.getDayOfMonth(), t.getHourOfDay(), t.getMinuteOfHour(), t.getSecondOfMinute(), t.getMillisOfSecond()); } throw new IllegalArgumentException("The partial parameter has an unsupported class:" + partial.getClass()); }