All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.datastax.driver.dse.graph.DefaultVertex Maven / Gradle / Ivy

Go to download

A driver for DataStax Enterprise (DSE) and Apache Cassandra 1.2+ clusters that works exclusively with the Cassandra Query Language version 3 (CQL3) and Cassandra's binary protocol, supporting DSE-specific features such as geospatial types, DSE Graph and DSE authentication.

There is a newer version: 2.4.0
Show newest version
/*
 * Copyright DataStax, Inc.
 *
 * This software can be used solely with DataStax Enterprise. Please consult the license at
 * http://www.datastax.com/terms/datastax-dse-driver-license-terms
 */
package com.datastax.driver.dse.graph;

import com.google.common.base.Function;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterators;

import java.util.Iterator;

/**
 * A default representation of a vertex in DSE graph.
 */
class DefaultVertex extends DefaultElement implements Vertex {

    private static final Function GRAPH_NODE_TO_VERTEX_PROPERTY = new Function() {
        @Override
        public VertexProperty apply(GraphNode input) {
            return input.asVertexProperty();
        }
    };

    DefaultVertex() {
    }

    @Override
    public boolean equals(Object o) {
        return this == o || o instanceof Vertex && super.equals(o);
    }

    @Override
    public VertexProperty getProperty(String name) {
        if (properties == null || properties.isEmpty() || !properties.containsKey(name))
            return null;
        Iterator iterator = getProperties(name);
        if (!iterator.hasNext())
            return null;
        return iterator.next();
    }

    @Override
    public Iterator getProperties(String name) {
        if (properties == null || properties.isEmpty() || !properties.containsKey(name))
            return ImmutableSet.of().iterator();
        return Iterators.unmodifiableIterator(Iterators.transform(properties.get(name).iterator(), GRAPH_NODE_TO_VERTEX_PROPERTY));
    }

    @Override
    public Iterator getProperties() {
        if (properties == null || properties.isEmpty())
            return ImmutableSet.of().iterator();
        return Iterators.unmodifiableIterator(Iterators.transform(properties.values().iterator(), GRAPH_NODE_TO_VERTEX_PROPERTY));
    }

    @Override
    public String toString() {
        return "Vertex{" +
                "id=" + id +
                ", label='" + label + '\'' +
                ", properties=" + properties +
                '}';
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy