001package com.pingidentity.developer.pingid; 002 003import org.json.simple.JSONObject; 004 005import java.text.ParseException; 006import java.text.SimpleDateFormat; 007import java.util.Date; 008import java.util.TimeZone; 009 010public class DeviceDetails { 011 private final String appVersion; 012 private final long availableClaimedSms; 013 private final long availableNotClaimedSms; 014 private final long countryCode; 015 private final String email; 016 private final Date enrollment; 017 private final Boolean hasWatch; 018 private final String osVersion; 019 private final String phoneNumber; 020 private final Boolean pushEnabled; 021 private final String type; 022 023 public DeviceDetails() { 024 025 appVersion = ""; 026 availableClaimedSms = 0; 027 availableNotClaimedSms = 0; 028 countryCode = 0; 029 email = ""; 030 enrollment = new Date(); 031 hasWatch = false; 032 osVersion = ""; 033 phoneNumber = ""; 034 pushEnabled = false; 035 type = ""; 036 } 037 038 public DeviceDetails(JSONObject deviceDetailsJSON) { 039 040 if (deviceDetailsJSON != null) { 041 appVersion = (deviceDetailsJSON.get("appVersion") != null ? (String) deviceDetailsJSON.get("appVersion") : ""); 042 availableClaimedSms = (deviceDetailsJSON.get("availableClaimedSms") != null ? (long) deviceDetailsJSON.get("availableClaimedSms") : 0); 043 availableNotClaimedSms = (deviceDetailsJSON.get("availableNotClaimedSms") != null ? (long) deviceDetailsJSON.get("availableNotClaimedSms") : 0); 044 countryCode = (deviceDetailsJSON.get("countryCode") != null ? Long.valueOf(deviceDetailsJSON.get("countryCode").toString()) : 0); 045 email = (String) deviceDetailsJSON.get("email"); 046 enrollment = parseDate((String) deviceDetailsJSON.get("enrollment")); 047 hasWatch = (Boolean) deviceDetailsJSON.get("hasWatch"); 048 osVersion = (String) deviceDetailsJSON.get("osVersion"); 049 phoneNumber = (String) deviceDetailsJSON.get("phoneNumber"); 050 pushEnabled = (Boolean) deviceDetailsJSON.get("pushEnabled"); 051 type = (String) deviceDetailsJSON.get("type"); 052 } else { 053 appVersion = ""; 054 availableClaimedSms = 0; 055 availableNotClaimedSms = 0; 056 countryCode = 0; 057 email = ""; 058 enrollment = new Date(); 059 hasWatch = false; 060 osVersion = ""; 061 phoneNumber = ""; 062 pushEnabled = false; 063 type = ""; 064 } 065 } 066 067 private Date parseDate(String dateToParse) { 068 SimpleDateFormat PingIDDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); 069 PingIDDateFormat.setTimeZone(TimeZone.getTimeZone("America/Denver")); 070 071 if (dateToParse != null) { 072 try { 073 return PingIDDateFormat.parse(dateToParse); 074 } catch (ParseException e) { 075 e.printStackTrace(); 076 } 077 } 078 return null; 079 } 080}