| /* |
| * Copyright 2001-2004 The Apache Software Foundation. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.apache.rampart.policy.model; |
| |
| import java.util.HashMap; |
| import java.util.Iterator; |
| import java.util.Map; |
| import java.util.Vector; |
| |
| import javax.xml.namespace.QName; |
| import javax.xml.stream.XMLStreamException; |
| import javax.xml.stream.XMLStreamWriter; |
| |
| import org.apache.neethi.Assertion; |
| import org.apache.neethi.Constants; |
| import org.apache.neethi.PolicyComponent; |
| |
| |
| public class OptimizePartsConfig implements Assertion{ |
| |
| public final static String OPTIMIZE_PARTS_LN = RampartConfig.OPTIMISE_PARTS; |
| public final static String EXPRESSIONS_LN = "expressions"; |
| public final static String EXPRESSION_LN = "expression"; |
| public final static String NAMESPACES_LN = "namespaces"; |
| public final static String NAMESPACE_LN = "namespace"; |
| public final static String URI_ATTR = "uri"; |
| public final static String PREFIX_ATTR = "prefix"; |
| |
| private Map namespaces = null; |
| private Vector expressions = null; |
| |
| public OptimizePartsConfig(){ |
| namespaces = new HashMap(); |
| expressions = new Vector(); |
| } |
| |
| public void addExpression(String expression){ |
| expressions.add(expression); |
| } |
| |
| public void addNamespaces(String prefix, String ns){ |
| namespaces.put(prefix, ns); |
| } |
| |
| public Vector getExpressions() { |
| return expressions; |
| } |
| |
| public Map getNamespaces() { |
| return namespaces; |
| } |
| |
| public short getType() { |
| return Constants.TYPE_ASSERTION; |
| } |
| |
| public QName getName() { |
| return new QName(RampartConfig.NS, OPTIMIZE_PARTS_LN); |
| } |
| |
| public void serialize(XMLStreamWriter writer) throws XMLStreamException { |
| String prefix = writer.getPrefix(RampartConfig.NS); |
| |
| if (prefix == null) { |
| prefix = RampartConfig.NS; |
| writer.setPrefix(prefix, RampartConfig.NS); |
| } |
| |
| writer.writeStartElement(RampartConfig.NS, OPTIMIZE_PARTS_LN); |
| |
| if((expressions != null) && (expressions.size()>0)){ |
| writer.writeStartElement(RampartConfig.NS, EXPRESSIONS_LN); |
| Iterator ite = expressions.iterator(); |
| while(ite.hasNext()){ |
| writer.writeStartElement(RampartConfig.NS, EXPRESSION_LN); |
| String exp = (String)ite.next(); |
| writer.writeCharacters(exp); |
| writer.writeEndElement(); |
| } |
| writer.writeEndElement(); |
| } |
| |
| if((namespaces != null) && (namespaces.size()>0)){ |
| writer.writeStartElement(RampartConfig.NS, NAMESPACES_LN); |
| Iterator ite = namespaces.keySet().iterator(); |
| while(ite.hasNext()){ |
| String strPrefix = (String)ite.next(); |
| String strURI = (String) namespaces.get(strPrefix); |
| writer.writeAttribute(URI_ATTR , strURI); |
| writer.writeAttribute(PREFIX_ATTR, strPrefix); |
| writer.writeEndElement(); |
| } |
| writer.writeEndElement(); |
| } |
| writer.writeEndElement(); |
| } |
| |
| public PolicyComponent normalize() { |
| //TODO |
| throw new UnsupportedOperationException("TODO"); |
| } |
| |
| public boolean isOptional() { |
| throw new UnsupportedOperationException("Not relevant"); |
| } |
| |
| public boolean equal(PolicyComponent arg0) { |
| throw new UnsupportedOperationException("Not relevant"); |
| } |
| |
| |
| |
| |
| } |