Merge pull request #2863 from federicobond/migrate-unsynchronized

Migrate to unsynchronized data structures
This commit is contained in:
Ben Fry
2014-09-14 17:40:53 -04:00
30 changed files with 178 additions and 195 deletions
@@ -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)
+20 -27
View File
@@ -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;
}
}
+10 -10
View File
@@ -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();
}
+8 -8
View File
@@ -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();
+1 -12
View File
@@ -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("&lt;");
} 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) {
+2 -2
View File
@@ -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() {
+3 -3
View File
@@ -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(),
+7 -7
View File
@@ -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);
}
@@ -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() : "");
}
}
+1 -1
View File
@@ -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]);
+4 -4
View File
@@ -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 = "";
+4 -4
View File
@@ -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);
+4 -3
View File
@@ -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;
+1 -1
View File
@@ -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++) {
+1 -1
View File
@@ -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) {
+4 -4
View File
@@ -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();
+2 -2
View File
@@ -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);
+1
View File
@@ -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
+1
View File
@@ -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 {