aboutsummaryrefslogtreecommitdiffstats
path: root/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java')
-rw-r--r--pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java142
1 files changed, 142 insertions, 0 deletions
diff --git a/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java b/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java
new file mode 100644
index 0000000..7c12983
--- /dev/null
+++ b/pnf-sim-lightweight/src/main/java/org/onap/pnfsimulator/message/JSONObjectFactory.java
@@ -0,0 +1,142 @@
+/*
+ * ============LICENSE_START=======================================================
+ * PNF-REGISTRATION-HANDLER
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.pnfsimulator.message;
+
+import static org.onap.pnfsimulator.message.MessageConstants.COMPRESSION;
+import static org.onap.pnfsimulator.message.MessageConstants.COMPRESSION_VALUE;
+import static org.onap.pnfsimulator.message.MessageConstants.EVENT_ID;
+import static org.onap.pnfsimulator.message.MessageConstants.FILE_FORMAT_TYPE;
+import static org.onap.pnfsimulator.message.MessageConstants.FILE_FORMAT_TYPE_VALUE;
+import static org.onap.pnfsimulator.message.MessageConstants.FILE_FORMAT_VERSION;
+import static org.onap.pnfsimulator.message.MessageConstants.FILE_FORMAT_VERSION_VALUE;
+import static org.onap.pnfsimulator.message.MessageConstants.HASH_MAP;
+import static org.onap.pnfsimulator.message.MessageConstants.INTERNAL_HEADER_FIELDS;
+import static org.onap.pnfsimulator.message.MessageConstants.LAST_EPOCH_MICROSEC;
+import static org.onap.pnfsimulator.message.MessageConstants.LOCATION;
+import static org.onap.pnfsimulator.message.MessageConstants.NAME;
+import static org.onap.pnfsimulator.message.MessageConstants.NOTIFICATION_FIELDS_VERSION;
+import static org.onap.pnfsimulator.message.MessageConstants.NOTIFICATION_FIELDS_VERSION_VALUE;
+import static org.onap.pnfsimulator.message.MessageConstants.PNF_LAST_SERVICE_DATE;
+import static org.onap.pnfsimulator.message.MessageConstants.PNF_MANUFACTURE_DATE;
+import static org.onap.pnfsimulator.message.MessageConstants.PNF_REGISTRATION_FIELDS_VERSION;
+import static org.onap.pnfsimulator.message.MessageConstants.PNF_REGISTRATION_FIELDS_VERSION_VALUE;
+import static org.onap.pnfsimulator.message.MessageConstants.PRIORITY;
+import static org.onap.pnfsimulator.message.MessageConstants.PRIORITY_NORMAL;
+import static org.onap.pnfsimulator.message.MessageConstants.REPORTING_ENTITY_NAME;
+import static org.onap.pnfsimulator.message.MessageConstants.SEQUENCE;
+import static org.onap.pnfsimulator.message.MessageConstants.SEQUENCE_NUMBER;
+import static org.onap.pnfsimulator.message.MessageConstants.SOURCE_NAME;
+import static org.onap.pnfsimulator.message.MessageConstants.START_EPOCH_MICROSEC;
+import static org.onap.pnfsimulator.message.MessageConstants.TIME_ZONE_OFFSET;
+import static org.onap.pnfsimulator.message.MessageConstants.VERSION;
+import static org.onap.pnfsimulator.message.MessageConstants.VERSION_NUMBER;
+import static org.onap.pnfsimulator.message.MessageConstants.VES_EVENT_LISTENER_VERSION;
+import static org.onap.pnfsimulator.message.MessageConstants.VES_EVENT_LISTENER_VERSION_NUMBER;
+import java.util.Calendar;
+import java.io.File;
+import java.util.List;
+import java.util.TimeZone;
+import org.json.JSONArray;
+import org.json.JSONObject;
+
+final class JSONObjectFactory {
+
+ static JSONObject generateConstantCommonEventHeader() {
+ JSONObject commonEventHeader = new JSONObject();
+ long timestamp = System.currentTimeMillis();
+ String nodeName = generateDefaultName();
+ commonEventHeader.put(EVENT_ID, generateEventId());
+ commonEventHeader.put(TIME_ZONE_OFFSET, generateTimeZone(timestamp));
+ commonEventHeader.put(LAST_EPOCH_MICROSEC, timestamp);
+ commonEventHeader.put(PRIORITY, PRIORITY_NORMAL);
+ commonEventHeader.put(SEQUENCE, SEQUENCE_NUMBER);
+ commonEventHeader.put(START_EPOCH_MICROSEC, timestamp);
+ commonEventHeader.put(INTERNAL_HEADER_FIELDS, new JSONObject());
+ commonEventHeader.put(VERSION, VERSION_NUMBER);
+ commonEventHeader.put(VES_EVENT_LISTENER_VERSION, VES_EVENT_LISTENER_VERSION_NUMBER);
+ commonEventHeader.put(SOURCE_NAME, nodeName);
+ commonEventHeader.put(REPORTING_ENTITY_NAME, nodeName);
+ return commonEventHeader;
+ }
+
+ static JSONObject generatePnfRegistrationFields() {
+ JSONObject pnfRegistrationFields = new JSONObject();
+ pnfRegistrationFields.put(PNF_REGISTRATION_FIELDS_VERSION, PNF_REGISTRATION_FIELDS_VERSION_VALUE);
+ pnfRegistrationFields.put(PNF_LAST_SERVICE_DATE, String.valueOf(System.currentTimeMillis()));
+ pnfRegistrationFields.put(PNF_MANUFACTURE_DATE, String.valueOf(System.currentTimeMillis()));
+ return pnfRegistrationFields;
+ }
+
+ static JSONObject generateNotificationFields() {
+ JSONObject notificationFields = new JSONObject();
+ notificationFields.put(NOTIFICATION_FIELDS_VERSION, NOTIFICATION_FIELDS_VERSION_VALUE);
+ return notificationFields;
+ }
+
+ static JSONArray generateArrayOfNamedHashMap(List<String> fileList, String xnfUrl) {
+ JSONArray arrayOfNamedHashMap = new JSONArray();
+
+ for (String fileName : fileList) {
+ JSONObject namedHashMap = new JSONObject();
+ namedHashMap.put(NAME, fileName);
+
+ JSONObject hashMap = new JSONObject();
+ hashMap.put(FILE_FORMAT_TYPE, FILE_FORMAT_TYPE_VALUE);
+ hashMap.put(LOCATION, xnfUrl.concat(fileName));
+ hashMap.put(FILE_FORMAT_VERSION, FILE_FORMAT_VERSION_VALUE);
+ hashMap.put(COMPRESSION, COMPRESSION_VALUE);
+ namedHashMap.put(HASH_MAP, hashMap);
+
+ arrayOfNamedHashMap.put(namedHashMap);
+ }
+
+
+ return arrayOfNamedHashMap;
+ }
+
+
+ static String generateEventId() {
+ String timeAsString = String.valueOf(System.currentTimeMillis());
+ return String.format("FileReady_%s", timeAsString);
+ }
+
+ static String generateDefaultName() {
+ String defaultName = "default";
+ int year = Calendar.getInstance().get(Calendar.YEAR);
+ int month = Calendar.getInstance().get(Calendar.MONTH);
+ int day = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
+
+ return defaultName + "-" + year + month + day;
+ }
+
+ static String generateTimeZone(long timestamp) {
+ TimeZone timeZone = TimeZone.getDefault();
+ int offsetInMillis = timeZone.getOffset(timestamp);
+ String offsetHHMM = String.format("%02d:%02d", Math.abs(offsetInMillis / 3600000),
+ Math.abs((offsetInMillis / 60000) % 60));
+ return ("UTC" + (offsetInMillis >= 0 ? "+" : "-") + offsetHHMM);
+ }
+
+ private JSONObjectFactory() {
+
+ }
+
+}