android-ngn-stack/src/main/java/org/doubango/ngn/datatype/affiliation/pidf/AffiliationType.java
c732d49e
 /*
175b478c
 
74ca6d11
 *  Copyright (C) 2020, University of the Basque Country (UPV/EHU)
c732d49e
 *
 * Contact for licensing options: <licensing-mcpttclient(at)mcopenplatform(dot)com>
 *
 * This file is part of MCOP MCPTT Client
 *
 * This is free software: you can redistribute it and/or modify it under the terms of
 * the GNU General Public License as published by the Free Software Foundation, either version 3
 * of the License, or (at your option) any later version.
 *
 * This is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
 
 
 package org.doubango.ngn.datatype.affiliation.pidf;
 
 import org.simpleframework.xml.Attribute;
 import org.simpleframework.xml.Namespace;
 import org.simpleframework.xml.Root;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.TimeZone;
 
 
 
 @Root(strict=false, name="affiliation")
 @Namespace(reference = "urn:3gpp:ns:mcpttPresInfo:1.0")
 public class AffiliationType {
 
 
     @Attribute(required = false,name = "group")
     protected String group;
     @Attribute(required = false ,name = "client")
     protected String client;
     @Attribute(required = false ,name = "status")
     protected StatusType status;
     @Attribute(required = false ,name = "expires")
     protected String expires;
 
     private static final SimpleDateFormat FORMAT_DATE= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
     private static final SimpleDateFormat FORMAT_DATE2= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
     private static final SimpleDateFormat FORMAT_DATE3= new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
 
     public AffiliationType() {
     }
 
     public AffiliationType(String group) {
         this.group = group;
     }
 
     public AffiliationType(String group, StatusType status, String expires) {
         this.group = group;
         this.status = status;
         this.expires = expires;
     }
 
 
     public String getGroup() {return group;}
 
 
     public void setGroup(String value) {
         this.group = value;
     }
 
 
     public String getClient() {
         return client;
     }
 
 
     public void setClient(String value) {
         this.client = value;
     }
 
 
     public StatusType getStatus() {
         return status;
     }
 
 
     public void setStatus(StatusType value) {
         this.status = value;
     }
 
 
     public String getExpires() {
         return expires;
     }
 
 
 
 
     public void setExpires(String value) {
         this.expires = value;
     }
 
 
 
 
     public void setExpiresDate(Date value) {
 
         this.expires = FORMAT_DATE.format(value);
     }
 
 
     public Date getExpiresDate(){
         return getDate(this.expires);
     }
 
     public static Date getDate(String date){
         FORMAT_DATE3.setTimeZone(TimeZone.getTimeZone("UTC"));
         FORMAT_DATE2.setTimeZone(TimeZone.getTimeZone("UTC"));
         FORMAT_DATE.setTimeZone(TimeZone.getTimeZone("UTC"));
         if(date==null || date.isEmpty())return null;
         try {
             if(date==null)return null;
             return FORMAT_DATE.parse(date.trim());
         } catch (ParseException e) {
             try {
                 Date date2=FORMAT_DATE3.parse(date.trim());
                 if(date2==null)return null;
                 return date2;
             } catch (ParseException e1) {
                 try {
                     return FORMAT_DATE2.parse(date.trim());
                 } catch (ParseException e2) {
                     System.out.println("fall");
 
                     return null;
                 }
             }
 
         }
     }
 }