Index: threaddemo/apps/index/Index.java
===================================================================
RCS file: /cvs/performance/threaddemo/src/threaddemo/apps/index/Index.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- threaddemo/apps/index/Index.java 19 Aug 2003 21:39:25 -0000 1.3
+++ threaddemo/apps/index/Index.java 16 Dec 2005 18:17:59 -0000 1.4
@@ -46,7 +46,7 @@
* Values are occurrence counts.
*
Must be called with lock held, and result may only be accessed with it held.
*/
- Map/**/ getData();
+ Map getData();
/**
* Add a listener to changes in the data.
Index: threaddemo/apps/index/IndexApp.java
===================================================================
RCS file: /cvs/performance/threaddemo/src/threaddemo/apps/index/IndexApp.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- threaddemo/apps/index/IndexApp.java 19 Aug 2003 21:39:25 -0000 1.3
+++ threaddemo/apps/index/IndexApp.java 16 Dec 2005 18:17:59 -0000 1.4
@@ -60,9 +68,9 @@
}
private void refreshTable() {
- final SortedMap/**/ data = (SortedMap)index.getLock().read(new LockAction() {
- public Object run() {
- return new TreeMap(index.getData());
+ final SortedMap data = index.getLock().read(new LockAction>() {
+ public SortedMap run() {
+ return new TreeMap(index.getData());
}
});
SwingUtilities.invokeLater(new Runnable() {
@@ -72,9 +80,7 @@
for (int i = 0; i < rows; i++) {
tableModel.removeRow(0);
}
- Iterator it = data.entrySet().iterator();
- while (it.hasNext()) {
- Map.Entry entry = (Map.Entry)it.next();
+ for (Map.Entry entry : data.entrySet()) {
tableModel.addRow(new Object[] {
entry.getKey(),
entry.getValue(),
Index: threaddemo/apps/index/IndexImpl.java
===================================================================
RCS file: /cvs/performance/threaddemo/src/threaddemo/apps/index/IndexImpl.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- threaddemo/apps/index/IndexImpl.java 21 Aug 2003 22:28:10 -0000 1.5
+++ threaddemo/apps/index/IndexImpl.java 16 Dec 2005 18:17:59 -0000 1.6
@@ -37,12 +48,12 @@
private static final Logger logger = Logger.getLogger(IndexImpl.class.getName());
private final Phadhail root;
- private final List/**/ listeners = new ArrayList();
+ private final List listeners = new ArrayList();
private boolean running = false;
- private final LinkedList/**/ toProcess = new LinkedList();
- private final Map/*>*/ processed = new /*Weak*/HashMap();
- private final Map/**/ domProviders2Phadhails = new WeakHashMap();
- private final Map/**/ phadhails2Parents = new WeakHashMap();
+ private final LinkedList toProcess = new LinkedList();
+ private final Map> processed = new /*Weak*/HashMap>();
+ private final Map domProviders2Phadhails = new WeakHashMap();
+ private final Map phadhails2Parents = new WeakHashMap();
public IndexImpl(Phadhail root) {
this.root = root;
@@ -52,13 +63,13 @@
return root.lock();
}
- public Map getData() {
+ public Map getData() {
assert getLock().canRead();
- Map/**/ data = (Map)processed.get(root);
+ Map data = processed.get(root);
if (data != null) {
return Collections.unmodifiableMap(data);
} else {
- return Collections.EMPTY_MAP;
+ return Collections.emptyMap();
}
}
@@ -79,16 +90,16 @@
}
private void fireChange() {
- ChangeListener[] ls;
+ List ls;
synchronized (listeners) {
if (listeners.isEmpty()) {
return;
}
- ls = (ChangeListener[])listeners.toArray(new ChangeListener[listeners.size()]);
+ ls = new ArrayList(listeners);
}
ChangeEvent ev = new ChangeEvent(this);
- for (int i = 0; i < ls.length; i++) {
- ls[i].stateChanged(ev);
+ for (ChangeListener l : ls) {
+ l.stateChanged(ev);
}
}
@@ -124,7 +135,7 @@
assert false : e;
}
}
- next = (Phadhail)toProcess.removeFirst();
+ next = toProcess.removeFirst();
}
process(next);
}
@@ -141,7 +152,7 @@
processChildren(ph);
} else {
// Data, maybe.
- final Map computed = compute(ph);
+ final Map computed = compute(ph);
getLock().writeLater(new Runnable() {
public void run() {
processed.put(ph, computed);
@@ -156,10 +167,8 @@
}
private void processChildren(Phadhail ph) {
- Iterator/**/ kids = ph.getChildren().iterator();
synchronized (toProcess) {
- while (kids.hasNext()) {
- Phadhail kid = (Phadhail)kids.next();
+ for (Phadhail kid : ph.getChildren()) {
phadhails2Parents.put(kid, ph);
if (!toProcess.contains(kid)) {
toProcess.add(kid);
@@ -173,40 +182,33 @@
}
private int count;
- private Map compute(Phadhail ph) {
+ private Map compute(Phadhail ph) {
assert getLock().canRead();
assert !ph.hasChildren();
- logger.log(Level.FINER, "Computing index for {0} [#{1}]", new Object[] {ph, new Integer(++count)});
- DomProvider p = (DomProvider)domProviders2Phadhails.get(ph);
+ logger.log(Level.FINER, "Computing index for {0} [#{1}]", new Object[] {ph, ++count});
+ // XXX technically should listen to lookup changes...
+ DomProvider p = (DomProvider) PhadhailLookups.getLookup(ph).lookup(DomProvider.class);
if (p == null) {
- // XXX technically should listen to lookup changes...
- p = (DomProvider)PhadhailLookups.getLookup(ph).lookup(DomProvider.class);
- if (p == null) {
- logger.finer("no DomProvider here");
- return Collections.EMPTY_MAP;
- }
- domProviders2Phadhails.put(p, ph);
+ logger.finer("no DomProvider here");
+ return Collections.emptyMap();
}
+ domProviders2Phadhails.put(p, ph);
Document d;
try {
d = p.getDocument();
} catch (IOException e) {
logger.log(Level.FINE, "Parsing failed for {0}: {1}", new Object[] {ph.getName(), e.getMessage()});
- return Collections.EMPTY_MAP;
+ return Collections.emptyMap();
}
// Wait till after p.getDocument(), since that will fire stateChanged
// the first time it is called (not ready -> ready)
p.addChangeListener(WeakListeners.change(this, p));
- Map/**/ m = new HashMap();
+ Map m = new HashMap();
NodeList l = d.getElementsByTagName("*");
for (int i = 0; i < l.getLength(); i++) {
String name = ((Element)l.item(i)).getTagName();
- Integer x = (Integer)m.get(name);
- if (x == null) {
- m.put(name, new Integer(1));
- } else {
- m.put(name, new Integer(x.intValue() + 1));
- }
+ Integer old = m.get(name);
+ m.put(name, old != null ? old + 1 : 1);
}
logger.log(Level.FINER, "Parse succeeded for {0}", ph);
logger.log(Level.FINEST, "Parse results: {0}", m);
@@ -215,7 +217,7 @@
private void bubble(Phadhail ph) {
assert getLock().canWrite();
- logger.log(Level.FINER, "bubble: {0} data size: {1}", new Object[] {ph, new Integer(processed.size())});
+ logger.log(Level.FINER, "bubble: {0} data size: {1}", new Object[] {ph, processed.size()});
logger.log(Level.FINEST, "bubble: {0} data: {1}", new Object[] {ph, processed});
if (ph == root) {
getLock().read(new Runnable() {
@@ -227,23 +229,18 @@
Phadhail parent = (Phadhail)phadhails2Parents.get(ph);
assert parent != null : ph;
assert parent.hasChildren();
- Iterator/**/ kids = parent.getChildren().iterator();
- Map/**/ recalc = new HashMap();
- while (kids.hasNext()) {
- Phadhail kid = (Phadhail)kids.next();
- Map/**/ subdata = (Map)processed.get(kid);
+ Map recalc = new HashMap();
+ for (Phadhail kid : parent.getChildren()) {
+ Map subdata = processed.get(kid);
if (subdata == null) {
// OK, kid is simply not yet calculated, will bubble changes later.
continue;
}
- Iterator it = subdata.entrySet().iterator();
- while (it.hasNext()) {
- Map.Entry e = (Map.Entry)it.next();
- String name = (String)e.getKey();
- Integer x1 = (Integer)e.getValue();
+ for (Map.Entry e : subdata.entrySet()) {
+ String name = e.getKey();
+ int x1 = e.getValue();
if (recalc.containsKey(name)) {
- Integer x2 = (Integer)recalc.get(name);
- recalc.put(name, new Integer(x1.intValue() + x2.intValue()));
+ recalc.put(name, x1 + recalc.get(name));
} else {
recalc.put(name, x1);
}
@@ -280,7 +277,7 @@
public void stateChanged(ChangeEvent e) {
DomProvider p = (DomProvider)e.getSource();
- Phadhail ph = (Phadhail)domProviders2Phadhails.get(p);
+ Phadhail ph = domProviders2Phadhails.get(p);
assert ph != null;
logger.log(Level.FINER, "stateChanged: {0}", ph);
invalidate(ph);
Index: threaddemo/apps/refactor/Refactor.java
===================================================================
RCS file: /cvs/performance/threaddemo/src/threaddemo/apps/refactor/Refactor.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- threaddemo/apps/refactor/Refactor.java 21 Aug 2003 22:35:16 -0000 1.6
+++ threaddemo/apps/refactor/Refactor.java 16 Dec 2005 18:17:59 -0000 1.7
@@ -49,7 +63,7 @@
* @param app owner app, or null
*/
public static void run(final Phadhail root, Frame app) {
- final Map/**/ data = collectData(root);
+ final Map data = collectData(root);
final BoundedRangeModel progress = new DefaultBoundedRangeModel();
progress.setMinimum(0);
progress.setMaximum(data.size());
@@ -75,18 +89,21 @@
dialog.getContentPane().add(cancel);
dialog.pack();
dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
- dialog.show();
+ dialog.setVisible(true);
new Thread(new Runnable() {
public void run() {
- final Iterator/*>*/ it = data.entrySet().iterator();
- while (it.hasNext() && !cancelled[0]) {
- Map.Entry e = (Map.Entry)it.next();
+ Iterator> it = data.entrySet().iterator();
+ while (it.hasNext()) {
+ Map.Entry e = it.next();
+ if (cancelled[0]) {
+ break;
+ }
// Avoid keeping a reference to the old data, since we have
// cached DomProvider's and such heavyweight stuff open on them:
it.remove();
- final Phadhail ph = (Phadhail)e.getKey();
+ final Phadhail ph = e.getKey();
logger.log(Level.FINER, "Refactoring {0}", ph);
- final DomProvider p = (DomProvider)e.getValue();
+ final DomProvider p = e.getValue();
ph.lock().read(new Runnable() {
public void run() {
final String path = ph.getPath();
@@ -125,18 +142,17 @@
}, "Refactoring").start();
}
- private static Map/**/ collectData(final Phadhail root) {
- return (Map)root.lock().read(new LockAction() {
- private final Map data = new HashMap();
- public Object run() {
+ private static Map collectData(final Phadhail root) {
+ return root.lock().read(new LockAction