Example usage for org.hibernate.boot.archive.spi ArchiveEntry ArchiveEntry

List of usage examples for org.hibernate.boot.archive.spi ArchiveEntry ArchiveEntry

Introduction

In this page you can find the example usage for org.hibernate.boot.archive.spi ArchiveEntry ArchiveEntry.

Prototype

ArchiveEntry

Source Link

Usage

From source file:org.jboss.as.jpa.hibernate5.VirtualFileSystemArchiveDescriptor.java

License:Apache License

private void processVirtualFile(VirtualFile virtualFile, String path, ArchiveContext archiveContext) {
    if (path == null) {
        path = "";
    } else {/*from   ww w  .  j a v  a 2s.c  o m*/
        if (!path.endsWith("/'")) {
            path = path + "/";
        }
    }

    for (VirtualFile child : virtualFile.getChildren()) {
        if (!child.exists()) {
            // should never happen conceptually, but...
            continue;
        }

        if (child.isDirectory()) {
            processVirtualFile(child, path + child.getName(), archiveContext);
            continue;
        }

        final String name = child.getPathName();
        final String relativeName = path + child.getName();
        final InputStreamAccess inputStreamAccess = new VirtualFileInputStreamAccess(name, child);

        final ArchiveEntry entry = new ArchiveEntry() {
            @Override
            public String getName() {
                return name;
            }

            @Override
            public String getNameWithinArchive() {
                return relativeName;
            }

            @Override
            public InputStreamAccess getStreamAccess() {
                return inputStreamAccess;
            }
        };

        archiveContext.obtainArchiveEntryHandler(entry).handleEntry(entry, archiveContext);
    }
}