| Clazz.declarePackage ("JU"); | |
| c$ = Clazz.decorateAsClass (function () { | |
| this.cd = null; | |
| this.unicodeName64 = null; | |
| this.nBytesUnicodeName = 0; | |
| this.entryType = 0; | |
| this.uniqueID16 = null; | |
| this.userflags4 = null; | |
| this.SIDfirstSector = 0; | |
| this.lenStream = 0; | |
| this.unused = null; | |
| this.entryName = null; | |
| this.isStandard = false; | |
| this.isEmpty = false; | |
| Clazz.instantialize (this, arguments); | |
| }, JU, "CompoundDocDirEntry"); | |
| Clazz.prepareFields (c$, function () { | |
| this.unicodeName64 = Clazz.newByteArray (64, 0); | |
| this.uniqueID16 = Clazz.newByteArray (16, 0); | |
| this.userflags4 = Clazz.newByteArray (4, 0); | |
| this.unused = Clazz.newByteArray (8, 0); | |
| }); | |
| Clazz.makeConstructor (c$, | |
| function (compoundDocument) { | |
| this.cd = compoundDocument; | |
| }, "JU.CompoundDocument"); | |
| Clazz.defineMethod (c$, "readData", | |
| function () { | |
| try { | |
| this.cd.readByteArray (this.unicodeName64, 0, 64); | |
| this.nBytesUnicodeName = this.cd.readShort (); | |
| this.entryType = this.cd.readByte (); | |
| this.cd.readByte (); | |
| this.cd.readInt (); | |
| this.cd.readInt (); | |
| this.cd.readInt (); | |
| this.cd.readByteArray (this.uniqueID16, 0, 16); | |
| this.cd.readByteArray (this.userflags4, 0, 4); | |
| this.cd.readByteArray (this.unused, 0, 8); | |
| this.cd.readByteArray (this.unused, 0, 8); | |
| this.SIDfirstSector = this.cd.readInt (); | |
| this.lenStream = this.cd.readInt (); | |
| this.cd.readByteArray (this.unused, 0, 4); | |
| } catch (e) { | |
| if (Clazz.exceptionOf (e, Exception)) { | |
| System.out.println (e.toString ()); | |
| return false; | |
| } else { | |
| throw e; | |
| } | |
| } | |
| this.entryName = ""; | |
| for (var i = 0; i < this.nBytesUnicodeName - 2; i += 2) this.entryName += String.fromCharCode (this.unicodeName64[i]); | |
| this.isStandard = (this.entryType == 5 || this.lenStream >= this.cd.header.minBytesStandardStream); | |
| this.isEmpty = (this.entryType == 0 || this.lenStream <= 0); | |
| return true; | |
| }); | |
| Clazz.overrideMethod (c$, "toString", | |
| function () { | |
| return this.entryName + " " + this.lenStream; | |
| }); | |