JcrUserData.java 2.25 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.scene7.is.catalog.util.localization.LocalizedText
 *  com.scene7.is.catalog.util.localization.LocalizedTextEntry
 *  com.scene7.is.provider.UserData
 *  com.scene7.is.util.callbacks.Option
 *  javax.jcr.Node
 *  javax.jcr.NodeIterator
 *  javax.jcr.Property
 *  javax.jcr.PropertyIterator
 *  javax.jcr.RepositoryException
 */
package com.adobe.cq.dam.s7imaging.impl.catalog;

import com.adobe.cq.dam.s7imaging.impl.catalog.JcrUtil;
import com.scene7.is.catalog.util.localization.LocalizedText;
import com.scene7.is.catalog.util.localization.LocalizedTextEntry;
import com.scene7.is.provider.UserData;
import com.scene7.is.util.callbacks.Option;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
import javax.jcr.Property;
import javax.jcr.PropertyIterator;
import javax.jcr.RepositoryException;

public class JcrUserData {
    private static final String USER_DATA = "userdata";

    public static Option<UserData> jcrUserData(Node jcrContent) throws RepositoryException {
        Iterator i$ = JcrUtil.getNode(jcrContent, "userdata").iterator();
        if (i$.hasNext()) {
            Node child = (Node)i$.next();
            HashMap<String, LocalizedText> props = new HashMap<String, LocalizedText>();
            JcrUserData.buildUserData("", child, props);
            return Option.some((Object)UserData.userData(props));
        }
        return Option.none();
    }

    private static void buildUserData(String prefix, Node node, Map<String, LocalizedText> acc) throws RepositoryException {
        PropertyIterator props = node.getProperties();
        while (props.hasNext()) {
            Property prop = props.nextProperty();
            String key = prop.getName();
            if (key.contains(":")) continue;
            String value = prop.getString();
            acc.put(prefix + key, LocalizedText.localizedText((String)value, (LocalizedTextEntry[])new LocalizedTextEntry[0]));
        }
        NodeIterator children = node.getNodes();
        while (children.hasNext()) {
            Node child = children.nextNode();
            JcrUserData.buildUserData(prefix + '/' + child.getName(), child, acc);
        }
    }
}