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 }