19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this work for additional information regarding copyright ownership. 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (the "License"); you may not use this file except in compliance with 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the License. You may obtain a copy of the License at 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage javax.imageio.metadata; 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport javax.imageio.ImageTypeSpecifier; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.ArrayList; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The class IIOStandardMetadataFormat describes the rules of the standard 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * metadata format. 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @since Android 1.0 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectclass IIOStandardMetadataFormat extends IIOMetadataFormatImpl { 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Instantiates a new IIOStandardMetadataFormat. 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public IIOStandardMetadataFormat() { 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super(standardMetadataFormatName, CHILD_POLICY_SOME); 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project buildDTD(); 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean canNodeAppear(String elementName, ImageTypeSpecifier imageType) { 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Builds the DTD that describes the standard metadata format. 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void buildDTD() { 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // CHROMA 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("Chroma", standardMetadataFormatName, CHILD_POLICY_SOME); 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("ColorSpaceType", "Chroma", CHILD_POLICY_EMPTY); 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ArrayList<String> values = new ArrayList<String>(27); 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("XYZ"); 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Lab"); 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Luv"); 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("YCbCr"); 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Yxy"); 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("YCCK"); 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("PhotoYCC"); 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("RGB"); 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("GRAY"); 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("HSV"); 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("HLS"); 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("CMYK"); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("CMY"); 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("2CLR"); 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("3CLR"); 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("4CLR"); 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("5CLR"); 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("6CLR"); 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("7CLR"); 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("8CLR"); 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("9CLR"); 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("ACLR"); 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("BCLR"); 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("CCLR"); 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("DCLR"); 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("ECLR"); 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("FCLR"); 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ColorSpaceType", "name", DATATYPE_STRING, true, null, values); 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("NumChannels", "Chroma", CHILD_POLICY_EMPTY); 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("NumChannels", "value", DATATYPE_INTEGER, true, 0, Integer.MAX_VALUE); // list 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // - 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // why 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // ? 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("Gamma", "Chroma", CHILD_POLICY_EMPTY); 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("Gamma", "value", DATATYPE_FLOAT, true, null); 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("BlackIsZero", "Chroma", CHILD_POLICY_EMPTY); 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addBooleanAttribute("BlackIsZero", "value", true, true); 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("Palette", "Chroma", 0, Integer.MAX_VALUE); // CHILD_POLICY_REPEAT 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("PaletteEntry", "Palette", CHILD_POLICY_EMPTY); 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("PaletteEntry", "index", DATATYPE_INTEGER, true, null); 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("PaletteEntry", "red", DATATYPE_INTEGER, true, null); 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("PaletteEntry", "green", DATATYPE_INTEGER, true, null); 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("PaletteEntry", "blue", DATATYPE_INTEGER, true, null); 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("PaletteEntry", "alpha", DATATYPE_INTEGER, false, "255"); 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("BackgroundIndex", "Chroma", CHILD_POLICY_EMPTY); 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("BackgroundIndex", "value", DATATYPE_INTEGER, true, null); 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("BackgroundColor", "Chroma", CHILD_POLICY_EMPTY); 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("BackgroundColor", "red", DATATYPE_INTEGER, true, null); 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("BackgroundColor", "green", DATATYPE_INTEGER, true, null); 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("BackgroundColor", "blue", DATATYPE_INTEGER, true, null); 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // COMPRESSION 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("Compression", standardMetadataFormatName, CHILD_POLICY_SOME); 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("CompressionTypeName", "Compression", CHILD_POLICY_EMPTY); 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("CompressionTypeName", "value", DATATYPE_STRING, true, null); 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("Lossless", "Compression", CHILD_POLICY_EMPTY); 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addBooleanAttribute("Lossless", "value", true, true); 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("NumProgressiveScans", "Compression", CHILD_POLICY_EMPTY); 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("NumProgressiveScans", "value", DATATYPE_INTEGER, true, null); 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("BitRate", "Compression", CHILD_POLICY_EMPTY); 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("BitRate", "value", DATATYPE_FLOAT, true, null); 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // DATA 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("Data", standardMetadataFormatName, CHILD_POLICY_SOME); 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("PlanarConfiguration", "Data", CHILD_POLICY_EMPTY); 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values = new ArrayList<String>(4); 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("PixelInterleaved"); 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("PlaneInterleaved"); 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("LineInterleaved"); 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("TileInterleaved"); 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("PlanarConfiguration", "value", DATATYPE_STRING, true, null, values); 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("SampleFormat", "Data", CHILD_POLICY_EMPTY); 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values = new ArrayList<String>(4); 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("SignedIntegral"); 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("UnsignedIntegral"); 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Real"); 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Index"); 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("SampleFormat", "value", DATATYPE_STRING, true, null, values); 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("BitsPerSample", "Data", CHILD_POLICY_EMPTY); 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("BitsPerSample", "value", DATATYPE_INTEGER, true, 1, Integer.MAX_VALUE); // list 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("SignificantBitsPerSample", "Data", CHILD_POLICY_EMPTY); 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("SignificantBitsPerSample", "value", DATATYPE_INTEGER, true, 1, 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Integer.MAX_VALUE); // list 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("SampleMSB", "Data", CHILD_POLICY_EMPTY); 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("SampleMSB", "value", DATATYPE_INTEGER, true, 1, Integer.MAX_VALUE); // list 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // DIMENSION 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("Dimension", standardMetadataFormatName, CHILD_POLICY_SOME); 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("PixelAspectRatio", "Dimension", CHILD_POLICY_EMPTY); 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("PixelAspectRatio", "value", DATATYPE_FLOAT, true, null); 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("ImageOrientation", "Dimension", CHILD_POLICY_EMPTY); 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values = new ArrayList<String>(8); 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Normal"); 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Rotate90"); 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Rotate180"); 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Rotate270"); 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("FlipH"); 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("FlipV"); 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("FlipHRotate90"); 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("FlipVRotate90"); 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageOrientation", "value", DATATYPE_STRING, true, null, values); 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("HorizontalPixelSize", "Dimension", CHILD_POLICY_EMPTY); 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("HorizontalPixelSize", "value", DATATYPE_FLOAT, true, null); 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("VerticalPixelSize", "Dimension", CHILD_POLICY_EMPTY); 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("VerticalPixelSize", "value", DATATYPE_FLOAT, true, null); 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("HorizontalPhysicalPixelSpacing", "Dimension", CHILD_POLICY_EMPTY); 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("HorizontalPhysicalPixelSpacing", "value", DATATYPE_FLOAT, true, null); 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("VerticalPhysicalPixelSpacing", "Dimension", CHILD_POLICY_EMPTY); 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("VerticalPhysicalPixelSpacing", "value", DATATYPE_FLOAT, true, null); 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("HorizontalPosition", "Dimension", CHILD_POLICY_EMPTY); 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("HorizontalPosition", "value", DATATYPE_FLOAT, true, null); 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("VerticalPosition", "Dimension", CHILD_POLICY_EMPTY); 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("VerticalPosition", "value", DATATYPE_FLOAT, true, null); 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("HorizontalPixelOffset", "Dimension", CHILD_POLICY_EMPTY); 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("HorizontalPixelOffset", "value", DATATYPE_INTEGER, true, null); 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("VerticalPixelOffset", "Dimension", CHILD_POLICY_EMPTY); 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("VerticalPixelOffset", "value", DATATYPE_INTEGER, true, null); 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("HorizontalScreenSize", "Dimension", CHILD_POLICY_EMPTY); 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("HorizontalScreenSize", "value", DATATYPE_INTEGER, true, null); 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("VerticalScreenSize", "Dimension", CHILD_POLICY_EMPTY); 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("VerticalScreenSize", "value", DATATYPE_INTEGER, true, null); 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // DOCUMENT 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("Document", standardMetadataFormatName, CHILD_POLICY_SOME); 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("FormatVersion", "Document", CHILD_POLICY_EMPTY); 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("FormatVersion", "value", DATATYPE_STRING, true, null); 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("SubimageInterpretation", "Document", CHILD_POLICY_EMPTY); 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values = new ArrayList<String>(14); 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Standalone"); 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("SinglePage"); 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("FullResolution"); 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("ReducedResolution"); 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("PyramidLayer"); 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Preview"); 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("VolumeSlice"); 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("ObjectView"); 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Panorama"); 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("AnimationFrame"); 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("TransparencyMask"); 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("CompositingLayer"); 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("SpectralSlice"); 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("Unknown"); 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("SubimageInterpretation", "value", DATATYPE_STRING, true, null, values); 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("ImageCreationTime", "Document", CHILD_POLICY_EMPTY); 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageCreationTime", "year", DATATYPE_INTEGER, true, null); 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageCreationTime", "month", DATATYPE_INTEGER, true, null, "1", "12", true, 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project true); 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageCreationTime", "day", DATATYPE_INTEGER, true, null, "1", "31", true, 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project true); 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageCreationTime", "hour", DATATYPE_INTEGER, false, "0", "0", "23", true, 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project true); 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageCreationTime", "minute", DATATYPE_INTEGER, false, "0", "0", "59", true, 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project true); 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageCreationTime", "second", DATATYPE_INTEGER, false, "0", "0", "60", true, 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project true); 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("ImageModificationTime", "Document", CHILD_POLICY_EMPTY); 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageModificationTime", "year", DATATYPE_INTEGER, true, null); 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageModificationTime", "month", DATATYPE_INTEGER, true, null, "1", "12", 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project true, true); 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageModificationTime", "day", DATATYPE_INTEGER, true, null, "1", "31", true, 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project true); 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageModificationTime", "hour", DATATYPE_INTEGER, false, "0", "0", "23", 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project true, true); 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageModificationTime", "minute", DATATYPE_INTEGER, false, "0", "0", "59", 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project true, true); 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("ImageModificationTime", "second", DATATYPE_INTEGER, false, "0", "0", "60", 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project true, true); 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // TEXT 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("Text", standardMetadataFormatName, 0, Integer.MAX_VALUE); // CHILD_POLICY_REPEAT 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("TextEntry", "Text", CHILD_POLICY_EMPTY); 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("TextEntry", "keyword", DATATYPE_STRING, false, null); 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("TextEntry", "value", DATATYPE_STRING, true, null); 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("TextEntry", "language", DATATYPE_STRING, false, null); 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("TextEntry", "encoding", DATATYPE_STRING, false, null); 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values = new ArrayList<String>(5); 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("none"); 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("lzw"); 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("zip"); 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("bzip"); 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("other"); 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("TextEntry", "compression", DATATYPE_STRING, false, "none", values); 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // TRANSPARENCY 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("Transparency", standardMetadataFormatName, CHILD_POLICY_SOME); 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("Alpha", "Transparency", CHILD_POLICY_EMPTY); 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values = new ArrayList<String>(3); 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("none"); 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("premultiplied"); 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project values.add("nonpremultiplied"); 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("Alpha", "value", DATATYPE_STRING, false, "none", values); 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("TransparentIndex", "Transparency", CHILD_POLICY_EMPTY); 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("TransparentIndex", "value", DATATYPE_INTEGER, true, null); 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("TransparentColor", "Transparency", CHILD_POLICY_EMPTY); 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("TransparentColor", "value", DATATYPE_INTEGER, true, 0, Integer.MAX_VALUE); 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("TileTransparencies", "Transparency", 0, Integer.MAX_VALUE); // CHILD_POLICY_REPEAT 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("TransparentTile", "TileTransparencies", CHILD_POLICY_EMPTY); 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("TransparentTile", "x", DATATYPE_INTEGER, true, null); 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("TransparentTile", "y", DATATYPE_INTEGER, true, null); 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("TileOpacities", "Transparency", 0, Integer.MAX_VALUE); // CHILD_POLICY_REPEAT 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addElement("OpaqueTile", "TileOpacities", CHILD_POLICY_EMPTY); 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("OpaqueTile", "x", DATATYPE_INTEGER, true, null); 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project addAttribute("OpaqueTile", "y", DATATYPE_INTEGER, true, null); 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 298