// Path: src/main/java/com/technofovea/hllib/enums/DirectoryItemType.java
// public enum DirectoryItemType implements JnaEnum<DirectoryItemType> {
// 
//     
//     NONE,
//     FOLDER,
//     FILE;
// 
// 
//     private static int start = 0;
// 
//     public int getIntValue() {
//         return this.ordinal()+start;
//     }
// 
// 
//     public DirectoryItemType getForValue(int i) {
//         for(DirectoryItemType o : this.values()){
//             if(o.getIntValue() == i){
//                 return o;
//             }
//         }
//         return null;
//     }
// 
// 
// 
// 
// }
// 
// Path: src/main/java/com/technofovea/hllib/masks/FileMode.java
// public class FileMode extends MappedMask{
//     
// 	public static final int INDEX_MODE_READ= 0;
// 	public static final int INDEX_MODE_WRITE= 1;
// 	public static final int INDEX_MODE_CREATE= 2;
// 	public static final int INDEX_MODE_VOLATILE= 3;
// 	public static final int INDEX_MODE_NO_FILEMAPPING= 4;
// 	public static final int INDEX_MODE_QUICK_FILEMAPPING= 5;
// 
// }
// 
// Path: src/main/java/com/technofovea/hllib/methods/ManagedLibrary.java
// public interface ManagedLibrary extends BasicLibrary, ManagedCalls{       
// 
// }


import com.sun.jna.Memory;
import com.sun.jna.Pointer;
import com.technofovea.hllib.enums.DirectoryItemType;
import com.technofovea.hllib.masks.FileMode;
import com.technofovea.hllib.methods.ManagedLibrary;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

    public HlPackage getParentPackage() {
        return parentPackage;
    }

    public boolean isClosed() {
        return (parentPackage.isClosed());
    }

    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof DirectoryItem)) {
            return false;
        }
        DirectoryItem other = (DirectoryItem) obj;
        if (!parentPackage.equals(other.parentPackage)) {
            return false;
        }
        if (!pointer.equals(other.pointer)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        return pointer.hashCode() + parentPackage.hashCode();
    }

    public List<DirectoryItem> getChildren() {
// Path: src/main/java/com/technofovea/hllib/enums/DirectoryItemType.java
// public enum DirectoryItemType implements JnaEnum<DirectoryItemType> {
// 
//     
//     NONE,
//     FOLDER,
//     FILE;
// 
// 
//     private static int start = 0;
// 
//     public int getIntValue() {
//         return this.ordinal()+start;
//     }
// 
// 
//     public DirectoryItemType getForValue(int i) {
//         for(DirectoryItemType o : this.values()){
//             if(o.getIntValue() == i){
//                 return o;
//             }
//         }
//         return null;
//     }
// 
// 
// 
// 
// }
// 
// Path: src/main/java/com/technofovea/hllib/masks/FileMode.java
// public class FileMode extends MappedMask{
//     
// 	public static final int INDEX_MODE_READ= 0;
// 	public static final int INDEX_MODE_WRITE= 1;
// 	public static final int INDEX_MODE_CREATE= 2;
// 	public static final int INDEX_MODE_VOLATILE= 3;
// 	public static final int INDEX_MODE_NO_FILEMAPPING= 4;
// 	public static final int INDEX_MODE_QUICK_FILEMAPPING= 5;
// 
// }
// 
// Path: src/main/java/com/technofovea/hllib/methods/ManagedLibrary.java
// public interface ManagedLibrary extends BasicLibrary, ManagedCalls{       
// 
// }


// Path: src/main/java/com/technofovea/hllib/DirectoryItem.java
import com.sun.jna.Memory;
import com.sun.jna.Pointer;
import com.technofovea.hllib.enums.DirectoryItemType;
import com.technofovea.hllib.masks.FileMode;
import com.technofovea.hllib.methods.ManagedLibrary;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


    public HlPackage getParentPackage() {
        return parentPackage;
    }

    public boolean isClosed() {
        return (parentPackage.isClosed());
    }

    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof DirectoryItem)) {
            return false;
        }
        DirectoryItem other = (DirectoryItem) obj;
        if (!parentPackage.equals(other.parentPackage)) {
            return false;
        }
        if (!pointer.equals(other.pointer)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        return pointer.hashCode() + parentPackage.hashCode();
    }

    public List<DirectoryItem> getChildren() {
        ManagedLibrary lib = HlLib.getLibrary();