Search in sources :

Example 1 with VComposite

use of nl.uva.vlet.vrs.VComposite in project lobcder by skoulouzis.

the class Assimilator method assimilate.

private void assimilate(List<StorageSite> sites) throws SQLException, MalformedURLException, VlException, NoSuchAlgorithmException, Exception {
    Connection c = getConnection();
    StorageSiteClient ssClient;
    for (StorageSite site : sites) {
        String username = site.getCredential().getStorageSiteUsername();
        String password = site.getCredential().getStorageSitePassword();
        String ssURI = site.getResourceURI();
        long ssID = getStorageSiteID(c, ssURI);
        if (ssID == -1) {
            long credentialsID = addCredentials(c, username, password);
            ssID = addStorageSite(c, site, credentialsID, false);
        }
        URI importedURI = new URI(site.getResourceURI());
        String importedFolderName = "ImportedFrom-" + importedURI.getScheme() + "-" + importedURI.getHost();
        // Add imported folder
        LogicalData imported = getLogicalDataByPath(Path.path(importedFolderName), c);
        Long importedUid;
        if (imported == null) {
            importedUid = addRegisteredFolder(importedFolderName, c);
        } else {
            importedUid = imported.getUid();
        }
        // 
        ssClient = new StorageSiteClient(username, password, ssURI);
        VNode dir = ssClient.getStorageSiteClient().getNode(new VRL(ssURI));
        // VFSClient client = (VFSClient) ssClient.getStorageSiteClient();
        // VDir dir = client.openDir(new VRL(ssURI));
        // build folders first
        nl.uva.vlet.vdriver.vrs.http.HTTPNode k = (nl.uva.vlet.vdriver.vrs.http.HTTPNode) dir;
        // k.getInputStream()
        add((VComposite) dir, dir.getPath(), c, ssID, false);
        VNode[] nodes = ((VComposite) dir).getNodes();
        for (VNode n : nodes) {
            if (!n.isComposite()) {
                VFile f = (VFile) n;
                String fileName = n.getName();
                VRL currentPath = new VRL(f.getPath().replaceFirst(dir.getPath(), ""));
                LogicalData parent = getLogicalDataByPath(Path.path(currentPath.getPath()), c);
                Long parentRef;
                if (parent != null) {
                    parentRef = parent.getUid();
                } else {
                    parentRef = importedUid;
                }
                LogicalData registered = getLogicalDataByParentRefAndName(parentRef, fileName, c);
                System.err.println(currentPath);
                if (registered == null) {
                    addFile(c, f, parentRef, ssID);
                }
            }
        }
    }
    c.commit();
    c.close();
}
Also used : URI(java.net.URI) VFile(nl.uva.vlet.vfs.VFile) LogicalData(nl.uva.cs.lobcder.resources.LogicalData) VRL(nl.uva.vlet.vrl.VRL) StorageSite(nl.uva.cs.lobcder.resources.StorageSite) VNode(nl.uva.vlet.vrs.VNode) VComposite(nl.uva.vlet.vrs.VComposite)

Aggregations

URI (java.net.URI)1 LogicalData (nl.uva.cs.lobcder.resources.LogicalData)1 StorageSite (nl.uva.cs.lobcder.resources.StorageSite)1 VFile (nl.uva.vlet.vfs.VFile)1 VRL (nl.uva.vlet.vrl.VRL)1 VComposite (nl.uva.vlet.vrs.VComposite)1 VNode (nl.uva.vlet.vrs.VNode)1