Example usage for org.hibernate.boot.archive.spi ArchiveContext obtainArchiveEntryHandler

List of usage examples for org.hibernate.boot.archive.spi ArchiveContext obtainArchiveEntryHandler

Introduction

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

Prototype

public ArchiveEntryHandler obtainArchiveEntryHandler(ArchiveEntry entry);

Source Link

Document

Get the handler for the given entry, which generally is indicated by the entry type (a .class file, a mapping file, etc).

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 {// w  ww. j a v a  2 s  . 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);
    }
}