List of usage examples for org.joda.time LocalDateTime toDateTime
public DateTime toDateTime()
From source file:org.apache.fineract.organisation.teller.data.CashierTransactionDataValidator.java
License:Apache License
public void validateOnLoanDisbursal(AppUser user, String currencyCode, BigDecimal transactionAmount) { LocalDateTime localDateTime = DateUtils.getLocalDateTimeOfTenant(); if (user.getStaff() != null) { String sql = "select c.id from m_cashiers c where c.staff_id = " + user.getStaff().getId() + " AND " + " (case when c.full_day then '" + localDateTime.toLocalDate() + "' BETWEEN c.start_date AND c.end_date " + " else ('" + localDateTime.toLocalDate() + "' BETWEEN c.start_date AND c.end_date and " + " TIME('" + localDateTime.toDateTime() + "') BETWEEN TIME(c.start_time) AND TIME(c.end_time) ) end)"; try {/*from ww w . j av a 2s . com*/ Long cashierId = this.jdbcTemplate.queryForObject(sql, Long.class); validateSettleCashAndCashOutTransactions(cashierId, currencyCode, transactionAmount); } catch (EmptyResultDataAccessException e) { } } }
From source file:org.apache.isis.objectstore.jdo.datanucleus.Utils.java
License:Apache License
public static long toMillis(int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minuteOfHour, int secondOfMinute) { LocalDateTime d = new LocalDateTime(year, monthOfYear, dayOfMonth, hourOfDay, minuteOfHour, secondOfMinute); return d.toDateTime().getMillis(); }
From source file:org.apache.sqoop.connector.jdbc.oracle.OracleJdbcLoader.java
License:Apache License
private void setBindValueAtName(PreparedStatement statement, String bindValueName, Object bindValue, OracleTableColumn column) throws SQLException { if (column.getOracleType() == OracleQueries.getOracleType("NUMBER")) { OracleQueries.setBigDecimalAtName(statement, bindValueName, (BigDecimal) bindValue); } else if (column.getOracleType() == OracleQueries.getOracleType("VARCHAR")) { OracleQueries.setStringAtName(statement, bindValueName, (String) bindValue); } else if (column.getOracleType() == OracleQueries.getOracleType("TIMESTAMP") || column.getOracleType() == OracleQueries.getOracleType("TIMESTAMPTZ") || column.getOracleType() == OracleQueries.getOracleType("TIMESTAMPLTZ")) { Object objValue = bindValue; if (objValue instanceof LocalDateTime) { //TODO: Improve date handling LocalDateTime value = (LocalDateTime) objValue; Timestamp timestampValue = new Timestamp(value.toDateTime().getMillis()); OracleQueries.setTimestampAtName(statement, bindValueName, timestampValue); } else {//w w w. j a v a2 s .co m String value = (String) objValue; if (value == null || value.equalsIgnoreCase("null")) { value = ""; } OracleQueries.setStringAtName(statement, bindValueName, value); } } else if (column.getOracleType() == OracleQueries.getOracleType("BINARY_DOUBLE")) { Double value = (Double) bindValue; if (value != null) { OracleQueries.setBinaryDoubleAtName(statement, bindValueName, value); } else { OracleQueries.setObjectAtName(statement, bindValueName, null); } } else if (column.getOracleType() == OracleQueries.getOracleType("BINARY_FLOAT")) { Float value = (Float) bindValue; if (value != null) { OracleQueries.setBinaryFloatAtName(statement, bindValueName, value); } else { OracleQueries.setObjectAtName(statement, bindValueName, null); } } else if (column.getOracleType() == OracleQueries.getOracleType("STRUCT")) { // <- E.g. URITYPE if (column.getDataType().equals(OracleJdbcConnectorConstants.Oracle.URITYPE)) { String value = (String) bindValue; OracleQueries.setStringAtName(statement, bindValueName, value); } else { String msg = String.format( "%s needs to be updated to cope with the data-type: %s " + "where the Oracle data_type is \"%s\".", OracleUtilities.getCurrentMethodName(), column.getDataType(), column.getOracleType()); LOG.error(msg); throw new UnsupportedOperationException(msg); } } else { // LOB data-types are currently not supported during // a Sqoop Export. // JIRA: SQOOP-117 // OraOopConstants.SUPPORTED_EXPORT_ORACLE_DATA_TYPES_CLAUSE // will already have excluded all LOB columns. // case oracle.jdbc.OracleTypes.CLOB: // { // oracle.sql.CLOB clob = new // oracle.sql.CLOB(connection); // Object value = fieldMap.get(colName); // //clob.set // statement.setCLOBAtName(bindValueName, clob); // break; // } String msg = String.format("%s may need to be updated to cope with the data-type: %s", OracleUtilities.getCurrentMethodName(), column.getOracleType()); LOG.debug(msg); OracleQueries.setObjectAtName(statement, bindValueName, bindValue); } }
From source file:org.directwebremoting.convert.LocalDateTimeConverter.java
License:Apache License
public OutboundVariable convertOutbound(Object data, OutboundContext outboundContext) throws ConversionException { long milliSeconds; if (data instanceof DateTime) { DateTime dateTime = (DateTime) data; milliSeconds = dateTime.getMillis(); } else if (data instanceof LocalDateTime) { LocalDateTime date = (LocalDateTime) data; milliSeconds = date.toDateTime().toDate().getTime(); } else {/*ww w . java 2 s. c o m*/ throw new ConversionException(data.getClass()); } return new NonNestedOutboundVariable("new Date(" + milliSeconds + ")"); }
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 w w w .j a va 2 s .c om 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.UserResetPasswordSendEmail.java
License:Open Source License
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String context = "context0"; //context=ServletUtilities.getContext(request); //set up the user directory //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();/*ww w. j a v a 2s .c o m*/ } File usersDir = new File(shepherdDataDir.getAbsolutePath() + "/users"); if (!usersDir.exists()) { usersDir.mkdirs(); } //set up for response response.setContentType("text/html"); PrintWriter out = response.getWriter(); boolean createThisUser = false; String addedRoles = ""; boolean isEdit = false; if (request.getParameter("isEdit") != null) { isEdit = true; //System.out.println("isEdit is TRUE in UserCreate!"); } //create a new Role from an encounter if ((request.getParameter("username") != null) && (!request.getParameter("username").trim().equals(""))) { //output success statement out.println(ServletUtilities.getHeader(request)); String username = request.getParameter("username").trim(); Shepherd myShepherd = new Shepherd(context); myShepherd.setAction("UserResetPasswordSendEmail.class"); myShepherd.beginDBTransaction(); User myUser = null; //let's see if we have a user if (myShepherd.getUser(username) != null) { myUser = myShepherd.getUser(username); } else if (myShepherd.getUserByEmailAddress(username) != null) { myUser = myShepherd.getUserByEmailAddress(username); } if ((myUser != null) && (myUser.getEmailAddress() != null)) { //time LocalDateTime dt = new LocalDateTime(); long time = dt.toDateTime().getMillis(); //OTP string String otpString = myUser.getPassword() + time + myUser.getSalt(); otpString = ServletUtilities.hashAndSaltPassword(otpString, myUser.getSalt()); // Build the link and send email. final String npLink = String.format( request.getScheme() + "://%s/setNewPassword.jsp?username=%s&time=%s&OTP=%s", CommonConfiguration.getURLLocation(request), myUser.getUsername(), time, otpString); ThreadPoolExecutor es = MailThreadExecutorService.getExecutorService(); Map<String, String> tagMap = new HashMap<String, String>() { { put("@RESET_LINK@", npLink); } }; String mailTo = myUser.getEmailAddress(); NotificationMailer mailer = new NotificationMailer(context, null, mailTo, "passwordReset", tagMap); es.execute(mailer); es.shutdown(); out.println( "If a user with that username or email address was found, we just sent them an email. Please check your Inbox and follow the link in the email to reset your password. If you don't see an email, don't forget to check your spam folder. Thank you!"); } else { out.println( "No email address was registered with that username. Please contact a system administrator to reset your password."); } myShepherd.rollbackDBTransaction(); myShepherd.closeDBTransaction(); myShepherd = null; out.println("<p><a href=\"" + request.getScheme() + "://" + CommonConfiguration.getURLLocation(request) + "\">Return to homepage" + "</a></p>\n"); out.println(ServletUtilities.getFooter(context)); } else { //output failure statement out.println(ServletUtilities.getHeader(request)); out.println( "<strong>Failure:</strong> Username was NOT successfully reset. I did not have all of the username information I needed."); out.println("<p><a href=\"" + request.getScheme() + "://" + CommonConfiguration.getURLLocation(request) + "/appadmin/users.jsp?context=context0" + "\">Return to login" + "</a></p>\n"); out.println(ServletUtilities.getFooter(context)); } out.close(); }
From source file:org.gnucash.android.model.Recurrence.java
License:Apache License
/** * Computes the number of occurrences of this recurrences between start and end date * <p>If there is no end date, it returns -1</p> * @return Number of occurrences, or -1 if there is no end date *//* w ww. ja va2 s . com*/ public int getCount() { if (mPeriodEnd == null) return -1; int multiple = mPeriodType.getMultiplier(); ReadablePeriod jodaPeriod; switch (mPeriodType) { case DAY: jodaPeriod = Days.days(multiple); break; case WEEK: jodaPeriod = Weeks.weeks(multiple); break; case MONTH: jodaPeriod = Months.months(multiple); break; case YEAR: jodaPeriod = Years.years(multiple); break; default: jodaPeriod = Months.months(multiple); } int count = 0; LocalDateTime startTime = new LocalDateTime(mPeriodStart.getTime()); while (startTime.toDateTime().getMillis() < mPeriodEnd.getTime()) { ++count; startTime = startTime.plus(jodaPeriod); } return count; /* //this solution does not use looping, but is not very accurate int multiplier = mPeriodType.getMultiplier(); LocalDateTime startDate = new LocalDateTime(mPeriodStart.getTime()); LocalDateTime endDate = new LocalDateTime(mPeriodEnd.getTime()); switch (mPeriodType){ case DAY: return Days.daysBetween(startDate, endDate).dividedBy(multiplier).getDays(); case WEEK: return Weeks.weeksBetween(startDate, endDate).dividedBy(multiplier).getWeeks(); case MONTH: return Months.monthsBetween(startDate, endDate).dividedBy(multiplier).getMonths(); case YEAR: return Years.yearsBetween(startDate, endDate).dividedBy(multiplier).getYears(); default: return -1; } */ }
From source file:org.gnucash.android.model.Recurrence.java
License:Apache License
/** * Sets the end time of this recurrence by specifying the number of occurences * @param numberOfOccurences Number of occurences from the start time *//*ww w . j av a2 s . c o m*/ public void setPeriodEnd(int numberOfOccurences) { LocalDateTime localDate = new LocalDateTime(mPeriodStart.getTime()); LocalDateTime endDate; int occurrenceDuration = numberOfOccurences * mPeriodType.getMultiplier(); switch (mPeriodType) { case DAY: endDate = localDate.plusDays(occurrenceDuration); break; case WEEK: endDate = localDate.plusWeeks(occurrenceDuration); break; default: case MONTH: endDate = localDate.plusMonths(occurrenceDuration); break; case YEAR: endDate = localDate.plusYears(occurrenceDuration); break; } mPeriodEnd = new Timestamp(endDate.toDateTime().getMillis()); }
From source file:org.informea.odata.data.db.DatabaseDataProvider.java
License:Open Source License
/** * Transform query from OData query into SQL Hibernate query * @param updatedColumn Column to filter by * @param q OData query/* ww w. j a va 2s. com*/ * @return Hibernate Criteria object, null if no filter have to be set */ protected Criterion filterLatest(String updatedColumn, QueryInfo q) { if (q != null && q.filter instanceof GtExpression) { GtExpression filter = (GtExpression) q.filter; log.info(filter.toString()); if (filter.getLHS() instanceof EntitySimpleProperty) { EntitySimpleProperty l = (EntitySimpleProperty) filter.getLHS(); if ("published".equals(l.getPropertyName())) { if (filter.getRHS() instanceof DateTimeLiteral) { LocalDateTime dt = ((DateTimeLiteral) filter.getRHS()).getValue(); Date latest = dt.toDateTime().toDate(); log.info(String.format("Retrieving latest decisions after %s", latest.toString())); return Restrictions.ge("updated", latest); } } } } return null; }
From source file:org.kuali.kpme.tklm.common.CalendarValidationUtil.java
License:Educational Community License
public static List<String> validateInterval(CalendarEntry payCalEntry, Long startTime, Long endTime) { List<String> errors = new ArrayList<String>(); LocalDateTime pcb_ldt = payCalEntry.getBeginPeriodLocalDateTime(); LocalDateTime pce_ldt = payCalEntry.getEndPeriodLocalDateTime(); /*// w ww .j av a 2s .co m * LeaveCalendarValidationUtil uses DateTimeZone... TimeDetailValidation does not... * Does one require a non converted DateTime and the other not? */ //DateTimeZone utz = HrServiceLocator.getTimezoneService().getUserTimezoneWithFallback(); //DateTime p_cal_b_dt = pcb_ldt.toDateTime(utz); //DateTime p_cal_e_dt = pce_ldt.toDateTime(utz); DateTime p_cal_b_dt = pcb_ldt.toDateTime(); DateTime p_cal_e_dt = pce_ldt.toDateTime(); Interval payInterval = new Interval(p_cal_b_dt, p_cal_e_dt); if (errors.size() == 0 && !payInterval.contains(startTime)) { errors.add("The start date/time is outside the calendar period"); } if (errors.size() == 0 && !payInterval.contains(endTime) && p_cal_e_dt.getMillis() != endTime) { errors.add("The end date/time is outside the calendar period"); } return errors; }