View Javadoc

1   /*
2    * Licensed to the University Corporation for Advanced Internet Development, 
3    * Inc. (UCAID) under one or more contributor license agreements.  See the 
4    * NOTICE file distributed with this work for additional information regarding
5    * copyright ownership. The UCAID licenses this file to You under the Apache 
6    * License, Version 2.0 (the "License"); you may not use this file except in 
7    * compliance with the License.  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  
18  package edu.internet2.middleware.shibboleth.common.xmlobject.impl;
19  
20  import org.opensaml.xml.XMLObject;
21  import org.opensaml.xml.io.AbstractXMLObjectUnmarshaller;
22  import org.opensaml.xml.io.UnmarshallingException;
23  import org.slf4j.Logger;
24  import org.slf4j.LoggerFactory;
25  import org.w3c.dom.Attr;
26  
27  import edu.internet2.middleware.shibboleth.common.xmlobject.ShibbolethMetadataScope;
28  
29  /**
30   * A thread-safe Unmarshaller for {@link ShibbolethMetadataScope}.
31   */
32  public class ShibbolethMetadataScopeUnmarshaller extends AbstractXMLObjectUnmarshaller {
33      
34      /** Logger. */
35      private final Logger log = LoggerFactory.getLogger(ShibbolethMetadataScopeUnmarshaller.class);
36  
37      /** {@inheritDoc} */
38      protected void processAttribute(XMLObject xmlObject, Attr attribute) throws UnmarshallingException {
39          ShibbolethMetadataScope scope = (ShibbolethMetadataScope) xmlObject;
40          
41          if (attribute.getLocalName().equals(ShibbolethMetadataScope.REGEXP_ATTRIB_NAME)) {
42              scope.setRegexp(Boolean.valueOf(attribute.getValue()));
43          } else {
44              log.debug("Ignorning unknown attribute {}", attribute.getLocalName());
45          }
46          
47      }
48  
49      /** {@inheritDoc} */
50      protected void processChildElement(XMLObject parentXMLObject, XMLObject childXMLObject)
51              throws UnmarshallingException {
52          log.debug("Ignorning unknown child element {}", childXMLObject.getElementQName());
53      }
54  
55      /** {@inheritDoc} */
56      protected void processElementContent(XMLObject xmlObject, String elementContent) {
57          ShibbolethMetadataScope scope = (ShibbolethMetadataScope) xmlObject;
58          scope.setValue(elementContent);
59      }
60  
61  }