aboutsummaryrefslogtreecommitdiff
path: root/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java')
-rw-r--r--src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java117
1 files changed, 59 insertions, 58 deletions
diff --git a/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java b/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java
index ab28a63..f20c151 100644
--- a/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java
+++ b/src/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java
@@ -1,15 +1,15 @@
/*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
*/
/*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * 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
*
- * 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
+ * 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,
@@ -20,18 +20,20 @@
/*
* $Id: CustomStringPool.java,v 1.2.4.1 2005/09/15 08:14:59 suresh_emailid Exp $
*/
-
package com.sun.org.apache.xml.internal.dtm.ref;
-import java.util.Hashtable;
-/** <p>CustomStringPool is an example of appliction provided data structure
- * for a DTM implementation to hold symbol references, e.g. elelment names.
- * It will follow the DTMDStringPool interface and use two simple methods
- * indexToString(int i) and stringToIndex(Sring s) to map between a set of
- * string values and a set of integer index values. Therefore, an application
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * CustomStringPool is an example of an application-provided data structure for a
+ * DTM implementation to hold symbol references, e.g. element names. It will
+ * follow the DTMStringPool interface and use two simple methods
+ * indexToString(int i) and stringToIndex(String s) to map between a set of
+ * string values and a set of integer index values. Therefore, an application
* may improve DTM processing speed by substituting the DTM symbol resolution
- * tables with application specific quick symbol resolution tables.</p>
- *
+ * tables with application specific quick symbol resolution tables.
+ * <p>
* %REVIEW% The only difference between this an DTMStringPool seems to be that
* it uses a java.lang.Hashtable full of Integers rather than implementing its
* own hashing. Joe deliberately avoided that approach when writing
@@ -39,52 +41,51 @@ import java.util.Hashtable;
* -- especially in JDK 1.1.x, where Hashtable is synchronized. We need to
* either justify this implementation or discard it.
*
- * <p>Status: In progress, under discussion.</p>
- * */
+ * <p>
+ * Status: In progress, under discussion.
+ *
+ */
public class CustomStringPool extends DTMStringPool {
- //final Vector m_intToString;
- //static final int HASHPRIME=101;
- //int[] m_hashStart=new int[HASHPRIME];
- final Hashtable m_stringToInt = new Hashtable();
- public static final int NULL=-1;
- public CustomStringPool()
- {
- super();
- /*m_intToString=new Vector();
- System.out.println("In constructor m_intToString is " +
- ((null == m_intToString) ? "null" : "not null"));*/
- //m_stringToInt=new Hashtable();
- //removeAllElements();
- }
+ final Map<String, Integer> m_stringToInt = new HashMap<>();
+ public static final int NULL = -1;
- public void removeAllElements()
- {
- m_intToString.removeAllElements();
- if (m_stringToInt != null)
- m_stringToInt.clear();
- }
+ public CustomStringPool() {
+ super();
+ }
- /** @return string whose value is uniquely identified by this integer index.
- * @throws java.lang.ArrayIndexOutOfBoundsException
- * if index doesn't map to a string.
- * */
- public String indexToString(int i)
- throws java.lang.ArrayIndexOutOfBoundsException
- {
- return(String) m_intToString.elementAt(i);
+ public void removeAllElements() {
+ m_intToString.removeAllElements();
+ if (m_stringToInt != null) {
+ m_stringToInt.clear();
}
+ }
- /** @return integer index uniquely identifying the value of this string. */
- public int stringToIndex(String s)
- {
- if (s==null) return NULL;
- Integer iobj=(Integer)m_stringToInt.get(s);
- if (iobj==null) {
- m_intToString.addElement(s);
- iobj=new Integer(m_intToString.size());
- m_stringToInt.put(s,iobj);
- }
- return iobj.intValue();
+ /**
+ * @return string whose value is uniquely identified by this integer index.
+ * @throws java.lang.ArrayIndexOutOfBoundsException if index doesn't map to
+ * a string.
+ */
+ @Override
+ public String indexToString(int i)
+ throws java.lang.ArrayIndexOutOfBoundsException {
+ return (String) m_intToString.elementAt(i);
+ }
+
+ /**
+ * @return integer index uniquely identifying the value of this string.
+ */
+ @Override
+ public int stringToIndex(String s) {
+ if (s == null) {
+ return NULL;
+ }
+ Integer iobj = m_stringToInt.get(s);
+ if (iobj == null) {
+ m_intToString.addElement(s);
+ iobj = m_intToString.size();
+ m_stringToInt.put(s, iobj);
}
+ return iobj;
+ }
}