src/share/classes/com/sun/imageio/plugins/jpeg/DHTMarkerSegment.java

Print this page


   1 /*
   2  * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 194                     }
 195                     numCodes = table.getLengths();
 196                     values = table.getValues();
 197                 } else {
 198                     throw new IIOInvalidTreeException
 199                         ("dhtable node must have user object", node);
 200                 }
 201             } else {
 202                 throw new IIOInvalidTreeException
 203                     ("Invalid node, expected dqtable", node);
 204             }
 205 
 206         }
 207 
 208         protected Object clone() {
 209             Htable newGuy = null;
 210             try {
 211                 newGuy = (Htable) super.clone();
 212             } catch (CloneNotSupportedException e) {} // won't happen
 213             if (numCodes != null) {
 214                 newGuy.numCodes = (short []) numCodes.clone();
 215             }
 216             if (values != null) {
 217                 newGuy.values = (short []) values.clone();
 218             }
 219             return newGuy;
 220         }
 221 
 222         IIOMetadataNode getNativeNode() {
 223             IIOMetadataNode node = new IIOMetadataNode("dhtable");
 224             node.setAttribute("class", Integer.toString(tableClass));
 225             node.setAttribute("htableId", Integer.toString(tableID));
 226 
 227             node.setUserObject(new JPEGHuffmanTable(numCodes, values));
 228 
 229             return node;
 230         }
 231 
 232 
 233         void print() {
 234             System.out.println("Huffman Table");
 235             System.out.println("table class: "
 236                                + ((tableClass == 0) ? "DC":"AC"));
 237             System.out.println("table id: " + Integer.toString(tableID));


   1 /*
   2  * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 194                     }
 195                     numCodes = table.getLengths();
 196                     values = table.getValues();
 197                 } else {
 198                     throw new IIOInvalidTreeException
 199                         ("dhtable node must have user object", node);
 200                 }
 201             } else {
 202                 throw new IIOInvalidTreeException
 203                     ("Invalid node, expected dqtable", node);
 204             }
 205 
 206         }
 207 
 208         protected Object clone() {
 209             Htable newGuy = null;
 210             try {
 211                 newGuy = (Htable) super.clone();
 212             } catch (CloneNotSupportedException e) {} // won't happen
 213             if (numCodes != null) {
 214                 newGuy.numCodes = numCodes.clone();
 215             }
 216             if (values != null) {
 217                 newGuy.values = values.clone();
 218             }
 219             return newGuy;
 220         }
 221 
 222         IIOMetadataNode getNativeNode() {
 223             IIOMetadataNode node = new IIOMetadataNode("dhtable");
 224             node.setAttribute("class", Integer.toString(tableClass));
 225             node.setAttribute("htableId", Integer.toString(tableID));
 226 
 227             node.setUserObject(new JPEGHuffmanTable(numCodes, values));
 228 
 229             return node;
 230         }
 231 
 232 
 233         void print() {
 234             System.out.println("Huffman Table");
 235             System.out.println("table class: "
 236                                + ((tableClass == 0) ? "DC":"AC"));
 237             System.out.println("table id: " + Integer.toString(tableID));