Example usage for com.amazonaws.services.datapipeline.model Field getRefValue

List of usage examples for com.amazonaws.services.datapipeline.model Field getRefValue

Introduction

In this page you can find the example usage for com.amazonaws.services.datapipeline.model Field getRefValue.

Prototype


public String getRefValue() 

Source Link

Document

The field value, expressed as the identifier of another object.

Usage

From source file:com.shazam.dataengineering.pipelinebuilder.GraphWriter.java

License:Apache License

/**
 * Build DAG of the pipeline for writing to DOT
 * Only generates activity information. Full graphs tend to be very noisy.
 *
 * @return DirectedMultigraph representation of the pipeline
 *///from w w  w.j  av  a2 s. c  o  m
@SuppressWarnings("unchecked")
private DirectedMultigraph getGraph(PipelineObject pipeline) {
    DirectedMultigraph graph = new DirectedMultigraph<com.amazonaws.services.datapipeline.model.PipelineObject, RelationshipEdge>(
            new ClassBasedEdgeFactory<com.amazonaws.services.datapipeline.model.PipelineObject, RelationshipEdge>(
                    RelationshipEdge.class));

    // Maintain map for easier edge creation
    HashMap<String, com.amazonaws.services.datapipeline.model.PipelineObject> idToPipeline = new HashMap<String, com.amazonaws.services.datapipeline.model.PipelineObject>();

    List<com.amazonaws.services.datapipeline.model.PipelineObject> awsObjects = pipeline.getAWSObjects();
    for (com.amazonaws.services.datapipeline.model.PipelineObject awsObject : awsObjects) {
        // Ignore everything except activities
        if (!awsObject.getId().equals("Default")) {
            for (Field field : awsObject.getFields()) {
                // Only add activities to the DOT
                if (field.getKey().equals("type") && field.getStringValue().contains("Activity")) {
                    idToPipeline.put(awsObject.getId(), awsObject);
                    graph.addVertex(awsObject);
                }
            }
        }
    }

    for (com.amazonaws.services.datapipeline.model.PipelineObject awsObject : (Set<com.amazonaws.services.datapipeline.model.PipelineObject>) graph
            .vertexSet()) {
        List<Field> fields = awsObject.getFields();
        for (Field field : fields) {
            if (field.getRefValue() != null && idToPipeline.containsKey(field.getRefValue())) {
                graph.addEdge(awsObject, idToPipeline.get(field.getRefValue()),
                        new RelationshipEdge<com.amazonaws.services.datapipeline.model.PipelineObject>(
                                awsObject, idToPipeline.get(field.getRefValue()), field.getKey()));
            }
        }
    }

    return graph;
}