View Javadoc

1   /*
2    * Copyright 2008 Members of the EGEE Collaboration.
3    * Copyright 2008 University Corporation for Advanced Internet Development, Inc.
4    *
5    * Licensed under the Apache License, Version 2.0 (the "License");
6    * you may not use this file except in compliance with the License.
7    * You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.opensaml.ws.wssecurity;
18  
19  import javax.xml.namespace.QName;
20  
21  import org.joda.time.DateTime;
22  import org.joda.time.format.DateTimeFormatter;
23  import org.opensaml.xml.AttributeExtensibleXMLObject;
24  import org.opensaml.xml.schema.XSString;
25  
26  /**
27   * Interface for elements of complex type AttributedDateTime.
28   * 
29   */
30  public interface AttributedDateTime extends XSString, IdBearing, AttributeExtensibleXMLObject, WSSecurityObject  {
31  
32      /** Local name of the XSI type. */
33      public static final String TYPE_LOCAL_NAME = "AttributedDateTime"; 
34          
35      /** QName of the XSI type. */
36      public static final QName TYPE_NAME = 
37          new QName(WSSecurityConstants.WSU_NS, TYPE_LOCAL_NAME, WSSecurityConstants.WSU_PREFIX);
38      
39      /** Default DateTime format. 
40       * 
41       * @deprecated replaced by use of a {@link DateTimeFormatter} 
42       *              configured via {@link #setDateTimeFormatter(DateTimeFormatter)}.
43       * 
44       * */
45      public static final String DEFAULT_DATETIME_FORMAT= "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
46  
47      /**
48       * Returns the DateTime content or attribute value.
49       * 
50       * @return the {@link DateTime} object.
51       */
52      public DateTime getDateTime();
53  
54      /**
55       * Sets the DateTime content or attribute value.
56       * 
57       * @param dateTime
58       *            the {@link DateTime} object to set.
59       */
60      public void setDateTime(DateTime dateTime);
61      
62      /**
63       * Get the {@link DateTimeFormatter} to be used when stringifying
64       * the {@link DateTime} value.
65       * 
66       * <p>Defaults to the formatter constructed by calling: 
67       * <code>org.joda.time.format.ISODateTimeFormat.dateTime().withChronology(org.joda.time.chrono.ISOChronology.getInstanceUTC()</code>
68       * </p>
69       * 
70       * @return the currently configured formatter
71       */
72      public DateTimeFormatter getDateTimeFormatter();
73      
74      /**
75       * Set the {@link DateTimeFormatter} to be used when stringifying
76       * the {@link DateTime} value.
77       * 
78       * <p>Defaults to the formatter constructed by calling: 
79       * <code>org.joda.time.format.ISODateTimeFormat.dateTime().withChronology(org.joda.time.chrono.ISOChronology.getInstanceUTC()</code>
80       * </p>
81       * 
82       * @param newFormatter the new formatter
83       */
84      public void setDateTimeFormatter(DateTimeFormatter newFormatter);
85  }