View Javadoc

1   /*
2    * Copyright 2008 University Corporation for Advanced Internet Development, Inc.
3    * Copyright 2008 Members of the EGEE Collaboration.
4    * 
5    * Licensed under the Apache License, Version 2.0 (the "License");
6    * you may not use this file except in compliance with the License.
7    * 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 org.opensaml.xacml.policy.impl;
19  
20  import org.opensaml.xacml.policy.ConditionType;
21  import org.opensaml.xacml.policy.DescriptionType;
22  import org.opensaml.xacml.policy.EffectType;
23  import org.opensaml.xacml.policy.RuleType;
24  import org.opensaml.xacml.policy.TargetType;
25  import org.opensaml.xml.XMLObject;
26  import org.opensaml.xml.io.AbstractXMLObjectUnmarshaller;
27  import org.opensaml.xml.io.UnmarshallingException;
28  import org.opensaml.xml.util.DatatypeHelper;
29  import org.w3c.dom.Attr;
30  
31  /**
32   * Unmarshaller for {@link RuleType}.
33   */
34  public class RuleTypeUnmarshaller extends AbstractXMLObjectUnmarshaller {
35  
36      /** Constructor. */
37      public RuleTypeUnmarshaller() {
38          super();
39      }
40  
41      
42      /** {@inheritDoc} */
43      protected void processAttribute(XMLObject xmlObject, Attr attribute) throws UnmarshallingException {
44          RuleType ruleType = (RuleType) xmlObject;
45        
46          if(attribute.getLocalName().equals(RuleType.EFFECT_ATTRIB_NAME)){
47              ruleType.setEffect(EffectType.valueOf(
48                      DatatypeHelper.safeTrimOrNullString(attribute.getValue())));                       
49          } else if(attribute.getLocalName().equals(RuleType.RULE_ID_ATTRIB_NAME)){
50              ruleType.setRuleId(DatatypeHelper.safeTrimOrNullString(attribute.getValue()));
51          }
52  
53      }
54  
55      /** {@inheritDoc} */
56      protected void processChildElement(XMLObject parentXMLObject, XMLObject childXMLObject)
57              throws UnmarshallingException {
58          RuleType ruleType = (RuleType) parentXMLObject;
59          
60          if(childXMLObject instanceof TargetType){
61              ruleType.setTarget((TargetType)childXMLObject);
62          } else if(childXMLObject instanceof DescriptionType){
63              ruleType.setDescription((DescriptionType)childXMLObject);
64          }else if(childXMLObject instanceof ConditionType){
65              ruleType.setCondition((ConditionType)childXMLObject);
66          }
67      }
68  
69      /** {@inheritDoc} */
70      protected void processElementContent(XMLObject xmlObject, String elementContent) {
71      }
72  
73  }