1 /* 2 * Copyright [2005] [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 org.opensaml.saml2.metadata; 18 19 import java.util.List; 20 21 import javax.xml.namespace.QName; 22 23 import org.opensaml.common.SignableSAMLObject; 24 import org.opensaml.common.xml.SAMLConstants; 25 import org.opensaml.saml2.common.CacheableSAMLObject; 26 import org.opensaml.saml2.common.Extensions; 27 import org.opensaml.saml2.common.TimeBoundSAMLObject; 28 29 /** 30 * SAML 2.0 Metadata EntitiesDescriptor. 31 * 32 * @author Chad La Joie 33 */ 34 public interface EntitiesDescriptor extends SignableSAMLObject, TimeBoundSAMLObject, CacheableSAMLObject { 35 36 /** Element name, no namespace */ 37 public final static String DEFAULT_ELEMENT_LOCAL_NAME = "EntitiesDescriptor"; 38 39 /** Default element name */ 40 public final static QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MD_PREFIX); 41 42 /** Local name of the XSI type */ 43 public final static String TYPE_LOCAL_NAME = "EntitiesDescriptorType"; 44 45 /** QName of the XSI type */ 46 public final static QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MD_PREFIX); 47 48 /** Element QName, no prefix */ 49 public final static QName ELEMENT_QNAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME); 50 51 /** "ID" attribute name */ 52 public final static String ID_ATTRIB_NAME = "ID"; 53 54 /** "Name" attribute name */ 55 public final static String NAME_ATTRIB_NAME = "Name"; 56 57 /** 58 * Gets the name of this entity group. 59 * 60 * @return the name of this entity group 61 */ 62 public String getName(); 63 64 /** 65 * Sets the name of this entity group. 66 * 67 * @param name the name of this entity group 68 */ 69 public void setName(String name); 70 71 /** 72 * Gets the ID of this entity group. 73 * 74 * @return the id of this entity group 75 */ 76 public String getID(); 77 78 /** 79 * Sets the ID of this entity group. 80 * 81 * @param newID the ID of this entity group 82 */ 83 public void setID(String newID); 84 85 /** 86 * Gets the Extensions child of this object. 87 * 88 * @return the Extensions child of this object 89 */ 90 public Extensions getExtensions(); 91 92 /** 93 * Sets the Extensions child of this object. 94 * 95 * @param extensions the Extensions child of this object 96 * 97 * @throws IllegalArgumentException thrown if the given extensions Object is already a child of another SAMLObject 98 */ 99 public void setExtensions(Extensions extensions) throws IllegalArgumentException; 100 101 /** 102 * Gets a list of child {@link EntitiesDescriptor}s. 103 * 104 * @return list of descriptors 105 */ 106 public List<EntitiesDescriptor> getEntitiesDescriptors(); 107 108 /** 109 * Gets a list of child {@link EntityDescriptor}s. 110 * 111 * @return list of child descriptors 112 */ 113 public List<EntityDescriptor> getEntityDescriptors(); 114 }