/** * If there is a vertex resolver, * validate the generic parameter types. * */ private void verifyVertexResolverGenericTypes() { Class<? extends VertexResolver<I, V, E>> vrClass = conf.getVertexResolverClass(); if (DefaultVertexResolver.class.equals(vrClass)) { return; } Class<?>[] classList = getTypeArguments(VertexResolver.class, vrClass); checkEquals(classList, ID_PARAM_INDEX, vertexIndexType(), VertexResolver.class, "vertex index"); checkEquals(classList, VALUE_PARAM_INDEX, vertexValueType(), VertexResolver.class, "vertex value"); checkEquals(classList, EDGE_PARAM_INDEX, edgeValueType(), VertexResolver.class, "edge value"); }
/** * If there is a message combiner type, verify its * generic params match the job. */ private void verifyMessageCombinerGenericTypes() { MessageCombiner<I, M2> messageCombiner = conf.createOutgoingMessageCombiner(); if (messageCombiner != null) { Class<?>[] classList = getTypeArguments(MessageCombiner.class, messageCombiner.getClass()); checkEquals(classList, ID_PARAM_INDEX, vertexIndexType(), MessageCombiner.class, "vertex index"); checkEquals(classList, MSG_COMBINER_PARAM_INDEX, outgoingMessageValueType(), MessageCombiner.class, "message value"); } }
/** Verify that the vertex value factory's type matches the job */ private void verifyVertexValueFactoryGenericTypes() { Class<? extends VertexValueFactory<V>> vvfClass = conf.getVertexValueFactoryClass(); if (DefaultVertexValueFactory.class.equals(vvfClass)) { return; } Class<?>[] classList = getTypeArguments(VertexValueFactory.class, vvfClass); checkEquals(classList, VALUE_PARAM_VERTEX_VALUE_FACTORY_INDEX, vertexValueType(), VertexValueFactory.class, "vertex value"); }