Author: bodewig
Date: Fri Aug 28 04:31:43 2009
New Revision: 808751
URL: http://svn.apache.org/viewvc?rev=808751&view=rev
Log:
port createunicodeextrafields from <zip>
Modified:
ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/compress/taskdefs/Zip.java
Modified:
ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/compress/taskdefs/Zip.java
URL:
http://svn.apache.org/viewvc/ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/compress/taskdefs/Zip.java?rev=808751&r1=808750&r2=808751&view=diff
==============================================================================
---
ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/compress/taskdefs/Zip.java
(original)
+++
ant/sandbox/antlibs/compress/trunk/src/main/org/apache/ant/compress/taskdefs/Zip.java
Fri Aug 28 04:31:43 2009
@@ -20,6 +20,8 @@
import java.io.IOException;
import java.io.OutputStream;
+import java.util.HashMap;
+import java.util.Map;
import java.util.zip.Deflater;
import org.apache.ant.compress.util.ZipStreamFactory;
@@ -28,6 +30,7 @@
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
import org.apache.tools.ant.types.ArchiveFileSet;
+import org.apache.tools.ant.types.EnumeratedAttribute;
/**
* Creates zip archives.
@@ -38,6 +41,7 @@
private boolean keepCompression = false;
private boolean fallBackToUTF8 = false;
private boolean useLanguageEncodingFlag = true;
+ private UnicodeExtraField createUnicodeExtraFields =
UnicodeExtraField.NEVER;
public Zip() {
setFactory(new ZipStreamFactory() {
@@ -51,6 +55,8 @@
o.setComment(comment);
o.setFallbackToUTF8(fallBackToUTF8);
o.setUseLanguageEncodingFlag(useLanguageEncodingFlag);
+ o.setCreateUnicodeExtraFields(createUnicodeExtraFields
+ .getPolicy());
return o;
}
});
@@ -135,4 +141,50 @@
public void setUseLanguageEncodingFlag(boolean b) {
useLanguageEncodingFlag = b;
}
+
+ /**
+ * Whether Unicode extra fields will be created.
+ */
+ public void setCreateUnicodeExtraFields(UnicodeExtraField b) {
+ createUnicodeExtraFields = b;
+ }
+
+ /**
+ * Policiy for creation of Unicode extra fields: never, always or
+ * not-encodeable.
+ */
+ public static final class UnicodeExtraField extends EnumeratedAttribute {
+ private static final Map POLICIES = new HashMap();
+ private static final String NEVER_KEY = "never";
+ private static final String ALWAYS_KEY = "always";
+ private static final String N_E_KEY = "not-encodeable";
+ static {
+ POLICIES.put(NEVER_KEY,
+ ZipArchiveOutputStream.UnicodeExtraFieldPolicy.NEVER);
+ POLICIES.put(ALWAYS_KEY,
+
ZipArchiveOutputStream.UnicodeExtraFieldPolicy.ALWAYS);
+ POLICIES.put(N_E_KEY,
+ ZipArchiveOutputStream.UnicodeExtraFieldPolicy
+ .NOT_ENCODEABLE);
+ }
+
+ public String[] getValues() {
+ return new String[] {NEVER_KEY, ALWAYS_KEY, N_E_KEY};
+ }
+
+ public static final UnicodeExtraField NEVER =
+ new UnicodeExtraField(NEVER_KEY);
+
+ private UnicodeExtraField(String name) {
+ setValue(name);
+ }
+
+ public UnicodeExtraField() {
+ }
+
+ public ZipArchiveOutputStream.UnicodeExtraFieldPolicy getPolicy() {
+ return (ZipArchiveOutputStream.UnicodeExtraFieldPolicy)
+ POLICIES.get(getValue());
+ }
+ }
}
\ No newline at end of file