summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java')
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java196
1 files changed, 196 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java
new file mode 100644
index 00000000..30c76cd8
--- /dev/null
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/openecomp/portalsdk/analytics/model/runtime/ReportParamDateValueParser.java
@@ -0,0 +1,196 @@
+/*-
+ * ================================================================================
+ * eCOMP Portal SDK
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ================================================================================
+ */
+package org.openecomp.portalsdk.analytics.model.runtime;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import javax.servlet.http.*;
+
+import org.openecomp.portalsdk.analytics.model.base.*;
+import org.openecomp.portalsdk.analytics.system.Globals;
+import org.openecomp.portalsdk.analytics.util.*;
+import org.openecomp.portalsdk.analytics.xmlobj.*;
+
+public class ReportParamDateValueParser {
+
+ /*public static final SimpleDateFormat[] dateFormats;
+
+ static {
+ dateFormats = new SimpleDateFormat[5];
+ (dateFormats[0] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MONTHYYYY))
+ .setLenient(true);
+ (dateFormats[1] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MONTHDDYYYY))
+ .setLenient(true);
+ (dateFormats[2] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMDDYYYY))
+ .setLenient(true);
+ (dateFormats[3] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMYYYY))
+ .setLenient(true);
+ (dateFormats[4] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_DDMONYYYY))
+ .setLenient(true);
+ }*/
+
+ public static boolean isDateHrParam(String param) {
+ SimpleDateFormat[] dateFormats = new SimpleDateFormat[2];
+ (dateFormats[0] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMDDYYYY_HR))
+ .setLenient(true);
+ (dateFormats[1] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_DDMONYYYY_HR))
+ .setLenient(true);
+ for (int i = 0; i < dateFormats.length; i++) {
+ try {
+ if (dateFormats[i].parse(param) != null) {
+ return true;
+ }
+ } catch (ParseException pe) {
+ // do nothing, continue to check param against other dates
+ }
+ catch (NumberFormatException pe) {
+ // do nothing, continue to check param against other dates
+ }
+ }
+ return false;
+ }
+ public static boolean isDateParam(String param) {
+ SimpleDateFormat[] dateFormats = new SimpleDateFormat[5];
+ (dateFormats[0] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MONTHYYYY))
+ .setLenient(true);
+ (dateFormats[1] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MONTHDDYYYY))
+ .setLenient(true);
+ (dateFormats[2] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMDDYYYY))
+ .setLenient(true);
+ (dateFormats[3] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMYYYY))
+ .setLenient(true);
+ (dateFormats[4] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_DDMONYYYY))
+ .setLenient(true);
+
+ for (int i = 0; i < dateFormats.length; i++) {
+ try {
+ if (dateFormats[i].parse(param) != null) {
+ return true;
+ }
+ } catch (ParseException pe) {
+ // do nothing, continue to check param against other dates
+ }
+ catch (NumberFormatException pe) {
+ // do nothing, continue to check param against other dates
+ }
+ }
+ return false;
+ }
+
+ public static String formatDateParamValue(String param) {
+ return ReportParamDateValueParser.formatDateParamValue(param, null);
+ }
+
+ public static String formatDateHrParamValue(String param) {
+ return ReportParamDateValueParser.formatDateHrParamValue(param, null);
+ }
+
+ public static String formatDateHrParamValue(String param, String dateHrFormatPattern) {
+ String formattedDate = null;
+ Date parsedDate = null;
+
+ dateHrFormatPattern = (dateHrFormatPattern != null) ? dateHrFormatPattern
+ : "HH";
+
+ SimpleDateFormat[] dateFormats = new SimpleDateFormat[2];
+ (dateFormats[0] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMDDYYYY_HR))
+ .setLenient(true);
+ (dateFormats[1] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_DDMONYYYY_HR))
+ .setLenient(true);
+
+ for (int i = 0; i < dateFormats.length; i++) {
+ try {
+ if (dateFormats[i].parse(param) != null) {
+ SimpleDateFormat newDateFormat = new SimpleDateFormat(dateHrFormatPattern);
+ parsedDate = dateFormats[i].parse(param);
+ formattedDate = newDateFormat.format(parsedDate);
+
+
+ return formattedDate;
+ }
+ } catch (ParseException pe) {
+ // do nothing, continue to check param against other dates and
+ // format accordingly
+ }
+ catch (NumberFormatException pe) {
+ // do nothing, continue to check param against other dates
+ }
+ }
+ return param;
+ }
+
+
+ public static String formatDateParamValue(String param, String dateFormatPattern) {
+ String formattedDate = null;
+ Date parsedDate = null;
+
+ dateFormatPattern = (dateFormatPattern != null) ? dateFormatPattern
+ : AppConstants.JAVA_DATE_FORMAT_MMDDYYYY;
+
+ SimpleDateFormat[] dateFormats = new SimpleDateFormat[5];
+ (dateFormats[0] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MONTHYYYY))
+ .setLenient(true);
+ (dateFormats[1] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MONTHDDYYYY))
+ .setLenient(true);
+ (dateFormats[2] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMDDYYYY))
+ .setLenient(true);
+ (dateFormats[3] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_MMYYYY))
+ .setLenient(true);
+ (dateFormats[4] = new SimpleDateFormat(AppConstants.JAVA_DATE_FORMAT_DDMONYYYY))
+ .setLenient(true);
+
+ for (int i = 0; i < dateFormats.length; i++) {
+ try {
+ if (dateFormats[i].parse(param) != null) {
+ SimpleDateFormat newDateFormat = new SimpleDateFormat(dateFormatPattern);
+ parsedDate = dateFormats[i].parse(param);
+ formattedDate = newDateFormat.format(parsedDate);
+
+ if (Globals.getMonthFormatUseLastDay()
+ && (dateFormats[i].toPattern().equals(
+ AppConstants.JAVA_DATE_FORMAT_MMYYYY) || dateFormats[i]
+ .toPattern().equals(
+ AppConstants.JAVA_DATE_FORMAT_MONTHYYYY))) {
+
+ GregorianCalendar gc = new GregorianCalendar();
+ gc.setTime(parsedDate);
+ int day = gc.getActualMaximum(GregorianCalendar.DAY_OF_MONTH);
+ formattedDate = Utils.replaceInString(formattedDate, "/01/", "/"
+ + String.valueOf(day) + "/");
+
+ }
+
+ return formattedDate;
+ }
+ } catch (ParseException pe) {
+ // do nothing, continue to check param against other dates and
+ // format accordingly
+ }
+ catch (NumberFormatException pe) {
+ // do nothing, continue to check param against other dates
+ }
+ }
+ return param;
+ }
+
+} // ReportParamValues
+