DateTrigger.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. * Apache 2.0 License
  3. *
  4. * Copyright (c) Sebastian Katzer 2017
  5. *
  6. * This file contains Original Code and/or Modifications of Original Code
  7. * as defined in and that are subject to the Apache License
  8. * Version 2.0 (the 'License'). You may not use this file except in
  9. * compliance with the License. Please obtain a copy of the License at
  10. * http://opensource.org/licenses/Apache-2.0/ and read it before using this
  11. * file.
  12. *
  13. * The Original Code and all software distributed under the License are
  14. * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  15. * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  16. * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
  17. * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  18. * Please see the License for the specific language governing rights and
  19. * limitations under the License.
  20. */
  21. package de.appplant.cordova.plugin.notification.trigger;
  22. import java.util.Calendar;
  23. import java.util.Date;
  24. abstract public class DateTrigger {
  25. // Default unit is SECOND
  26. public enum Unit { SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR }
  27. // Internal counter
  28. private int occurrence = 1;
  29. /**
  30. * Gets the next trigger date.
  31. *
  32. * @param base The date from where to calculate the trigger date.
  33. *
  34. * @return null if there's none next trigger date.
  35. */
  36. abstract public Date getNextTriggerDate(Date base);
  37. /**
  38. * The value of the occurrence.
  39. */
  40. public int getOccurrence() {
  41. return occurrence;
  42. }
  43. /**
  44. * Increase the occurrence by 1.
  45. */
  46. void incOccurrence() {
  47. occurrence += 1;
  48. }
  49. /**
  50. * Gets a calendar instance pointing to the specified date.
  51. *
  52. * @param date The date to point.
  53. */
  54. Calendar getCal (Date date) {
  55. Calendar cal = Calendar.getInstance();
  56. cal.setTime(date);
  57. return cal;
  58. }
  59. }