--- old/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java 2014-02-05 11:39:23.872597105 -0800
+++ new/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java 2014-02-05 11:39:23.675930429 -0800
@@ -52,6 +52,7 @@
import java.awt.color.ICC_Profile;
import java.awt.color.ICC_ColorSpace;
import java.awt.color.ColorSpace;
+import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.Point;
@@ -69,7 +70,7 @@
* markerSequence
is modified. This is used by reset
* to restore the original state.
*/
- private List resetSequence = null;
+ private List resetSequence = null;
/**
* Set to true
when reading a thumbnail stored as
@@ -100,7 +101,7 @@
* list is package visible so that the writer can access it.
* @see #MarkerSegment
*/
- List markerSequence = new ArrayList();
+ List markerSequence = new ArrayList<>();
/**
* Indicates whether this object represents stream or image
@@ -645,9 +646,9 @@
* with the given tag, or null if none is found.
*/
MarkerSegment findMarkerSegment(int tag) {
- Iterator iter = markerSequence.iterator();
+ Iterator iter = markerSequence.iterator();
while (iter.hasNext()) {
- MarkerSegment seg = (MarkerSegment)iter.next();
+ MarkerSegment seg = iter.next();
if (seg.tag == tag) {
return seg;
}
@@ -659,19 +660,19 @@
* Returns the first or last MarkerSegment object in the list
* of the given class, or null if none is found.
*/
- MarkerSegment findMarkerSegment(Class cls, boolean first) {
+ MarkerSegment findMarkerSegment(Class extends MarkerSegment> cls, boolean first) {
if (first) {
- Iterator iter = markerSequence.iterator();
+ Iterator iter = markerSequence.iterator();
while (iter.hasNext()) {
- MarkerSegment seg = (MarkerSegment)iter.next();
+ MarkerSegment seg = iter.next();
if (cls.isInstance(seg)) {
return seg;
}
}
} else {
- ListIterator iter = markerSequence.listIterator(markerSequence.size());
+ ListIterator iter = markerSequence.listIterator(markerSequence.size());
while (iter.hasPrevious()) {
- MarkerSegment seg = (MarkerSegment)iter.previous();
+ MarkerSegment seg = iter.previous();
if (cls.isInstance(seg)) {
return seg;
}
@@ -684,19 +685,19 @@
* Returns the index of the first or last MarkerSegment in the list
* of the given class, or -1 if none is found.
*/
- private int findMarkerSegmentPosition(Class cls, boolean first) {
+ private int findMarkerSegmentPosition(Class extends MarkerSegment> cls, boolean first) {
if (first) {
- ListIterator iter = markerSequence.listIterator();
+ ListIterator iter = markerSequence.listIterator();
for (int i = 0; iter.hasNext(); i++) {
- MarkerSegment seg = (MarkerSegment)iter.next();
+ MarkerSegment seg = iter.next();
if (cls.isInstance(seg)) {
return i;
}
}
} else {
- ListIterator iter = markerSequence.listIterator(markerSequence.size());
+ ListIterator iter = markerSequence.listIterator(markerSequence.size());
for (int i = markerSequence.size()-1; iter.hasPrevious(); i--) {
- MarkerSegment seg = (MarkerSegment)iter.previous();
+ MarkerSegment seg = iter.previous();
if (cls.isInstance(seg)) {
return i;
}
@@ -706,9 +707,9 @@
}
private int findLastUnknownMarkerSegmentPosition() {
- ListIterator iter = markerSequence.listIterator(markerSequence.size());
+ ListIterator iter = markerSequence.listIterator(markerSequence.size());
for (int i = markerSequence.size()-1; iter.hasPrevious(); i--) {
- MarkerSegment seg = (MarkerSegment)iter.previous();
+ MarkerSegment seg = iter.previous();
if (seg.unknown == true) {
return i;
}
@@ -733,14 +734,14 @@
/**
* Returns a deep copy of the current marker sequence.
*/
- private List cloneSequence() {
+ private List cloneSequence() {
if (markerSequence == null) {
return null;
}
- List retval = new ArrayList(markerSequence.size());
- Iterator iter = markerSequence.iterator();
+ List retval = new ArrayList<>(markerSequence.size());
+ Iterator iter = markerSequence.iterator();
while(iter.hasNext()) {
- MarkerSegment seg = (MarkerSegment)iter.next();
+ MarkerSegment seg = iter.next();
retval.add(seg.clone());
}
@@ -774,7 +775,7 @@
IIOMetadataNode getNativeTree() {
IIOMetadataNode root;
IIOMetadataNode top;
- Iterator iter = markerSequence.iterator();
+ Iterator iter = markerSequence.iterator();
if (isStream) {
root = new IIOMetadataNode(JPEG.nativeStreamMetadataFormatName);
top = root;
@@ -797,7 +798,7 @@
top = sequence;
}
while(iter.hasNext()) {
- MarkerSegment seg = (MarkerSegment) iter.next();
+ MarkerSegment seg = iter.next();
top.appendChild(seg.getNativeNode());
}
return root;
@@ -961,9 +962,9 @@
// NumProgressiveScans - count sos segments
int sosCount = 0;
- Iterator iter = markerSequence.iterator();
+ Iterator iter = markerSequence.iterator();
while (iter.hasNext()) {
- MarkerSegment ms = (MarkerSegment) iter.next();
+ MarkerSegment ms = iter.next();
if (ms.tag == JPEG.SOS) {
sosCount++;
}
@@ -1028,9 +1029,9 @@
// Add a text entry for each COM Marker Segment
if (findMarkerSegment(JPEG.COM) != null) {
text = new IIOMetadataNode("Text");
- Iterator iter = markerSequence.iterator();
+ Iterator iter = markerSequence.iterator();
while (iter.hasNext()) {
- MarkerSegment seg = (MarkerSegment) iter.next();
+ MarkerSegment seg = iter.next();
if (seg.tag == JPEG.COM) {
COMMarkerSegment com = (COMMarkerSegment) seg;
IIOMetadataNode entry = new IIOMetadataNode("TextEntry");
@@ -1068,7 +1069,7 @@
if (root == null) {
throw new IllegalArgumentException("null root!");
}
- List copy = null;
+ List copy = null;
if (resetSequence == null) {
resetSequence = cloneSequence(); // Deep copy
copy = resetSequence; // Avoid cloning twice
@@ -1181,12 +1182,12 @@
*/
private void mergeDQTNode(Node node) throws IIOInvalidTreeException {
// First collect any existing DQT nodes into a local list
- ArrayList oldDQTs = new ArrayList();
- Iterator iter = markerSequence.iterator();
+ ArrayList oldDQTs = new ArrayList<>();
+ Iterator iter = markerSequence.iterator();
while (iter.hasNext()) {
- MarkerSegment seg = (MarkerSegment) iter.next();
+ MarkerSegment seg = iter.next();
if (seg instanceof DQTMarkerSegment) {
- oldDQTs.add(seg);
+ oldDQTs.add((DQTMarkerSegment) seg);
}
}
if (!oldDQTs.isEmpty()) {
@@ -1201,10 +1202,9 @@
DQTMarkerSegment dqt = null;
int tableIndex = -1;
for (int j = 0; j < oldDQTs.size(); j++) {
- DQTMarkerSegment testDQT = (DQTMarkerSegment) oldDQTs.get(j);
+ DQTMarkerSegment testDQT = oldDQTs.get(j);
for (int k = 0; k < testDQT.tables.size(); k++) {
- DQTMarkerSegment.Qtable testTable =
- (DQTMarkerSegment.Qtable) testDQT.tables.get(k);
+ DQTMarkerSegment.Qtable testTable = testDQT.tables.get(k);
if (childID == testTable.tableID) {
dqt = testDQT;
tableIndex = k;
@@ -1216,7 +1216,7 @@
if (dqt != null) {
dqt.tables.set(tableIndex, dqt.getQtableFromNode(child));
} else {
- dqt = (DQTMarkerSegment) oldDQTs.get(oldDQTs.size()-1);
+ dqt = oldDQTs.get(oldDQTs.size()-1);
dqt.tables.add(dqt.getQtableFromNode(child));
}
}
@@ -1257,12 +1257,12 @@
*/
private void mergeDHTNode(Node node) throws IIOInvalidTreeException {
// First collect any existing DQT nodes into a local list
- ArrayList oldDHTs = new ArrayList();
- Iterator iter = markerSequence.iterator();
+ ArrayList oldDHTs = new ArrayList<>();
+ Iterator iter = markerSequence.iterator();
while (iter.hasNext()) {
- MarkerSegment seg = (MarkerSegment) iter.next();
+ MarkerSegment seg = iter.next();
if (seg instanceof DHTMarkerSegment) {
- oldDHTs.add(seg);
+ oldDHTs.add((DHTMarkerSegment) seg);
}
}
if (!oldDHTs.isEmpty()) {
@@ -1283,10 +1283,9 @@
DHTMarkerSegment dht = null;
int tableIndex = -1;
for (int j = 0; j < oldDHTs.size(); j++) {
- DHTMarkerSegment testDHT = (DHTMarkerSegment) oldDHTs.get(j);
+ DHTMarkerSegment testDHT = oldDHTs.get(j);
for (int k = 0; k < testDHT.tables.size(); k++) {
- DHTMarkerSegment.Htable testTable =
- (DHTMarkerSegment.Htable) testDHT.tables.get(k);
+ DHTMarkerSegment.Htable testTable = testDHT.tables.get(k);
if ((childID == testTable.tableID) &&
(childClass == testTable.tableClass)) {
dht = testDHT;
@@ -1299,7 +1298,7 @@
if (dht != null) {
dht.tables.set(tableIndex, dht.getHtableFromNode(child));
} else {
- dht = (DHTMarkerSegment) oldDHTs.get(oldDHTs.size()-1);
+ dht = oldDHTs.get(oldDHTs.size()-1);
dht.tables.add(dht.getHtableFromNode(child));
}
}
@@ -1735,8 +1734,8 @@
}
if (idsDiffer) {
// update the ids in each SOS marker segment
- for (Iterator iter = markerSequence.iterator(); iter.hasNext();) {
- MarkerSegment seg = (MarkerSegment) iter.next();
+ for (Iterator iter = markerSequence.iterator(); iter.hasNext();) {
+ MarkerSegment seg = iter.next();
if (seg instanceof SOSMarkerSegment) {
SOSMarkerSegment target = (SOSMarkerSegment) seg;
for (int i = 0; i < target.componentSpecs.length; i++) {
@@ -1788,11 +1787,11 @@
}
if (updateQtables) {
- List tableSegments = new ArrayList();
- for (Iterator iter = markerSequence.iterator(); iter.hasNext();) {
- MarkerSegment seg = (MarkerSegment) iter.next();
+ List tableSegments = new ArrayList<>();
+ for (Iterator iter = markerSequence.iterator(); iter.hasNext();) {
+ MarkerSegment seg = iter.next();
if (seg instanceof DQTMarkerSegment) {
- tableSegments.add(seg);
+ tableSegments.add((DQTMarkerSegment) seg);
}
}
// If there are no tables, don't add them, as the metadata encodes an
@@ -1806,12 +1805,11 @@
// Find the table with selector 1.
boolean found = false;
- for (Iterator iter = tableSegments.iterator(); iter.hasNext();) {
- DQTMarkerSegment testdqt = (DQTMarkerSegment) iter.next();
- for (Iterator tabiter = testdqt.tables.iterator();
+ for (Iterator iter = tableSegments.iterator(); iter.hasNext();) {
+ DQTMarkerSegment testdqt = iter.next();
+ for (Iterator tabiter = testdqt.tables.iterator();
tabiter.hasNext();) {
- DQTMarkerSegment.Qtable tab =
- (DQTMarkerSegment.Qtable) tabiter.next();
+ DQTMarkerSegment.Qtable tab = tabiter.next();
if (tab.tableID == 1) {
found = true;
}
@@ -1820,12 +1818,11 @@
if (!found) {
// find the table with selector 0. There should be one.
DQTMarkerSegment.Qtable table0 = null;
- for (Iterator iter = tableSegments.iterator(); iter.hasNext();) {
- DQTMarkerSegment testdqt = (DQTMarkerSegment) iter.next();
- for (Iterator tabiter = testdqt.tables.iterator();
+ for (Iterator iter = tableSegments.iterator(); iter.hasNext();) {
+ DQTMarkerSegment testdqt = iter.next();
+ for (Iterator tabiter = testdqt.tables.iterator();
tabiter.hasNext();) {
- DQTMarkerSegment.Qtable tab =
- (DQTMarkerSegment.Qtable) tabiter.next();
+ DQTMarkerSegment.Qtable tab = tabiter.next();
if (tab.tableID == 0) {
table0 = tab;
}
@@ -1835,19 +1832,18 @@
// Assuming that the table with id 0 is a luminance table,
// compute a new chrominance table of the same quality and
// add it to the last DQT segment
- DQTMarkerSegment dqt =
- (DQTMarkerSegment) tableSegments.get(tableSegments.size()-1);
+ DQTMarkerSegment dqt = tableSegments.get(tableSegments.size()-1);
dqt.tables.add(dqt.getChromaForLuma(table0));
}
}
}
if (updateHtables) {
- List tableSegments = new ArrayList();
- for (Iterator iter = markerSequence.iterator(); iter.hasNext();) {
- MarkerSegment seg = (MarkerSegment) iter.next();
+ List tableSegments = new ArrayList<>();
+ for (Iterator iter = markerSequence.iterator(); iter.hasNext();) {
+ MarkerSegment seg = iter.next();
if (seg instanceof DHTMarkerSegment) {
- tableSegments.add(seg);
+ tableSegments.add((DHTMarkerSegment) seg);
}
}
// If there are no tables, don't add them, as the metadata encodes an
@@ -1860,12 +1856,11 @@
// find a table with selector 1. AC/DC is irrelevant
boolean found = false;
- for (Iterator iter = tableSegments.iterator(); iter.hasNext();) {
- DHTMarkerSegment testdht = (DHTMarkerSegment) iter.next();
- for (Iterator tabiter = testdht.tables.iterator();
+ for (Iterator iter = tableSegments.iterator(); iter.hasNext();) {
+ DHTMarkerSegment testdht = iter.next();
+ for (Iterator tabiter = testdht.tables.iterator();
tabiter.hasNext();) {
- DHTMarkerSegment.Htable tab =
- (DHTMarkerSegment.Htable) tabiter.next();
+ DHTMarkerSegment.Htable tab = tabiter.next();
if (tab.tableID == 1) {
found = true;
}
@@ -1875,7 +1870,7 @@
// Create new standard dc and ac chrominance tables and add them
// to the last DHT segment
DHTMarkerSegment lastDHT =
- (DHTMarkerSegment) tableSegments.get(tableSegments.size()-1);
+ tableSegments.get(tableSegments.size()-1);
lastDHT.addHtable(JPEGHuffmanTable.StdDCLuminance, true, 1);
lastDHT.addHtable(JPEGHuffmanTable.StdACLuminance, true, 1);
}
@@ -2181,7 +2176,7 @@
if (resetSequence == null) {
resetSequence = markerSequence;
}
- markerSequence = new ArrayList();
+ markerSequence = new ArrayList<>();
// Build a whole new marker sequence from the tree
@@ -2310,10 +2305,10 @@
* segments, including 0 if there are no SOS marker segments.
*/
private int countScanBands() {
- List ids = new ArrayList();
- Iterator iter = markerSequence.iterator();
+ List ids = new ArrayList<>();
+ Iterator iter = markerSequence.iterator();
while(iter.hasNext()) {
- MarkerSegment seg = (MarkerSegment)iter.next();
+ MarkerSegment seg = iter.next();
if (seg instanceof SOSMarkerSegment) {
SOSMarkerSegment sos = (SOSMarkerSegment) seg;
SOSMarkerSegment.ScanComponentSpec [] specs = sos.componentSpecs;
@@ -2334,7 +2329,7 @@
void writeToStream(ImageOutputStream ios,
boolean ignoreJFIF,
boolean forceJFIF,
- List thumbnails,
+ List extends BufferedImage> thumbnails,
ICC_Profile iccProfile,
boolean ignoreAdobe,
int newAdobeTransform,
@@ -2360,9 +2355,9 @@
}
}
// Iterate over each MarkerSegment
- Iterator iter = markerSequence.iterator();
+ Iterator iter = markerSequence.iterator();
while(iter.hasNext()) {
- MarkerSegment seg = (MarkerSegment)iter.next();
+ MarkerSegment seg = iter.next();
if (seg instanceof JFIFMarkerSegment) {
if (ignoreJFIF == false) {
JFIFMarkerSegment jfif = (JFIFMarkerSegment) seg;
@@ -2409,7 +2404,7 @@
public void print() {
for (int i = 0; i < markerSequence.size(); i++) {
- MarkerSegment seg = (MarkerSegment) markerSequence.get(i);
+ MarkerSegment seg = markerSequence.get(i);
seg.print();
}
}