JcrMetadata.java 1.73 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.day.cq.wcm.foundation.ImageMap
 *  com.scene7.is.ps.provider.parsers.HTMLMapConverter
 *  com.scene7.is.sleng.HotSpot
 *  com.scene7.is.util.callbacks.Option
 *  com.scene7.is.util.text.Parser
 *  com.scene7.is.util.text.ParsingException
 *  javax.jcr.Node
 *  javax.jcr.RepositoryException
 */
package com.adobe.cq.dam.s7imaging.impl.catalog;

import com.adobe.cq.dam.s7imaging.impl.jcr.props.JcrProps;
import com.adobe.cq.dam.s7imaging.impl.jcr.props.PropKey;
import com.day.cq.wcm.foundation.ImageMap;
import com.scene7.is.ps.provider.parsers.HTMLMapConverter;
import com.scene7.is.sleng.HotSpot;
import com.scene7.is.util.callbacks.Option;
import com.scene7.is.util.text.Parser;
import com.scene7.is.util.text.ParsingException;
import java.util.List;
import javax.jcr.Node;
import javax.jcr.RepositoryException;

public class JcrMetadata {
    public final Option<List<HotSpot>> hotSpots;
    private static final Parser<List<HotSpot>> imageMapParser = new Parser<List<HotSpot>>(){

        public List<HotSpot> parse(String value) throws ParsingException {
            String html = ImageMap.fromString((String)value).draw("");
            return (List)HTMLMapConverter.htmlMapParser().parse(html);
        }
    };
    private static final String IMAGE_MAP = "imageMap";
    private static final PropKey<Option<List<HotSpot>>> ImageMap = PropKey.optional("imageMap", imageMapParser);

    public static JcrMetadata jcrMetadata(Node node) throws RepositoryException {
        return new JcrMetadata(node);
    }

    private JcrMetadata(Node node) throws RepositoryException {
        JcrProps props = JcrProps.jcrProps(node);
        this.hotSpots = props.get(ImageMap);
    }

}