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

com.tinkerpop.gremlin.process.computer.MapReduce Maven / Gradle / Ivy

package com.tinkerpop.gremlin.process.computer;

import com.tinkerpop.gremlin.structure.Vertex;
import org.apache.commons.configuration.Configuration;
import org.javatuples.Pair;

import java.io.Serializable;
import java.util.Iterator;

/**
 * @author Marko A. Rodriguez (http://markorodriguez.com)
 */
public interface MapReduce {

    public static enum Stage {MAP, COMBINE, REDUCE}


    public default void storeState(final Configuration configuration) {

    }

    public default void loadState(final Configuration configuration) {

    }

    public boolean doStage(final Stage stage);

    public default void map(final Vertex vertex, final MapEmitter emitter) {
    }

    public default void combine(final MK key, final Iterator values, final ReduceEmitter emitter) {
    }

    public default void reduce(final MK key, final Iterator values, final ReduceEmitter emitter) {
    }

    public R generateSideEffect(final Iterator> keyValues);

    public String getSideEffectKey();

    public default void addToSideEffects(final SideEffects sideEffects, final Iterator> keyValues) {
        sideEffects.set(this.getSideEffectKey(), this.generateSideEffect(keyValues));
    }

    //////////////////

    public interface MapEmitter {
        public void emit(final K key, final V value);
    }

    public interface ReduceEmitter {
        public void emit(final OK key, OV value);
    }

    //////////////////

    public static class NullObject implements Comparable, Serializable {
        private static final NullObject INSTANCE = new NullObject();
        private static final String NULL_OBJECT = "MapReduce$NullObject";

        public static NullObject instance() {
            return INSTANCE;
        }

        public int hashCode() {
            return 666666666;
        }

        public boolean equals(final Object object) {
            return object instanceof NullObject;
        }

        public int compareTo(final NullObject nullObject) {
            return 0;
        }

        public String toString() {
            return NULL_OBJECT;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy