mirror of
https://github.com/processing/processing4.git
synced 2026-06-16 04:26:26 +02:00
Merge pull request #2863 from federicobond/migrate-unsynchronized
Migrate to unsynchronized data structures
This commit is contained in:
@@ -37,7 +37,7 @@ public class ExtendedCommonASTWithHiddenTokens
|
||||
public String getHiddenAfterString() {
|
||||
|
||||
CommonHiddenStreamToken t;
|
||||
StringBuffer hiddenAfterString = new StringBuffer(100);
|
||||
StringBuilder hiddenAfterString = new StringBuilder(100);
|
||||
|
||||
for ( t = hiddenAfter ; t != null ; t = t.getHiddenAfter() ) {
|
||||
hiddenAfterString.append(t.getText());
|
||||
@@ -66,7 +66,7 @@ public class ExtendedCommonASTWithHiddenTokens
|
||||
|
||||
// dump that list
|
||||
|
||||
StringBuffer hiddenBeforeString = new StringBuffer(100);
|
||||
StringBuilder hiddenBeforeString = new StringBuilder(100);
|
||||
|
||||
for ( CommonHiddenStreamToken t = child; t != null ;
|
||||
t = t.getHiddenAfter() ) {
|
||||
@@ -76,31 +76,29 @@ public class ExtendedCommonASTWithHiddenTokens
|
||||
return hiddenBeforeString.toString();
|
||||
}
|
||||
|
||||
public void xmlSerializeNode(Writer out)
|
||||
throws IOException {
|
||||
StringBuffer buf = new StringBuffer(100);
|
||||
buf.append("<");
|
||||
buf.append(getClass().getName() + " ");
|
||||
public void xmlSerializeNode(Writer out) throws IOException {
|
||||
StringBuilder sb = new StringBuilder(100);
|
||||
sb.append("<");
|
||||
sb.append(getClass().getName() + " ");
|
||||
|
||||
buf.append("hiddenBeforeString=\"" +
|
||||
encode(getHiddenBeforeString()) +
|
||||
"\" text=\"" + encode(getText()) + "\" type=\"" +
|
||||
getType() + "\" hiddenAfterString=\"" +
|
||||
encode(getHiddenAfterString()) + "\"/>");
|
||||
out.write(buf.toString());
|
||||
sb.append("hiddenBeforeString=\"" +
|
||||
encode(getHiddenBeforeString()) +
|
||||
"\" text=\"" + encode(getText()) + "\" type=\"" +
|
||||
getType() + "\" hiddenAfterString=\"" +
|
||||
encode(getHiddenAfterString()) + "\"/>");
|
||||
out.write(sb.toString());
|
||||
}
|
||||
|
||||
public void xmlSerializeRootOpen(Writer out)
|
||||
throws IOException {
|
||||
StringBuffer buf = new StringBuffer(100);
|
||||
buf.append("<");
|
||||
buf.append(getClass().getName() + " ");
|
||||
buf.append("hiddenBeforeString=\"" +
|
||||
encode(getHiddenBeforeString()) +
|
||||
"\" text=\"" + encode(getText()) + "\" type=\"" +
|
||||
getType() + "\" hiddenAfterString=\"" +
|
||||
encode(getHiddenAfterString()) + "\">\n");
|
||||
out.write(buf.toString());
|
||||
public void xmlSerializeRootOpen(Writer out) throws IOException {
|
||||
StringBuilder sb = new StringBuilder(100);
|
||||
sb.append("<");
|
||||
sb.append(getClass().getName() + " ");
|
||||
sb.append("hiddenBeforeString=\"" +
|
||||
encode(getHiddenBeforeString()) +
|
||||
"\" text=\"" + encode(getText()) + "\" type=\"" +
|
||||
getType() + "\" hiddenAfterString=\"" +
|
||||
encode(getHiddenAfterString()) + "\">\n");
|
||||
out.write(sb.toString());
|
||||
}
|
||||
|
||||
public void xmlSerializeRootClose(Writer out)
|
||||
|
||||
@@ -2780,17 +2780,12 @@ public class Base {
|
||||
static public String contentsToClassPath(File folder) {
|
||||
if (folder == null) return "";
|
||||
|
||||
StringBuffer abuffer = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
String sep = System.getProperty("path.separator");
|
||||
|
||||
try {
|
||||
String path = folder.getCanonicalPath();
|
||||
|
||||
// disabled as of 0136
|
||||
// add the folder itself in case any unzipped files
|
||||
// abuffer.append(sep);
|
||||
// abuffer.append(path);
|
||||
//
|
||||
// When getting the name of this folder, make sure it has a slash
|
||||
// after it, so that the names of sub-items can be added.
|
||||
if (!path.endsWith(File.separator)) {
|
||||
@@ -2805,17 +2800,15 @@ public class Base {
|
||||
|
||||
if (list[i].toLowerCase().endsWith(".jar") ||
|
||||
list[i].toLowerCase().endsWith(".zip")) {
|
||||
abuffer.append(sep);
|
||||
abuffer.append(path);
|
||||
abuffer.append(list[i]);
|
||||
sb.append(sep);
|
||||
sb.append(path);
|
||||
sb.append(list[i]);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace(); // this would be odd
|
||||
}
|
||||
//System.out.println("included path is " + abuffer.toString());
|
||||
//packageListFromClassPath(abuffer.toString()); // WHY?
|
||||
return abuffer.toString();
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
||||
@@ -2828,7 +2821,7 @@ public class Base {
|
||||
* @return array of possible package names
|
||||
*/
|
||||
static public String[] packageListFromClassPath(String path) {
|
||||
Hashtable table = new Hashtable();
|
||||
Map<String, Object> map = new HashMap<String, Object>();
|
||||
String pieces[] =
|
||||
PApplet.split(path, File.pathSeparatorChar);
|
||||
|
||||
@@ -2839,24 +2832,24 @@ public class Base {
|
||||
if (pieces[i].toLowerCase().endsWith(".jar") ||
|
||||
pieces[i].toLowerCase().endsWith(".zip")) {
|
||||
//System.out.println("checking " + pieces[i]);
|
||||
packageListFromZip(pieces[i], table);
|
||||
packageListFromZip(pieces[i], map);
|
||||
|
||||
} else { // it's another type of file or directory
|
||||
File dir = new File(pieces[i]);
|
||||
if (dir.exists() && dir.isDirectory()) {
|
||||
packageListFromFolder(dir, null, table);
|
||||
packageListFromFolder(dir, null, map);
|
||||
//importCount = magicImportsRecursive(dir, null,
|
||||
// table);
|
||||
// map);
|
||||
//imports, importCount);
|
||||
}
|
||||
}
|
||||
}
|
||||
int tableCount = table.size();
|
||||
String output[] = new String[tableCount];
|
||||
int mapCount = map.size();
|
||||
String output[] = new String[mapCount];
|
||||
int index = 0;
|
||||
Enumeration e = table.keys();
|
||||
while (e.hasMoreElements()) {
|
||||
output[index++] = ((String) e.nextElement()).replace('/', '.');
|
||||
Set<String> set = map.keySet();
|
||||
for (String s : set) {
|
||||
output[index++] = s.replace('/', '.');
|
||||
}
|
||||
//System.arraycopy(imports, 0, output, 0, importCount);
|
||||
//PApplet.printarr(output);
|
||||
@@ -2864,7 +2857,7 @@ public class Base {
|
||||
}
|
||||
|
||||
|
||||
static private void packageListFromZip(String filename, Hashtable table) {
|
||||
static private void packageListFromZip(String filename, Map<String, Object> map) {
|
||||
try {
|
||||
ZipFile file = new ZipFile(filename);
|
||||
Enumeration entries = file.entries();
|
||||
@@ -2879,8 +2872,8 @@ public class Base {
|
||||
if (slash == -1) continue;
|
||||
|
||||
String pname = name.substring(0, slash);
|
||||
if (table.get(pname) == null) {
|
||||
table.put(pname, new Object());
|
||||
if (map.get(pname) == null) {
|
||||
map.put(pname, new Object());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2900,7 +2893,7 @@ public class Base {
|
||||
* walk down into that folder and continue.
|
||||
*/
|
||||
static private void packageListFromFolder(File dir, String sofar,
|
||||
Hashtable table) {
|
||||
Map<String, Object> map) {
|
||||
//String imports[],
|
||||
//int importCount) {
|
||||
//System.err.println("checking dir '" + dir + "'");
|
||||
@@ -2914,7 +2907,7 @@ public class Base {
|
||||
if (sub.isDirectory()) {
|
||||
String nowfar =
|
||||
(sofar == null) ? files[i] : (sofar + "." + files[i]);
|
||||
packageListFromFolder(sub, nowfar, table);
|
||||
packageListFromFolder(sub, nowfar, map);
|
||||
//System.out.println(nowfar);
|
||||
//imports[importCount++] = nowfar;
|
||||
//importCount = magicImportsRecursive(sub, nowfar,
|
||||
@@ -2922,7 +2915,7 @@ public class Base {
|
||||
} else if (!foundClass) { // if no classes found in this folder yet
|
||||
if (files[i].endsWith(".class")) {
|
||||
//System.out.println("unique class: " + files[i] + " for " + sofar);
|
||||
table.put(sofar, new Object());
|
||||
map.put(sofar, new Object());
|
||||
foundClass = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1570,24 +1570,24 @@ public class Sketch {
|
||||
*/
|
||||
static public String sanitizeName(String origName) {
|
||||
char orig[] = origName.toCharArray();
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
// Can't lead with a digit (or anything besides a letter), so prefix with
|
||||
// "sketch_". In 1.x this prefixed with an underscore, but those get shaved
|
||||
// off later, since you can't start a sketch name with underscore anymore.
|
||||
if (!asciiLetter(orig[0])) {
|
||||
buffer.append("sketch_");
|
||||
sb.append("sketch_");
|
||||
}
|
||||
// for (int i = 0; i < orig.length; i++) {
|
||||
for (char c : orig) {
|
||||
if (asciiLetter(c) || (c >= '0' && c <= '9')) {
|
||||
buffer.append(c);
|
||||
sb.append(c);
|
||||
|
||||
} else {
|
||||
// Tempting to only add if prev char is not underscore, but that
|
||||
// might be more confusing if lots of chars are converted and the
|
||||
// result is a very short string thats nothing like the original.
|
||||
buffer.append('_');
|
||||
sb.append('_');
|
||||
}
|
||||
}
|
||||
// Let's not be ridiculous about the length of filenames.
|
||||
@@ -1596,22 +1596,22 @@ public class Sketch {
|
||||
// Limiting to that for sketches would mean setting the
|
||||
// upper-bound on the character limit here to 25 characters
|
||||
// (to handle the base name + ".class")
|
||||
if (buffer.length() > 63) {
|
||||
buffer.setLength(63);
|
||||
if (sb.length() > 63) {
|
||||
sb.setLength(63);
|
||||
}
|
||||
// Remove underscores from the beginning, these seem to be a reserved
|
||||
// thing on Android, plus it sometimes causes trouble elsewhere.
|
||||
int underscore = 0;
|
||||
while (underscore < buffer.length() && buffer.charAt(underscore) == '_') {
|
||||
while (underscore < sb.length() && sb.charAt(underscore) == '_') {
|
||||
underscore++;
|
||||
}
|
||||
if (underscore == buffer.length()) {
|
||||
if (underscore == sb.length()) {
|
||||
return "bad_sketch_name_please_fix";
|
||||
|
||||
} else if (underscore != 0) {
|
||||
return buffer.substring(underscore);
|
||||
return sb.substring(underscore);
|
||||
}
|
||||
return buffer.toString();
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -109,13 +109,13 @@ public class WebServer implements HttpConstants {
|
||||
//public static void main(String[] a) throws Exception {
|
||||
static public int launch(String zipPath) throws IOException {
|
||||
final ZipFile zip = new ZipFile(zipPath);
|
||||
final HashMap<String, ZipEntry> entries = new HashMap();
|
||||
final Map<String, ZipEntry> entries = new HashMap<String, ZipEntry>();
|
||||
Enumeration en = zip.entries();
|
||||
while (en.hasMoreElements()) {
|
||||
ZipEntry entry = (ZipEntry) en.nextElement();
|
||||
entries.put(entry.getName(), entry);
|
||||
}
|
||||
|
||||
|
||||
// if (a.length > 0) {
|
||||
// port = Integer.parseInt(a[0]);
|
||||
// }
|
||||
@@ -164,9 +164,9 @@ public class WebServer implements HttpConstants {
|
||||
|
||||
|
||||
class WebServerWorker /*extends WebServer*/ implements HttpConstants, Runnable {
|
||||
ZipFile zip;
|
||||
HashMap<String, ZipEntry> entries;
|
||||
|
||||
private final ZipFile zip;
|
||||
private final Map<String, ZipEntry> entries;
|
||||
|
||||
final static int BUF_SIZE = 2048;
|
||||
|
||||
static final byte[] EOL = { (byte)'\r', (byte)'\n' };
|
||||
@@ -176,10 +176,10 @@ class WebServerWorker /*extends WebServer*/ implements HttpConstants, Runnable {
|
||||
/* Socket to client we're handling */
|
||||
private Socket s;
|
||||
|
||||
WebServerWorker(ZipFile zip, HashMap entries) {
|
||||
WebServerWorker(ZipFile zip, Map<String, ZipEntry> entries) {
|
||||
this.entries = entries;
|
||||
this.zip = zip;
|
||||
|
||||
|
||||
buf = new byte[BUF_SIZE];
|
||||
s = null;
|
||||
}
|
||||
@@ -468,7 +468,7 @@ outerloop:
|
||||
}
|
||||
|
||||
/* mapping of file extensions to content-types */
|
||||
static java.util.Hashtable map = new java.util.Hashtable();
|
||||
static Map<String, String> map = new HashMap<String, String>();
|
||||
|
||||
static {
|
||||
fillMap();
|
||||
|
||||
@@ -50,17 +50,6 @@ public class ProcessHelper {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
/*
|
||||
final StringBuffer buffer = new StringBuffer();
|
||||
for (int i = 0; i < cmd.length; i++) {
|
||||
if (i != 0) {
|
||||
buffer.append(' ');
|
||||
}
|
||||
buffer.append(cmd[i]);
|
||||
}
|
||||
return buffer.toString();
|
||||
*/
|
||||
// return exe + " " + PApplet.join(args, " ");
|
||||
return PApplet.join(cmd, " ");
|
||||
}
|
||||
|
||||
@@ -143,4 +132,4 @@ public class ProcessHelper {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,8 @@ package processing.app.syntax;
|
||||
import javax.swing.KeyStroke;
|
||||
import java.awt.event.*;
|
||||
import java.awt.Toolkit;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import java.util.StringTokenizer;
|
||||
|
||||
/**
|
||||
@@ -28,7 +29,7 @@ public class DefaultInputHandler extends InputHandler
|
||||
*/
|
||||
public DefaultInputHandler()
|
||||
{
|
||||
bindings = currentBindings = new Hashtable();
|
||||
bindings = currentBindings = new HashMap();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -88,7 +89,7 @@ public class DefaultInputHandler extends InputHandler
|
||||
*/
|
||||
public void addKeyBinding(String keyBinding, ActionListener action)
|
||||
{
|
||||
Hashtable current = bindings;
|
||||
Map current = bindings;
|
||||
|
||||
StringTokenizer st = new StringTokenizer(keyBinding);
|
||||
while(st.hasMoreTokens())
|
||||
@@ -100,13 +101,13 @@ public class DefaultInputHandler extends InputHandler
|
||||
if(st.hasMoreTokens())
|
||||
{
|
||||
Object o = current.get(keyStroke);
|
||||
if(o instanceof Hashtable)
|
||||
current = (Hashtable)o;
|
||||
if(o instanceof Map)
|
||||
current = (Map)o;
|
||||
else
|
||||
{
|
||||
o = new Hashtable();
|
||||
o = new HashMap();
|
||||
current.put(keyStroke,o);
|
||||
current = (Hashtable)o;
|
||||
current = (Map)o;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -222,9 +223,9 @@ public class DefaultInputHandler extends InputHandler
|
||||
evt.consume();
|
||||
return;
|
||||
}
|
||||
else if(o instanceof Hashtable)
|
||||
else if(o instanceof Map)
|
||||
{
|
||||
currentBindings = (Hashtable)o;
|
||||
currentBindings = (Map)o;
|
||||
evt.consume();
|
||||
return;
|
||||
}
|
||||
@@ -257,9 +258,9 @@ public class DefaultInputHandler extends InputHandler
|
||||
Character.toUpperCase(c));
|
||||
Object o = currentBindings.get(keyStroke);
|
||||
|
||||
if(o instanceof Hashtable)
|
||||
if(o instanceof Map)
|
||||
{
|
||||
currentBindings = (Hashtable)o;
|
||||
currentBindings = (Map)o;
|
||||
return;
|
||||
}
|
||||
else if(o instanceof ActionListener)
|
||||
@@ -368,8 +369,8 @@ public class DefaultInputHandler extends InputHandler
|
||||
}
|
||||
|
||||
// private members
|
||||
private Hashtable bindings;
|
||||
private Hashtable currentBindings;
|
||||
private Map bindings;
|
||||
private Map currentBindings;
|
||||
|
||||
private DefaultInputHandler(DefaultInputHandler copy)
|
||||
{
|
||||
|
||||
@@ -90,11 +90,11 @@ public abstract class InputHandler extends KeyAdapter
|
||||
// Default action
|
||||
public static final ActionListener INSERT_CHAR = new insert_char();
|
||||
|
||||
private static Hashtable actions;
|
||||
private static Map<String, ActionListener> actions;
|
||||
|
||||
static
|
||||
{
|
||||
actions = new Hashtable();
|
||||
actions = new HashMap<String, ActionListener>();
|
||||
actions.put("backspace",BACKSPACE);
|
||||
actions.put("backspace-word",BACKSPACE_WORD);
|
||||
actions.put("delete",DELETE);
|
||||
@@ -149,10 +149,9 @@ public abstract class InputHandler extends KeyAdapter
|
||||
*/
|
||||
public static String getActionName(ActionListener listener)
|
||||
{
|
||||
Enumeration en = getActions();
|
||||
while(en.hasMoreElements())
|
||||
Set<String> set = getActions();
|
||||
for (String name : set)
|
||||
{
|
||||
String name = (String)en.nextElement();
|
||||
ActionListener _listener = getAction(name);
|
||||
if(_listener == listener) {
|
||||
return name;
|
||||
@@ -164,9 +163,9 @@ public abstract class InputHandler extends KeyAdapter
|
||||
/**
|
||||
* Returns an enumeration of all available actions.
|
||||
*/
|
||||
public static Enumeration getActions()
|
||||
public static Set<String> getActions()
|
||||
{
|
||||
return actions.keys();
|
||||
return actions.keySet();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1151,10 +1150,10 @@ public abstract class InputHandler extends KeyAdapter
|
||||
|
||||
if(textArea.isEditable())
|
||||
{
|
||||
StringBuffer buf = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for(int i = 0; i < repeatCount; i++)
|
||||
buf.append(str);
|
||||
textArea.overwriteSetSelectedText(buf.toString());
|
||||
sb.append(str);
|
||||
textArea.overwriteSetSelectedText(sb.toString());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1397,7 +1397,7 @@ public class JEditTextArea extends JComponent
|
||||
start = tmp;
|
||||
}
|
||||
|
||||
StringBuffer buf = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
Segment seg = new Segment();
|
||||
|
||||
for(int i = selectionStartLine; i <= selectionEndLine; i++)
|
||||
@@ -1411,13 +1411,13 @@ public class JEditTextArea extends JComponent
|
||||
lineLen = Math.min(end - start,lineEnd - lineStart);
|
||||
|
||||
getText(lineStart,lineLen,seg);
|
||||
buf.append(seg.array,seg.offset,seg.count);
|
||||
sb.append(seg.array,seg.offset,seg.count);
|
||||
|
||||
if(i != selectionEndLine)
|
||||
buf.append('\n');
|
||||
sb.append('\n');
|
||||
}
|
||||
|
||||
return buf.toString();
|
||||
return sb.toString();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1691,11 +1691,11 @@ public class JEditTextArea extends JComponent
|
||||
String selection = getSelectedText();
|
||||
|
||||
int repeatCount = inputHandler.getRepeatCount();
|
||||
StringBuffer buf = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for(int i = 0; i < repeatCount; i++)
|
||||
buf.append(selection);
|
||||
sb.append(selection);
|
||||
|
||||
clipboard.setContents(new StringSelection(buf.toString()),null);
|
||||
clipboard.setContents(new StringSelection(sb.toString()), null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1721,7 +1721,7 @@ public class JEditTextArea extends JComponent
|
||||
* specific to any language or version of the PDE.
|
||||
*/
|
||||
public void copyAsHTML() {
|
||||
StringBuffer cf = new StringBuffer("<html><body><pre>\n");
|
||||
StringBuilder cf = new StringBuilder("<html><body><pre>\n");
|
||||
|
||||
int selStart = getSelectionStart();
|
||||
int selStop = getSelectionStop();
|
||||
@@ -1758,7 +1758,7 @@ public class JEditTextArea extends JComponent
|
||||
}
|
||||
|
||||
|
||||
private void emitAsHTML(StringBuffer cf, int line) {
|
||||
private void emitAsHTML(StringBuilder cf, int line) {
|
||||
Segment segment = new Segment();
|
||||
getLineText(line, segment);
|
||||
|
||||
@@ -1839,7 +1839,7 @@ public class JEditTextArea extends JComponent
|
||||
/**
|
||||
* Handle encoding HTML entities for lt, gt, and anything non-ASCII.
|
||||
*/
|
||||
private void appendAsHTML(StringBuffer buffer, char c) {
|
||||
private void appendAsHTML(StringBuilder buffer, char c) {
|
||||
if (c == '<') {
|
||||
buffer.append("<");
|
||||
} else if (c == '>') {
|
||||
@@ -1903,11 +1903,11 @@ public class JEditTextArea extends JComponent
|
||||
}
|
||||
|
||||
int repeatCount = inputHandler.getRepeatCount();
|
||||
StringBuffer buf = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < repeatCount; i++) {
|
||||
buf.append(selection);
|
||||
sb.append(selection);
|
||||
}
|
||||
selection = buf.toString();
|
||||
selection = sb.toString();
|
||||
setSelectedText(selection);
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -94,7 +94,7 @@ public class CompositionTextManager {
|
||||
CompositionTextPainter compositionPainter = textArea.getPainter().getCompositionTextpainter();
|
||||
compositionPainter.setComposedTextLayout(getTextLayout(text, committed_count), layoutCaretPosition);
|
||||
int textLength = text.getEndIndex() - text.getBeginIndex() - committed_count;
|
||||
StringBuffer unCommitedStringBuf = new StringBuffer(textLength);
|
||||
StringBuilder unCommitedStringBuf = new StringBuilder(textLength);
|
||||
char c;
|
||||
for (c = text.setIndex(committed_count); c != CharacterIterator.DONE
|
||||
&& textLength > 0; c = text.next(), --textLength) {
|
||||
|
||||
@@ -103,8 +103,8 @@ public class Compiler {
|
||||
// PApplet.println(command);
|
||||
|
||||
try {
|
||||
// Load errors into a local StringBuffer
|
||||
final StringBuffer errorBuffer = new StringBuffer();
|
||||
// Load errors into a local StringBuilder
|
||||
final StringBuilder errorBuffer = new StringBuilder();
|
||||
|
||||
// Create single method dummy writer class to slurp errors from ecj
|
||||
Writer internalWriter = new Writer() {
|
||||
|
||||
@@ -234,7 +234,7 @@ public class JavaBuild {
|
||||
// 1. concatenate all .pde files to the 'main' pde
|
||||
// store line number for starting point of each code bit
|
||||
|
||||
StringBuffer bigCode = new StringBuffer();
|
||||
StringBuilder bigCode = new StringBuilder();
|
||||
int bigCount = 0;
|
||||
for (SketchCode sc : sketch.getCode()) {
|
||||
if (sc.isExtension("pde")) {
|
||||
@@ -1417,7 +1417,7 @@ public class JavaBuild {
|
||||
|
||||
String jarList[] = new String[jarListVector.size()];
|
||||
jarListVector.copyInto(jarList);
|
||||
StringBuffer exportClassPath = new StringBuffer();
|
||||
StringBuilder exportClassPath = new StringBuilder();
|
||||
|
||||
if (exportPlatform == PConstants.MACOSX) {
|
||||
for (int i = 0; i < jarList.length; i++) {
|
||||
@@ -1474,7 +1474,7 @@ public class JavaBuild {
|
||||
String lines[] = PApplet.loadStrings(plistTemplate);
|
||||
for (int i = 0; i < lines.length; i++) {
|
||||
if (lines[i].indexOf("@@") != -1) {
|
||||
StringBuffer sb = new StringBuffer(lines[i]);
|
||||
StringBuilder sb = new StringBuilder(lines[i]);
|
||||
int index = 0;
|
||||
while ((index = sb.indexOf("@@jvm_runtime@@")) != -1) {
|
||||
sb.replace(index, index + "@@jvm_runtime@@".length(),
|
||||
|
||||
@@ -791,15 +791,15 @@ public class JavaEditor extends Editor {
|
||||
// statement is already in there, but if the user has the import
|
||||
// commented out, then this will be a problem.
|
||||
String[] list = Base.packageListFromClassPath(jarPath);
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
buffer.append("import ");
|
||||
buffer.append(list[i]);
|
||||
buffer.append(".*;\n");
|
||||
sb.append("import ");
|
||||
sb.append(list[i]);
|
||||
sb.append(".*;\n");
|
||||
}
|
||||
buffer.append('\n');
|
||||
buffer.append(getText());
|
||||
setText(buffer.toString());
|
||||
sb.append('\n');
|
||||
sb.append(getText());
|
||||
setText(sb.toString());
|
||||
setSelection(0, 0); // scroll to start
|
||||
sketch.setModified(true);
|
||||
}
|
||||
|
||||
+10
-10
@@ -237,13 +237,13 @@ public class FileTextFieldTransferHandler extends TransferHandler {
|
||||
int nch;
|
||||
boolean lastWasCR = false;
|
||||
int last;
|
||||
StringBuffer sbuff = null;
|
||||
StringBuilder sb = null;
|
||||
|
||||
// Read in a block at a time, mapping \r\n to \n, as well as single
|
||||
// \r to \n.
|
||||
while ((nch = in.read(buff, 0, buff.length)) != -1) {
|
||||
if (sbuff == null) {
|
||||
sbuff = new StringBuffer(nch);
|
||||
if (sb == null) {
|
||||
sb = new StringBuilder(nch);
|
||||
}
|
||||
last = 0;
|
||||
for (int counter = 0; counter < nch; counter++) {
|
||||
@@ -251,7 +251,7 @@ public class FileTextFieldTransferHandler extends TransferHandler {
|
||||
case '\r':
|
||||
if (lastWasCR) {
|
||||
if (counter == 0) {
|
||||
sbuff.append('\n');
|
||||
sb.append('\n');
|
||||
} else {
|
||||
buff[counter - 1] = '\n';
|
||||
}
|
||||
@@ -262,7 +262,7 @@ public class FileTextFieldTransferHandler extends TransferHandler {
|
||||
case '\n':
|
||||
if (lastWasCR) {
|
||||
if (counter > (last + 1)) {
|
||||
sbuff.append(buff, last, counter - last - 1);
|
||||
sb.append(buff, last, counter - last - 1);
|
||||
}
|
||||
// else nothing to do, can skip \r, next write will
|
||||
// write \n
|
||||
@@ -273,7 +273,7 @@ public class FileTextFieldTransferHandler extends TransferHandler {
|
||||
default:
|
||||
if (lastWasCR) {
|
||||
if (counter == 0) {
|
||||
sbuff.append('\n');
|
||||
sb.append('\n');
|
||||
} else {
|
||||
buff[counter - 1] = '\n';
|
||||
}
|
||||
@@ -285,18 +285,18 @@ public class FileTextFieldTransferHandler extends TransferHandler {
|
||||
if (last < nch) {
|
||||
if (lastWasCR) {
|
||||
if (last < (nch - 1)) {
|
||||
sbuff.append(buff, last, nch - last - 1);
|
||||
sb.append(buff, last, nch - last - 1);
|
||||
}
|
||||
} else {
|
||||
sbuff.append(buff, last, nch - last);
|
||||
sb.append(buff, last, nch - last);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (lastWasCR) {
|
||||
sbuff.append('\n');
|
||||
sb.append('\n');
|
||||
}
|
||||
System.out.println("FileTextTransferHandler " + c.getSelectionStart() + ".." + c.getSelectionEnd());
|
||||
c.replaceSelection(sbuff != null ? sbuff.toString() : "");
|
||||
c.replaceSelection(sb != null ? sb.toString() : "");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5740,7 +5740,7 @@ public class PApplet extends Applet
|
||||
* // list is now "apple, bear, cat"</PRE>
|
||||
*/
|
||||
static public String join(String str[], String separator) {
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
StringBuilder buffer = new StringBuilder();
|
||||
for (int i = 0; i < str.length; i++) {
|
||||
if (i != 0) buffer.append(separator);
|
||||
buffer.append(str[i]);
|
||||
|
||||
@@ -67,8 +67,8 @@ public class PAppletMethods extends Task {
|
||||
// Looking good, let's do this!
|
||||
//ByteArrayOutputStream outBytes = new ByteArrayOutputStream();
|
||||
//PrintStream out = new PrintStream(outBytes, "UTF-8");
|
||||
StringBuffer out = new StringBuffer();
|
||||
StringBuffer content = new StringBuffer();
|
||||
StringBuilder out = new StringBuilder();
|
||||
StringBuilder content = new StringBuilder();
|
||||
|
||||
try{
|
||||
BufferedReader applet = createReader(appletFile);
|
||||
@@ -125,11 +125,11 @@ public class PAppletMethods extends Task {
|
||||
}
|
||||
|
||||
|
||||
private void process(StringBuffer out, File input) throws IOException {
|
||||
private void process(StringBuilder out, File input) throws IOException {
|
||||
BufferedReader in = createReader(input);
|
||||
int comments = 0;
|
||||
String line = null;
|
||||
StringBuffer commentBuffer = new StringBuffer();
|
||||
StringBuilder commentBuffer = new StringBuilder();
|
||||
|
||||
while ((line = in.readLine()) != null) {
|
||||
String decl = "";
|
||||
|
||||
@@ -8949,12 +8949,12 @@ public class PApplet extends Applet
|
||||
|
||||
|
||||
static public String join(String[] list, String separator) {
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < list.length; i++) {
|
||||
if (i != 0) buffer.append(separator);
|
||||
buffer.append(list[i]);
|
||||
if (i != 0) sb.append(separator);
|
||||
sb.append(list[i]);
|
||||
}
|
||||
return buffer.toString();
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ import java.awt.geom.*;
|
||||
import java.awt.image.*;
|
||||
import java.io.InputStream;
|
||||
import java.util.Arrays;
|
||||
import java.util.Hashtable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.zip.GZIPInputStream;
|
||||
|
||||
@@ -1754,7 +1754,7 @@ public class PGraphicsJava2D extends PGraphics {
|
||||
//if (font != null && (textFont.isStream() || hints[ENABLE_NATIVE_FONTS])) {
|
||||
if (font != null) {
|
||||
Map<TextAttribute, Object> map =
|
||||
new Hashtable<TextAttribute, Object>();
|
||||
new HashMap<TextAttribute, Object>();
|
||||
map.put(TextAttribute.SIZE, size);
|
||||
map.put(TextAttribute.KERNING,
|
||||
TextAttribute.KERNING_ON);
|
||||
|
||||
@@ -3,7 +3,8 @@ package processing.core;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Hashtable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* This class is not part of the Processing API and should not be used
|
||||
@@ -159,7 +160,7 @@ public class PShapeOBJ extends PShape {
|
||||
ArrayList<PVector> coords,
|
||||
ArrayList<PVector> normals,
|
||||
ArrayList<PVector> texcoords) {
|
||||
Hashtable<String, Integer> mtlTable = new Hashtable<String, Integer>();
|
||||
Map<String, Integer> mtlTable = new HashMap<String, Integer>();
|
||||
int mtlIdxCur = -1;
|
||||
boolean readv, readvn, readvt;
|
||||
try {
|
||||
@@ -321,7 +322,7 @@ public class PShapeOBJ extends PShape {
|
||||
static protected void parseMTL(PApplet parent, String path,
|
||||
BufferedReader reader,
|
||||
ArrayList<OBJMaterial> materials,
|
||||
Hashtable<String, Integer> materialsHash) {
|
||||
Map<String, Integer> materialsHash) {
|
||||
try {
|
||||
String line;
|
||||
OBJMaterial currentMtl = null;
|
||||
|
||||
@@ -503,7 +503,7 @@ public class PShapeSVG extends PShape {
|
||||
}
|
||||
char[] pathDataChars = pathData.toCharArray();
|
||||
|
||||
StringBuffer pathBuffer = new StringBuffer();
|
||||
StringBuilder pathBuffer = new StringBuilder();
|
||||
boolean lastSeparate = false;
|
||||
|
||||
for (int i = 0; i < pathDataChars.length; i++) {
|
||||
|
||||
@@ -1224,7 +1224,7 @@ public class JSONArray {
|
||||
*/
|
||||
public String join(String separator) {
|
||||
int len = this.size();
|
||||
StringBuffer sb = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
for (int i = 0; i < len; i += 1) {
|
||||
if (i > 0) {
|
||||
|
||||
@@ -249,7 +249,7 @@ class JSONTokener {
|
||||
*/
|
||||
public String nextString(char quote) {
|
||||
char c;
|
||||
StringBuffer sb = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (;;) {
|
||||
c = this.next();
|
||||
switch (c) {
|
||||
@@ -305,7 +305,7 @@ class JSONTokener {
|
||||
* @return A string.
|
||||
*/
|
||||
public String nextTo(char delimiter) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (;;) {
|
||||
char c = this.next();
|
||||
if (c == delimiter || c == 0 || c == '\n' || c == '\r') {
|
||||
@@ -327,7 +327,7 @@ class JSONTokener {
|
||||
*/
|
||||
public String nextTo(String delimiters) {
|
||||
char c;
|
||||
StringBuffer sb = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (;;) {
|
||||
c = this.next();
|
||||
if (delimiters.indexOf(c) >= 0 || c == 0 ||
|
||||
@@ -374,7 +374,7 @@ class JSONTokener {
|
||||
* formatting character.
|
||||
*/
|
||||
|
||||
StringBuffer sb = new StringBuffer();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
while (c >= ' ' && ",:]}/\\\"[{;=#".indexOf(c) < 0) {
|
||||
sb.append(c);
|
||||
c = this.next();
|
||||
|
||||
@@ -711,7 +711,7 @@ public class Table {
|
||||
cellData = textpContent; // nothing fancy, the text is in the text:p element
|
||||
} else {
|
||||
XML[] textpKids = textp.getChildren();
|
||||
StringBuffer cellBuffer = new StringBuffer();
|
||||
StringBuilder cellBuffer = new StringBuilder();
|
||||
for (XML kid : textpKids) {
|
||||
String kidName = kid.getName();
|
||||
if (kidName == null) {
|
||||
@@ -770,7 +770,7 @@ public class Table {
|
||||
}
|
||||
|
||||
|
||||
private void odsAppendNotNull(XML kid, StringBuffer buffer) {
|
||||
private void odsAppendNotNull(XML kid, StringBuilder buffer) {
|
||||
String content = kid.getContent();
|
||||
if (content != null) {
|
||||
buffer.append(content);
|
||||
|
||||
@@ -231,6 +231,7 @@ HashMap KEYWORD5 HashMap
|
||||
PrintWriter KEYWORD5 PrintWriter
|
||||
String KEYWORD5 String
|
||||
StringBuffer KEYWORD5
|
||||
StringBuilder KEYWORD5
|
||||
Thread KEYWORD5
|
||||
boolean KEYWORD5 boolean
|
||||
byte KEYWORD5 byte
|
||||
|
||||
@@ -231,6 +231,7 @@ HashMap KEYWORD5 HashMap
|
||||
PrintWriter KEYWORD5 PrintWriter
|
||||
String KEYWORD5 String
|
||||
StringBuffer KEYWORD5
|
||||
StringBuilder KEYWORD5
|
||||
Thread KEYWORD5
|
||||
boolean KEYWORD5 boolean
|
||||
byte KEYWORD5 byte
|
||||
|
||||
@@ -342,7 +342,7 @@ public class ASTGenerator {
|
||||
try {
|
||||
factory = new ClassPathFactory();
|
||||
|
||||
StringBuffer tehPath = new StringBuffer(System
|
||||
StringBuilder tehPath = new StringBuilder(System
|
||||
.getProperty("java.class.path"));
|
||||
if(Base.isMacOS()){
|
||||
// rt.jar equivalent on OS X is JAVA_HOME/bundle/Classes/classes.jar
|
||||
@@ -1203,7 +1203,7 @@ public class ASTGenerator {
|
||||
continue;
|
||||
}
|
||||
|
||||
StringBuffer label = new StringBuffer(method.getName() + "(");
|
||||
StringBuilder label = new StringBuilder(method.getName() + "(");
|
||||
for (int i = 0; i < method.getParameterTypes().length; i++) {
|
||||
label.append(method.getParameterTypes()[i].getSimpleName());
|
||||
if (i < method.getParameterTypes().length - 1)
|
||||
@@ -1576,7 +1576,7 @@ public class ASTGenerator {
|
||||
protected String getLabelIfType(ASTNodeWrapper node, SimpleName sn){
|
||||
ASTNode current = node.getNode().getParent();
|
||||
String type = "";
|
||||
StringBuffer fullName = new StringBuffer();
|
||||
StringBuilder fullName = new StringBuilder();
|
||||
Stack<String> parents = new Stack<String>();
|
||||
String simpleName = (sn == null) ? node.getNode().toString() : sn.toString();
|
||||
switch (node.getNodeType()) {
|
||||
|
||||
@@ -457,11 +457,11 @@ public class CompilationChecker {
|
||||
IProblem problem = prob[i];
|
||||
if (problem == null)
|
||||
continue;
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
buffer.append(problem.getMessage());
|
||||
buffer.append(" | line: ");
|
||||
buffer.append(problem.getSourceLineNumber());
|
||||
String msg = buffer.toString();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(problem.getMessage());
|
||||
sb.append(" | line: ");
|
||||
sb.append(problem.getSourceLineNumber());
|
||||
String msg = sb.toString();
|
||||
if (problem.isError()) {
|
||||
error = true;
|
||||
msg = "Error: " + msg;
|
||||
|
||||
@@ -83,8 +83,8 @@ public class Compiler extends processing.mode.java.Compiler {
|
||||
//PApplet.println(command);
|
||||
|
||||
try {
|
||||
// Load errors into a local StringBuffer
|
||||
final StringBuffer errorBuffer = new StringBuffer();
|
||||
// Load errors into a local StringBuilder
|
||||
final StringBuilder errorBuffer = new StringBuilder();
|
||||
|
||||
// Create single method dummy writer class to slurp errors from ecj
|
||||
Writer internalWriter = new Writer() {
|
||||
|
||||
@@ -29,8 +29,8 @@ public class CompletionCandidate implements Comparable<CompletionCandidate>{
|
||||
public CompletionCandidate(Method method) {
|
||||
method.getDeclaringClass().getName();
|
||||
elementName = method.getName();
|
||||
StringBuffer label = new StringBuffer(method.getName() + "(");
|
||||
StringBuffer cstr = new StringBuffer(method.getName() + "(");
|
||||
StringBuilder label = new StringBuilder(method.getName() + "(");
|
||||
StringBuilder cstr = new StringBuilder(method.getName() + "(");
|
||||
for (int i = 0; i < method.getParameterTypes().length; i++) {
|
||||
label.append(method.getParameterTypes()[i].getSimpleName());
|
||||
if (i < method.getParameterTypes().length - 1) {
|
||||
@@ -84,8 +84,8 @@ public class CompletionCandidate implements Comparable<CompletionCandidate>{
|
||||
type = LOCAL_METHOD;
|
||||
List<ASTNode> params = (List<ASTNode>) method
|
||||
.getStructuralProperty(MethodDeclaration.PARAMETERS_PROPERTY);
|
||||
StringBuffer label = new StringBuffer(elementName + "(");
|
||||
StringBuffer cstr = new StringBuffer(method.getName() + "(");
|
||||
StringBuilder label = new StringBuilder(elementName + "(");
|
||||
StringBuilder cstr = new StringBuilder(method.getName() + "(");
|
||||
for (int i = 0; i < params.size(); i++) {
|
||||
label.append(params.get(i).toString());
|
||||
if (i < params.size() - 1) {
|
||||
@@ -177,8 +177,8 @@ public class CompletionCandidate implements Comparable<CompletionCandidate>{
|
||||
MethodDeclaration method = (MethodDeclaration)wrappedObject;
|
||||
List<ASTNode> params = (List<ASTNode>) method
|
||||
.getStructuralProperty(MethodDeclaration.PARAMETERS_PROPERTY);
|
||||
StringBuffer label = new StringBuffer(elementName + "(");
|
||||
StringBuffer cstr = new StringBuffer(method.getName() + "(");
|
||||
StringBuilder label = new StringBuilder(elementName + "(");
|
||||
StringBuilder cstr = new StringBuilder(method.getName() + "(");
|
||||
for (int i = 0; i < params.size(); i++) {
|
||||
label.append(params.get(i).toString());
|
||||
if (i < params.size() - 1) {
|
||||
@@ -198,8 +198,8 @@ public class CompletionCandidate implements Comparable<CompletionCandidate>{
|
||||
}
|
||||
else if (wrappedObject instanceof Method) {
|
||||
Method method = (Method)wrappedObject;
|
||||
StringBuffer label = new StringBuffer(method.getName() + "(");
|
||||
StringBuffer cstr = new StringBuffer(method.getName() + "(");
|
||||
StringBuilder label = new StringBuilder(method.getName() + "(");
|
||||
StringBuilder cstr = new StringBuilder(method.getName() + "(");
|
||||
for (int i = 0; i < method.getParameterTypes().length; i++) {
|
||||
label.append(method.getParameterTypes()[i].getSimpleName());
|
||||
if (i < method.getParameterTypes().length - 1) {
|
||||
|
||||
@@ -381,32 +381,32 @@ public class DebugEditor extends JavaEditor implements ActionListener {
|
||||
return;
|
||||
try {
|
||||
System.out.println("Writing errors");
|
||||
StringBuffer sbuff = new StringBuffer();
|
||||
sbuff.append("Sketch: " + getSketch().getFolder() + ", "
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("Sketch: " + getSketch().getFolder() + ", "
|
||||
+ new java.sql.Timestamp(new java.util.Date().getTime())
|
||||
+ "\nComma in error msg is substituted with ^ symbol\nFor separating arguments in error args | symbol is used\n");
|
||||
sbuff.append("ERROR TYPE, ERROR ARGS, ERROR MSG\n");
|
||||
sb.append("ERROR TYPE, ERROR ARGS, ERROR MSG\n");
|
||||
for (String errMsg : errorCheckerService.tempErrorLog.keySet()) {
|
||||
IProblem ip = errorCheckerService.tempErrorLog.get(errMsg);
|
||||
if(ip != null){
|
||||
sbuff.append(ErrorMessageSimplifier.getIDName(ip.getID()));
|
||||
sbuff.append(',');
|
||||
sbuff.append("{");
|
||||
sb.append(ErrorMessageSimplifier.getIDName(ip.getID()));
|
||||
sb.append(',');
|
||||
sb.append("{");
|
||||
for (int i = 0; i < ip.getArguments().length; i++) {
|
||||
sbuff.append(ip.getArguments()[i]);
|
||||
sb.append(ip.getArguments()[i]);
|
||||
if(i < ip.getArguments().length - 1)
|
||||
sbuff.append("| ");
|
||||
sb.append("| ");
|
||||
}
|
||||
sbuff.append("}");
|
||||
sbuff.append(',');
|
||||
sbuff.append(ip.getMessage().replace(',', '^'));
|
||||
sbuff.append("\n");
|
||||
sb.append("}");
|
||||
sb.append(',');
|
||||
sb.append(ip.getMessage().replace(',', '^'));
|
||||
sb.append("\n");
|
||||
}
|
||||
}
|
||||
System.out.println(sbuff);
|
||||
System.out.println(sb);
|
||||
File opFile = new File(getSketch().getFolder(), "ErrorLogs"
|
||||
+ File.separator + "ErrorLog_" + System.currentTimeMillis() + ".csv");
|
||||
PApplet.saveStream(opFile, new ByteArrayInputStream(sbuff.toString()
|
||||
PApplet.saveStream(opFile, new ByteArrayInputStream(sb.toString()
|
||||
.getBytes(Charset.defaultCharset())));
|
||||
} catch (Exception e) {
|
||||
System.err.println("Failed to save log file for sketch " + getSketch().getName());
|
||||
|
||||
@@ -1288,7 +1288,7 @@ public class ErrorCheckerService implements Runnable{
|
||||
|
||||
programImports = new ArrayList<ImportStatement>();
|
||||
|
||||
StringBuffer rawCode = new StringBuffer();
|
||||
StringBuilder rawCode = new StringBuilder();
|
||||
|
||||
try {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user