diff options
Diffstat (limited to 'branches/sca-java-1.x/modules/contribution/src')
-rw-r--r-- | branches/sca-java-1.x/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/TuscanyNamespaceContext.java | 266 |
1 files changed, 142 insertions, 124 deletions
diff --git a/branches/sca-java-1.x/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/TuscanyNamespaceContext.java b/branches/sca-java-1.x/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/TuscanyNamespaceContext.java index 8b1e40cee9..d0448356ef 100644 --- a/branches/sca-java-1.x/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/TuscanyNamespaceContext.java +++ b/branches/sca-java-1.x/modules/contribution/src/main/java/org/apache/tuscany/sca/contribution/processor/TuscanyNamespaceContext.java @@ -1,124 +1,142 @@ -package org.apache.tuscany.sca.contribution.processor; - -import java.util.List; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.Stack; - -import javax.xml.XMLConstants; -import javax.xml.namespace.NamespaceContext; - -@SuppressWarnings("unused") -public class TuscanyNamespaceContext implements NamespaceContext { - - private Stack<ArrayList<ArrayList<String>>> context = null; - - public TuscanyNamespaceContext(Stack<ArrayList<ArrayList<String>>> context){ - this.context = context; - } - - public String getNamespaceURI(String prefix) { - if (prefix == null) { - throw new IllegalArgumentException(); - } - return (String) getResult("getNSUri",prefix); - } - - public String getPrefix(String namespaceURI) { - if (namespaceURI == null) { - throw new IllegalArgumentException(); - } - return (String) getResult("getPrefix",namespaceURI); - } - - @SuppressWarnings("unchecked") - public Iterator<String> getPrefixes(String namespaceURI) { - if (namespaceURI == null) { - throw new IllegalArgumentException(); - } - - Iterator<String> iterator = new Itr<String>((Iterator<String>) getResult("getPrefixes",namespaceURI)); - return iterator; - } - - /* - * Generic method to Iterate through the Stack and return required result(s) - */ - private Object getResult(String operation,String arg){ - - ArrayList<ArrayList<String>> contextList = null; - Iterator<String> prefItr = null; - Iterator<String> uriItr = null; - - List<String> list = new ArrayList<String>();; - - String toCompare = null; - - String tempPrefix = null; - String tempUri = null ; - - for(int i = context.size()-1; i>=0;i--){ - contextList = context.get(i); - prefItr = ((ArrayList<String>)contextList.get(0)).iterator(); - uriItr = ((ArrayList<String>)contextList.get(1)).iterator(); - for(int j = 0;uriItr.hasNext();j++){ - tempPrefix = (String) prefItr.next(); - tempUri = (String) uriItr.next(); - if(operation.equalsIgnoreCase("getNSUri")){ - toCompare = tempPrefix; - } - else if(operation.equalsIgnoreCase("getPrefix")){ - toCompare = tempUri; - } - else if(operation.equalsIgnoreCase("getPrefixes")){ - toCompare = tempUri; - } - if(toCompare != null && arg.equalsIgnoreCase(toCompare)){ - if(operation.equalsIgnoreCase("getNSUri")){ - return tempUri; - } - else if(operation.equalsIgnoreCase("getPrefix")){ - return tempPrefix; - } - else if(operation.equalsIgnoreCase("getPrefixes")){ - list.add(tempPrefix); - - } - - } - } - } - - if(operation.equalsIgnoreCase("getPrefixes")){ - return list.iterator(); - } - - return null; - } - - /* - * Custom implementation of the Iterator interface to override the behavior of the remove() method. - * The iterator should not be modifiable and invocation of the remove() method should throw UnsupportedOperationException. - */ - private class Itr<E> implements Iterator<E>{ - Iterator<E> iterator = null; - - Itr(Iterator<E> inputItr){ - this.iterator = inputItr; - } - - public boolean hasNext() { - return this.iterator.hasNext(); - } - - public E next() { - return (E) this.iterator.next(); - } - - public void remove() { - throw new UnsupportedOperationException(); - } - } //end of class Itr<E> - - -} //end of Class +/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.tuscany.sca.contribution.processor;
+
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.Stack;
+
+import javax.xml.XMLConstants;
+import javax.xml.namespace.NamespaceContext;
+
+@SuppressWarnings("unused")
+public class TuscanyNamespaceContext implements NamespaceContext {
+
+ private Stack<ArrayList<ArrayList<String>>> context = null;
+
+ public TuscanyNamespaceContext(Stack<ArrayList<ArrayList<String>>> context){
+ this.context = context;
+ }
+
+ public String getNamespaceURI(String prefix) {
+ if (prefix == null) {
+ throw new IllegalArgumentException();
+ }
+ return (String) getResult("getNSUri",prefix);
+ }
+
+ public String getPrefix(String namespaceURI) {
+ if (namespaceURI == null) {
+ throw new IllegalArgumentException();
+ }
+ return (String) getResult("getPrefix",namespaceURI);
+ }
+
+ @SuppressWarnings("unchecked")
+ public Iterator<String> getPrefixes(String namespaceURI) {
+ if (namespaceURI == null) {
+ throw new IllegalArgumentException();
+ }
+
+ Iterator<String> iterator = new Itr<String>((Iterator<String>) getResult("getPrefixes",namespaceURI));
+ return iterator;
+ }
+
+ /*
+ * Generic method to Iterate through the Stack and return required result(s)
+ */
+ private Object getResult(String operation,String arg){
+
+ ArrayList<ArrayList<String>> contextList = null;
+ Iterator<String> prefItr = null;
+ Iterator<String> uriItr = null;
+
+ List<String> list = new ArrayList<String>();;
+
+ String toCompare = null;
+
+ String tempPrefix = null;
+ String tempUri = null ;
+
+ for(int i = context.size()-1; i>=0;i--){
+ contextList = context.get(i);
+ prefItr = ((ArrayList<String>)contextList.get(0)).iterator();
+ uriItr = ((ArrayList<String>)contextList.get(1)).iterator();
+ for(int j = 0;uriItr.hasNext();j++){
+ tempPrefix = (String) prefItr.next();
+ tempUri = (String) uriItr.next();
+ if(operation.equalsIgnoreCase("getNSUri")){
+ toCompare = tempPrefix;
+ }
+ else if(operation.equalsIgnoreCase("getPrefix")){
+ toCompare = tempUri;
+ }
+ else if(operation.equalsIgnoreCase("getPrefixes")){
+ toCompare = tempUri;
+ }
+ if(toCompare != null && arg.equalsIgnoreCase(toCompare)){
+ if(operation.equalsIgnoreCase("getNSUri")){
+ return tempUri;
+ }
+ else if(operation.equalsIgnoreCase("getPrefix")){
+ return tempPrefix;
+ }
+ else if(operation.equalsIgnoreCase("getPrefixes")){
+ list.add(tempPrefix);
+
+ }
+
+ }
+ }
+ }
+
+ if(operation.equalsIgnoreCase("getPrefixes")){
+ return list.iterator();
+ }
+
+ return null;
+ }
+
+ /*
+ * Custom implementation of the Iterator interface to override the behavior of the remove() method.
+ * The iterator should not be modifiable and invocation of the remove() method should throw UnsupportedOperationException.
+ */
+ private class Itr<E> implements Iterator<E>{
+ Iterator<E> iterator = null;
+
+ Itr(Iterator<E> inputItr){
+ this.iterator = inputItr;
+ }
+
+ public boolean hasNext() {
+ return this.iterator.hasNext();
+ }
+
+ public E next() {
+ return (E) this.iterator.next();
+ }
+
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ } //end of class Itr<E>
+
+
+} //end of Class
|