/* * Copyright 2017 Graz University of Technology EAAF-Core Components has been developed in a * cooperation between EGIZ, A-SIT Plus, A-SIT, and Graz University of Technology. * * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by the European * Commission - subsequent versions of the EUPL (the "Licence"); You may not use this work except in * compliance with the Licence. You may obtain a copy of the Licence at: * https://joinup.ec.europa.eu/news/understanding-eupl-v12 * * Unless required by applicable law or agreed to in writing, software distributed under the Licence * is distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the Licence for the specific language governing permissions and limitations under * the Licence. * * This product combines work with different licenses. See the "NOTICE" text file for details on the * various modules and licenses. The "NOTICE" text file is part of the distribution. Any derivative * works that you distribute must include a readable copy of the "NOTICE" text file. */ package at.gv.egiz.eaaf.modules.pvp2.impl.builder.reqattr; import java.util.Map.Entry; import javax.xml.namespace.QName; import at.gv.egiz.eaaf.modules.pvp2.api.reqattr.EaafRequestedAttribute; import org.opensaml.core.xml.XMLObject; import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport; import org.opensaml.core.xml.io.MarshallingException; import org.opensaml.saml.common.AbstractSAMLObjectMarshaller; import org.w3c.dom.Attr; import org.w3c.dom.Element; import net.shibboleth.utilities.java.support.xml.AttributeSupport; public class EaafRequestedAttributeMarshaller extends AbstractSAMLObjectMarshaller { @Override protected final void marshallAttributes(final XMLObject samlElement, final Element domElement) throws MarshallingException { final EaafRequestedAttribute requestedAttr = (EaafRequestedAttribute) samlElement; if (requestedAttr.getName() != null) { domElement.setAttributeNS(null, EaafRequestedAttribute.NAME_ATTRIB_NAME, requestedAttr.getName()); } if (requestedAttr.getNameFormat() != null) { domElement.setAttributeNS(null, EaafRequestedAttribute.NAME_FORMAT_ATTR, requestedAttr.getNameFormat()); } if (requestedAttr.getFriendlyName() != null) { domElement.setAttributeNS(null, EaafRequestedAttribute.FRIENDLY_NAME_ATT, requestedAttr.getFriendlyName()); } if (requestedAttr.getIsRequiredXsBoolean() != null) { domElement.setAttributeNS(null, EaafRequestedAttribute.IS_REQUIRED_ATTR, requestedAttr.getIsRequiredXsBoolean()); } Attr attr; for (final Entry entry : requestedAttr.getUnknownAttributes().entrySet()) { attr = AttributeSupport.constructAttribute(domElement.getOwnerDocument(), entry.getKey()); attr.setValue(entry.getValue()); domElement.setAttributeNodeNS(attr); if (XMLObjectProviderRegistrySupport.isIDAttribute(entry.getKey()) || requestedAttr.getUnknownAttributes().isIDAttribute(entry.getKey())) { attr.getOwnerElement().setIdAttributeNode(attr, true); } } } }