Skip to content

Commit

Permalink
Remove unused DOMParserWrapper and strip down PDEXMLHelper
Browse files Browse the repository at this point in the history
  • Loading branch information
HannesWell committed Jul 11, 2023
1 parent c8754be commit d734f26
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 367 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,64 +13,8 @@
*******************************************************************************/
package org.eclipse.pde.internal.core.util;

import java.lang.ref.SoftReference;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;

/**
* PDEXMLHelper
*
*/
public class PDEXMLHelper {

protected static PDEXMLHelper fPinstance;
protected static DocumentBuilderFactory fDOMFactory;
protected static List<SoftReference<DocumentBuilder>> fDOMParserQueue;
protected static int fSAXPoolLimit;
protected static int fDOMPoolLimit;
protected static final int FMAXPOOLLIMIT = 1;

protected PDEXMLHelper() throws FactoryConfigurationError {
fDOMFactory = XmlDocumentBuilderFactory.createDocumentBuilderFactoryWithErrorOnDOCTYPE();
fDOMParserQueue = Collections.synchronizedList(new LinkedList<>());
fSAXPoolLimit = FMAXPOOLLIMIT;
fDOMPoolLimit = FMAXPOOLLIMIT;
}

public synchronized DocumentBuilder getDefaultDOMParser() throws ParserConfigurationException {

DocumentBuilder parser = null;
if (fDOMParserQueue.isEmpty()) {
parser = fDOMFactory.newDocumentBuilder();
} else {
SoftReference<DocumentBuilder> reference = fDOMParserQueue.remove(0);
if (reference.get() != null) {
parser = reference.get();
} else {
parser = fDOMFactory.newDocumentBuilder();
}
}
return parser;
}

public static PDEXMLHelper Instance() throws FactoryConfigurationError {
if (fPinstance == null) {
fPinstance = new PDEXMLHelper();
}
return fPinstance;
}

public synchronized void recycleDOMParser(DocumentBuilder parser) {
if (fDOMParserQueue.size() < fDOMPoolLimit) {
SoftReference<DocumentBuilder> reference = new SoftReference<>(parser);
fDOMParserQueue.add(reference);
}
private PDEXMLHelper() {
}

public static String getWritableString(String source) {
Expand All @@ -79,26 +23,14 @@ public static String getWritableString(String source) {
}
StringBuilder buf = new StringBuilder();
for (int i = 0; i < source.length(); i++) {
char c = source.charAt(i);
switch (c) {
case '&' :
buf.append("&amp;"); //$NON-NLS-1$
break;
case '<' :
buf.append("&lt;"); //$NON-NLS-1$
break;
case '>' :
buf.append("&gt;"); //$NON-NLS-1$
break;
case '\'' :
buf.append("&apos;"); //$NON-NLS-1$
break;
case '\"' :
buf.append("&quot;"); //$NON-NLS-1$
break;
default :
buf.append(c);
break;
char character = source.charAt(i);
switch (character) {
case '&' -> buf.append("&amp;"); //$NON-NLS-1$
case '<' -> buf.append("&lt;"); //$NON-NLS-1$
case '>' -> buf.append("&gt;"); //$NON-NLS-1$
case '\'' -> buf.append("&apos;"); //$NON-NLS-1$
case '\"' -> buf.append("&quot;"); //$NON-NLS-1$
default -> buf.append(character);
}
}
return buf.toString();
Expand All @@ -111,55 +43,22 @@ public static String getWritableAttributeString(String source) {
}
// Trim the leading and trailing whitespace if any
source = source.trim();
// Translate source using a buffer
StringBuilder buffer = new StringBuilder();
// Translate source character by character
for (int i = 0; i < source.length(); i++) {
char character = source.charAt(i);
switch (character) {
case '&' :
buffer.append("&amp;"); //$NON-NLS-1$
break;
case '<' :
buffer.append("&lt;"); //$NON-NLS-1$
break;
case '>' :
buffer.append("&gt;"); //$NON-NLS-1$
break;
case '\'' :
buffer.append("&apos;"); //$NON-NLS-1$
break;
case '\"' :
buffer.append("&quot;"); //$NON-NLS-1$
break;
case '\r' :
buffer.append("&#x0D;"); //$NON-NLS-1$
break;
case '\n' :
buffer.append("&#x0A;"); //$NON-NLS-1$
break;
default :
buffer.append(character);
break;
case '&' -> buffer.append("&amp;"); //$NON-NLS-1$
case '<' -> buffer.append("&lt;"); //$NON-NLS-1$
case '>' -> buffer.append("&gt;"); //$NON-NLS-1$
case '\'' -> buffer.append("&apos;"); //$NON-NLS-1$
case '\"' -> buffer.append("&quot;"); //$NON-NLS-1$
case '\r' -> buffer.append("&#x0D;"); //$NON-NLS-1$
case '\n' -> buffer.append("&#x0A;"); //$NON-NLS-1$
default -> buffer.append(character);
}
}
return buffer.toString();
}

public static int getSAXPoolLimit() {
return fSAXPoolLimit;
}

public static void setSAXPoolLimit(int poolLimit) {
fSAXPoolLimit = poolLimit;
}

public static int getDOMPoolLimit() {
return fDOMPoolLimit;
}

public static void setDOMPoolLimit(int poolLimit) {
fDOMPoolLimit = poolLimit;
}

}

This file was deleted.

This file was deleted.

Loading

0 comments on commit d734f26

Please sign in to comment.