View Javadoc

1   /*
2    * Copyright 2010 University Corporation for Advanced Internet Development, Inc.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package edu.internet2.middleware.shibboleth.wayf.idpdisco;
18  
19  import java.util.List;
20  
21  import javax.xml.namespace.QName;
22  
23  import org.opensaml.common.SAMLObject;
24  
25  /**
26   * See IdP Discovery and Login UI Metadata Extension Profile.
27   *
28   * @author Rod Widdowson August 2010
29   * 
30   * Reflects the UINFO in the IdP Discovery and Login UI Metadata Extension Profile,
31   *
32   */
33  public interface UIInfo extends SAMLObject {
34      /** Namespace for Discovery Service metadata extensions. */
35      public static final String MDUI_NS = "urn:oasis:names:tc:SAML:metadata:ui";
36  
37      /** Default namespace prefix used by this library. */
38      public static final String  MDUI_PREFIX = "mdui";
39  
40      /** Name of the element inside the Extensions. */
41      public static final String DEFAULT_ELEMENT_LOCAL_NAME = "UIInfo";
42  
43      /** Default element name. */
44      public static final QName DEFAULT_ELEMENT_NAME = new QName(MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME,
45              MDUI_PREFIX);
46      
47      /** Language attribute name. */
48      public static final String LANG_ATTRIB_NAME = "lang";
49      
50      /** 
51       * Get the Display Names
52       * 
53       * The <DisplayName> element specifies a set of localized names fit for 
54       * display to users.  Such names are meant to allow a user to distinguish 
55       * and identify the entity acting in a particular role.
56       * @return the names
57       */
58      public List <DisplayName> getDisplayNames();
59      
60      /**
61       * Return the descriptions.
62       * 
63       * The <Description> element specifies a set of brief, localized descriptions 
64       * fit for display to users. In the case of service providers this SHOULD be a 
65       * description of the service being offered.  In the case of an identity provider 
66       * this SHOULD be a description of the community serviced.  In all cases this text 
67       * SHOULD be standalone, meaning it is not meant to be filled in to some template 
68       * text (e.g. 'This service offers $description').
69       * @return descriptions
70       */
71      public List <Description> getDescriptions();
72      
73      /** 
74       * Get the logos.
75       * 
76       * The <Logo> element specifies a set of localized logos fit for display to users.
77       *  
78       * @return a list of logos
79       */
80      public List <Logo> getLogos();
81      
82      /** 
83       * Get the URLs.
84       * 
85       * The <InformationURL> specifies URLs to localized information, about the entity 
86       * acting in a given role, meant to be viewed by users.  The contents found at 
87       * these URLs SHOULD give a more complete set of information about than what is 
88       * provided by the <Description> element 
89       * 
90       * @return the URLs
91       */
92      public List <InformationURL> getInformationURLs();
93      
94      /**
95       * Get the Privacy Statement URLs.
96       * 
97       * The <PrivacyStatementURL> specifies URLs to localized privacy statements.  
98       * Such statements are meant to provide a user with information about how 
99       * information will be used and managed by the entity
100      * 
101      * @return the URLs
102      */
103     public List <PrivacyStatementURL> getPrivacyStatementURLs(); 
104 
105 }