You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

ZipExtraField.java 2.7 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements. See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. *
  17. */
  18. package org.apache.tools.zip;
  19. import java.util.zip.ZipException;
  20. /**
  21. * General format of extra field data.
  22. *
  23. * <p>Extra fields usually appear twice per file, once in the local
  24. * file data and once in the central directory. Usually they are the
  25. * same, but they don't have to be. {@link
  26. * java.util.zip.ZipOutputStream java.util.zip.ZipOutputStream} will
  27. * only use the local file data in both places.</p>
  28. *
  29. */
  30. public interface ZipExtraField {
  31. /**
  32. * The Header-ID.
  33. * @return the header id
  34. * @since 1.1
  35. */
  36. ZipShort getHeaderId();
  37. /**
  38. * Length of the extra field in the local file data - without
  39. * Header-ID or length specifier.
  40. * @return the length of the field in the local file data
  41. * @since 1.1
  42. */
  43. ZipShort getLocalFileDataLength();
  44. /**
  45. * Length of the extra field in the central directory - without
  46. * Header-ID or length specifier.
  47. * @return the length of the field in the central directory
  48. * @since 1.1
  49. */
  50. ZipShort getCentralDirectoryLength();
  51. /**
  52. * The actual data to put into local file data - without Header-ID
  53. * or length specifier.
  54. * @return the data
  55. * @since 1.1
  56. */
  57. byte[] getLocalFileDataData();
  58. /**
  59. * The actual data to put into central directory - without Header-ID or
  60. * length specifier.
  61. * @return the data
  62. * @since 1.1
  63. */
  64. byte[] getCentralDirectoryData();
  65. /**
  66. * Populate data from this array as if it was in local file data.
  67. * @param data an array of bytes
  68. * @param offset the start offset
  69. * @param length the number of bytes in the array from offset
  70. *
  71. * @since 1.1
  72. * @throws ZipException on error
  73. */
  74. void parseFromLocalFileData(byte[] data, int offset, int length)
  75. throws ZipException;
  76. }