Package com.buschmais.jqassistant.core.store.impl.dao.mapper

Source Code of com.buschmais.jqassistant.core.store.impl.dao.mapper.ArtifactDescriptorMapper

/**
*
*/
package com.buschmais.jqassistant.core.store.impl.dao.mapper;

import com.buschmais.jqassistant.core.model.api.descriptor.ArtifactDescriptor;
import com.buschmais.jqassistant.core.model.api.descriptor.Descriptor;
import com.buschmais.jqassistant.core.store.api.model.NodeLabel;
import com.buschmais.jqassistant.core.store.api.model.NodeProperty;
import com.buschmais.jqassistant.core.store.api.model.Relation;
import org.neo4j.graphdb.Label;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

import static com.buschmais.jqassistant.core.store.api.model.NodeLabel.ARTIFACT;

/**
* Maps the {@link ArtifactDescriptor} to nodes and relationships.
*
* @author Herklotz
*/
public class ArtifactDescriptorMapper extends AbstractDescriptorMapper<ArtifactDescriptor> {

    /**
     * {@inheritDoc}
     */
    @Override
    public Set<Class<? extends ArtifactDescriptor>> getJavaType() {
        Set<Class<? extends ArtifactDescriptor>> javaTypes = new HashSet<>();
        javaTypes.add(ArtifactDescriptor.class);
        return javaTypes;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public NodeLabel getCoreLabel() {
        return ARTIFACT;
    }

    @Override
    public Class<? extends ArtifactDescriptor> getType(Set<Label> labels) {
        return ArtifactDescriptor.class;
    }

    @Override
    public ArtifactDescriptor createInstance(Class<? extends ArtifactDescriptor> type) {
        return new ArtifactDescriptor();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Map<NodeProperty, Object> getProperties(ArtifactDescriptor descriptor) {
        Map<NodeProperty, Object> properties = super.getProperties(descriptor);
        properties.put(NodeProperty.GROUP, descriptor.getGroup());
        properties.put(NodeProperty.NAME, descriptor.getName());
        properties.put(NodeProperty.VERSION, descriptor.getVersion());
        properties.put(NodeProperty.CLASSIFIER, descriptor.getClassifier());
        properties.put(NodeProperty.TYPE, descriptor.getType());
        return properties;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public void setProperty(ArtifactDescriptor descriptor, NodeProperty property, Object value) {
        super.setProperty(descriptor, property, value);
        switch (property) {
            case GROUP:
                descriptor.setGroup((String) value);
                break;
            case NAME:
                descriptor.setName((String) value);
                break;
            case VERSION:
                descriptor.setVersion((String) value);
                break;
            case CLASSIFIER:
                descriptor.setClassifier((String) value);
            case TYPE:
                descriptor.setType((String) value);
            default:
                break;
        }

    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Map<Relation, Set<? extends Descriptor>> getRelations(ArtifactDescriptor descriptor) {
        Map<Relation, Set<? extends Descriptor>> relations = new HashMap<Relation, Set<? extends Descriptor>>();
        relations.put(Relation.CONTAINS, descriptor.getContains());
        return relations;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    protected void setRelation(ArtifactDescriptor descriptor, Relation relation, Descriptor target) {
        switch (relation) {
            case CONTAINS:
                descriptor.getContains().add(target);
                break;
            default:
        }
    }
}
TOP

Related Classes of com.buschmais.jqassistant.core.store.impl.dao.mapper.ArtifactDescriptorMapper

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.