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.ArrayList;
    20  import java.util.List;
    21
    22  import org.opensaml.common.impl.AbstractSAMLObject;
    23  import org.opensaml.xml.XMLObject;
    24  import org.opensaml.xml.util.XMLObjectChildrenList;
    25
    26  /**
    27   *  Concrete implementation of {@link edu.internet2.middleware.shibboleth.wayf.idpdisco.DiscHints}.
    28   * @author Rod Widdowson
    29   *
    30   */
    31  public class DiscoHintsImpl extends AbstractSAMLObject implements DiscoHints {
    32
    33      /** DNS Domain hints. */
    34      private final XMLObjectChildrenList<DomainHint> domainHints;
    35
    36      /** IP Address hints. */
    37      private final XMLObjectChildrenList<IPHint> iPHints;
    38
    39      /** GeoLocation hints. */
    40      private final XMLObjectChildrenList<GeolocationHint> geoHints;
    41
    42      /**
    43       * Constructor.
    44       * @param namespaceURI namespaceURI
    45       * @param elementLocalName elementLocalName
    46       * @param namespacePrefix namespacePrefix
    47       */
    48
    49      protected DiscoHintsImpl(String namespaceURI, String elementLocalName, String namespacePrefix) {
    50          super(namespaceURI, elementLocalName, namespacePrefix);
    51          domainHints = new XMLObjectChildrenList<DomainHint>(this);
    52          iPHints = new XMLObjectChildrenList<IPHint>(this);
    53          geoHints = new XMLObjectChildrenList<GeolocationHint>(this);
    54      }
    55
    56      /** {@inheritDoc} */
    57      public List<DomainHint> getDomainHints() {
    58          return domainHints;
    59      }
    60
    61      /** {@inheritDoc} */
    62      public List<GeolocationHint> getGeolocationHints() {
    63          return geoHints;
    64      }
    65
    66      /** {@inheritDoc} */
    67      public List<IPHint> getIPHints() {
    68          return iPHints;
    69      }
    70
    71      /** {@inheritDoc} */
    72      public List<XMLObject> getOrderedChildren() {
    73          ArrayList<XMLObject> children = new ArrayList<XMLObject>();
    74
    75          children.addAll(domainHints);
    76          children.addAll(iPHints);
    77          children.addAll(geoHints);
    78          return children;
    79      }
    80  }