Package io.lumify.analystsNotebook.model

Source Code of io.lumify.analystsNotebook.model.AttributeClass

package io.lumify.analystsNotebook.model;

import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import io.lumify.core.model.ontology.Concept;
import io.lumify.core.model.ontology.OntologyProperty;
import io.lumify.core.model.ontology.OntologyRepository;
import io.lumify.core.model.properties.LumifyProperties;
import org.securegraph.Vertex;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class AttributeClass {
    public static final String NAME_SUBTITLE = "subtitle";
    public static final String NAME_TIME = "time";
    public static final String NAME_IMAGE_URL = "imageUrl";
    public static final String TYPE_FLAG = "AttFlag";
    public static final String TYPE_NUMBER = "AttNumber";
    public static final String TYPE_TEXT = "AttText";
    public static final String TYPE_TIME = "AttTime";

    @JacksonXmlProperty(isAttribute = true)
    private String name;

    @JacksonXmlProperty(isAttribute = true)
    private String type;

    @JacksonXmlProperty(isAttribute = true)
    private boolean showValue;

    @JacksonXmlProperty(isAttribute = true)
    private boolean visible;

    public AttributeClass() {

    }

    public AttributeClass(String name, String type, boolean displayOnChart) {
        this.name = name;
        this.type = type;
        showValue = displayOnChart;
        visible = displayOnChart;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public boolean isShowValue() {
        return showValue;
    }

    public void setShowValue(boolean showValue) {
        this.showValue = showValue;
    }

    public boolean isVisible() {
        return visible;
    }

    public void setVisible(boolean visible) {
        this.visible = visible;
    }

    public static List<AttributeClass> createForVertices(Iterable<Vertex> vertices, OntologyRepository ontologyRepository) {
        Map<String, List<AttributeClass>> conceptTypeAttributeClassListMap = new HashMap<String, List<AttributeClass>>();
        for (Vertex vertex : vertices) {
            String conceptType = LumifyProperties.CONCEPT_TYPE.getPropertyValue(vertex);
            if (!conceptTypeAttributeClassListMap.containsKey(conceptType)) {
                List<AttributeClass> conceptAttributeClasses = new ArrayList<AttributeClass>();
                Concept concept = ontologyRepository.getConceptByIRI(conceptType);
                for (OntologyProperty property : concept.getProperties()) {
                    if (property.getUserVisible()) {
                        String name = property.getTitle();
                        String type = AttributeClass.TYPE_TEXT;
                        AttributeClass attributeClass = new AttributeClass(name, type, false);
                        conceptAttributeClasses.add(attributeClass);
                    }
                }
                conceptTypeAttributeClassListMap.put(conceptType, conceptAttributeClasses);
            }
        }

        List<AttributeClass> attributeClasses = new ArrayList<AttributeClass>();
        for (List<AttributeClass> conceptAttributeClasses : conceptTypeAttributeClassListMap.values()) {
            for (AttributeClass attributeClass : conceptAttributeClasses) {
                attributeClasses.add(attributeClass);
            }
        }
        return attributeClasses;
    }
}
TOP

Related Classes of io.lumify.analystsNotebook.model.AttributeClass

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.