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 }