Clazz.declarePackage ("java.util.zip");
Clazz.load (["java.util.zip.ZipConstants"], "java.util.zip.ZipEntry", ["java.lang.IllegalArgumentException", "$.InternalError", "$.NullPointerException", "java.util.Date"], function () {
c$ = Clazz.decorateAsClass (function () {
this.offset = 0;
this.name = null;
this.time = -1;
this.crc = -1;
this.size = -1;
this.csize = -1;
this.method = -1;
this.flag = 0;
this.extra = null;
this.comment = null;
Clazz.instantialize (this, arguments);
}, java.util.zip, "ZipEntry", null, [java.util.zip.ZipConstants, Cloneable]);
Clazz.makeConstructor (c$,
function (name) {
if (name == null) {
throw  new NullPointerException ();
}if (name.length > 0xFFFF) {
throw  new IllegalArgumentException ("entry name too long");
}this.name = name;
}, "~S");
Clazz.defineMethod (c$, "getName",
function () {
return this.name;
});
Clazz.defineMethod (c$, "setTime",
function (time) {
this.time = java.util.zip.ZipEntry.javaToDosTime (time);
}, "~N");
Clazz.defineMethod (c$, "getTime",
function () {
return this.time != -1 ? java.util.zip.ZipEntry.dosToJavaTime (this.time) : -1;
});
Clazz.defineMethod (c$, "setSize",
function (size) {
if (size < 0) {
throw  new IllegalArgumentException ("invalid entry size");
}this.size = size;
}, "~N");
Clazz.defineMethod (c$, "getSize",
function () {
return this.size;
});
Clazz.defineMethod (c$, "getCompressedSize",
function () {
return this.csize;
});
Clazz.defineMethod (c$, "setCompressedSize",
function (csize) {
this.csize = csize;
}, "~N");
Clazz.defineMethod (c$, "setCrc",
function (crc) {
if (crc < 0 || crc > 0xFFFFFFFF) {
throw  new IllegalArgumentException ("invalid entry crc-32");
}this.crc = crc;
}, "~N");
Clazz.defineMethod (c$, "getCrc",
function () {
return this.crc;
});
Clazz.defineMethod (c$, "setMethod",
function (method) {
if (method != 0 && method != 8) {
throw  new IllegalArgumentException ("invalid compression method");
}this.method = method;
}, "~N");
Clazz.defineMethod (c$, "getMethod",
function () {
return this.method;
});
Clazz.defineMethod (c$, "setExtra",
function (extra) {
if (extra != null && extra.length > 0xFFFF) {
throw  new IllegalArgumentException ("invalid extra field length");
}this.extra = extra;
}, "~A");
Clazz.defineMethod (c$, "getExtra",
function () {
return this.extra;
});
Clazz.defineMethod (c$, "setComment",
function (comment) {
this.comment = comment;
}, "~S");
Clazz.defineMethod (c$, "getComment",
function () {
return this.comment;
});
Clazz.defineMethod (c$, "isDirectory",
function () {
return this.name.endsWith ("/");
});
Clazz.overrideMethod (c$, "toString",
function () {
return this.getName ();
});
c$.dosToJavaTime = Clazz.defineMethod (c$, "dosToJavaTime",
 function (dtime) {
var d =  new java.util.Date ((((dtime >> 25) & 0x7f) + 80), (((dtime >> 21) & 0x0f) - 1), ((dtime >> 16) & 0x1f), ((dtime >> 11) & 0x1f), ((dtime >> 5) & 0x3f), ((dtime << 1) & 0x3e));
return d.getTime ();
}, "~N");
c$.javaToDosTime = Clazz.defineMethod (c$, "javaToDosTime",
 function (time) {
var d =  new java.util.Date (time);
var year = d.getYear () + 1900;
if (year < 1980) {
return 2162688;
}return (year - 1980) << 25 | (d.getMonth () + 1) << 21 | d.getDate () << 16 | d.getHours () << 11 | d.getMinutes () << 5 | d.getSeconds () >> 1;
}, "~N");
Clazz.overrideMethod (c$, "hashCode",
function () {
return this.name.hashCode ();
});
Clazz.defineMethod (c$, "clone",
function () {
try {
var e = Clazz.superCall (this, java.util.zip.ZipEntry, "clone", []);
if (this.extra != null) {
e.extra =  Clazz.newByteArray (this.extra.length, 0);
Zystem.arraycopy (this.extra, 0, e.extra, 0, this.extra.length);
}return e;
} catch (e) {
if (Clazz.exceptionOf (e, CloneNotSupportedException)) {
throw  new InternalError ();
} else {
throw e;
}
}
});
Clazz.defineStatics (c$,
"STORED", 0,
"DEFLATED", 8);
});
