Example usage for org.apache.commons.collections15.map LazyMap decorate

List of usage examples for org.apache.commons.collections15.map LazyMap decorate

Introduction

In this page you can find the example usage for org.apache.commons.collections15.map LazyMap decorate.

Prototype

public static <K, V> Map<K, V> decorate(Map<K, V> map, Transformer<K, V> transformer) 

Source Link

Document

Factory method to create a lazily instantiated map.

Usage

From source file:au.id.hazelwood.xmltvguidebuilder.model.ChannelListings.java

public ChannelListings() {
    channelById = new LinkedHashMap<>();
    programsByChannelId = LazyMap.decorate(new HashMap<>(), new ProgrammeDetailSortedSetFactory());
}

From source file:edu.uci.ics.jung.visualization.layout.PersistentLayoutImpl.java

/**
 * create an instance with a passed layout
 * create containers for graph components
 * @param layout //w w w  .  j a v  a2 s  .  c  o m
 */
public PersistentLayoutImpl(Layout<V, E> layout) {
    super(layout);
    this.map = LazyMap.decorate(new HashMap<V, Point>(), new RandomPointFactory(getSize()));

    this.dontmove = new HashSet<V>();
}

From source file:edu.uci.ics.jung.algorithms.layout3d.AbstractLayout.java

protected AbstractLayout(Graph<V, E> graph, Transformer<V, Point3f> initializer) {
    this.graph = graph;
    this.locations = LazyMap.decorate(new HashMap<V, Point3f>(), initializer);
}

From source file:edu.uci.ics.jung.algorithms.layout3d.AbstractLayout.java

protected AbstractLayout(Graph<V, E> graph, Transformer<V, Point3f> initializer, BoundingSphere size) {
    this.graph = graph;
    this.locations = LazyMap.decorate(new HashMap<V, Point3f>(), initializer);
    this.size = size;
}

From source file:edu.uci.ics.jung.algorithms.layout.AbstractLayout.java

@SuppressWarnings("unchecked")
protected AbstractLayout(Graph<V, E> graph, Transformer<V, Point2D> initializer) {
    this.graph = graph;
    Transformer<V, ? extends Object> chain = ChainedTransformer.getInstance(initializer,
            CloneTransformer.getInstance());
    this.locations = LazyMap.decorate(new HashMap<V, Point2D>(), (Transformer<V, Point2D>) chain);
    initialized = true;/*from   w  ww .j  a v a  2s.c  om*/
}

From source file:net.schweerelos.parrot.ui.NodeWrapperPersistentLayoutImpl.java

public NodeWrapperPersistentLayoutImpl(Layout<NodeWrapper, NodeWrapper> delegate) {
    super(delegate);

    uriToNodeLocation = LazyMap.decorate(new HashMap<String, Point>(), new RandomPointFactory(getSize()));
    lockedVertices = new HashSet<NodeWrapper>();
    locked = false;/*from  w w  w . ja  v  a  2 s  .  c o m*/
}

From source file:edu.uci.ics.jung.algorithms.layout.AbstractLayout.java

@SuppressWarnings("unchecked")
protected AbstractLayout(Graph<V, E> graph, Transformer<V, Point2D> initializer, Dimension size) {
    this.graph = graph;
    Transformer<V, ? extends Object> chain = ChainedTransformer.getInstance(initializer,
            CloneTransformer.getInstance());
    this.locations = LazyMap.decorate(new HashMap<V, Point2D>(), (Transformer<V, Point2D>) chain);
    this.size = size;
}

From source file:edu.uci.ics.jung.algorithms.layout3d.AbstractLayout.java

public void setInitializer(Transformer<V, Point3f> initializer) {
    this.locations = LazyMap.decorate(new HashMap<V, Point3f>(locations), initializer);
}

From source file:edu.uci.ics.jung.algorithms.layout.AbstractLayout.java

@SuppressWarnings("unchecked")
public void setInitializer(Transformer<V, Point2D> initializer) {
    if (this.equals(initializer)) {
        throw new IllegalArgumentException("Layout cannot be initialized with itself");
    }/*www.j av a  2s.c  o  m*/
    Transformer<V, ? extends Object> chain = ChainedTransformer.getInstance(initializer,
            CloneTransformer.getInstance());
    this.locations = LazyMap.decorate(new HashMap<V, Point2D>(), (Transformer<V, Point2D>) chain);
    initialized = true;
}

From source file:edu.uci.ics.jung.io.PajekNetIOTest.java

public void testMixedSaveLoadSave() throws IOException {
    Graph<Number, Number> graph1 = new SparseMultigraph<Number, Number>();
    for (int i = 0; i < 5; i++) {
        graph1.addVertex(i);//from  w w w.  jav a2s .co  m
    }
    int j = 0;

    List<Number> id = new ArrayList<Number>(graph1.getVertices());//Indexer.getIndexer(graph1);
    GreekLabels<Number> gl = new GreekLabels<Number>(id);
    Number[] edges = { 0, 1, 2, 3, 4, 5 };

    graph1.addEdge(j++, 0, 1, EdgeType.DIRECTED);
    graph1.addEdge(j++, 0, 2, EdgeType.DIRECTED);
    graph1.addEdge(j++, 1, 2, EdgeType.DIRECTED);
    graph1.addEdge(j++, 1, 3);
    graph1.addEdge(j++, 1, 4);
    graph1.addEdge(j++, 4, 3);

    Map<Number, Number> nr = new HashMap<Number, Number>();
    for (int i = 0; i < edges.length; i++) {
        nr.put(edges[i], new Float(Math.random()));
    }

    assertEquals(graph1.getEdgeCount(), 6);

    //        System.err.println(" mixed graph1 = "+graph1);
    //        for(Number edge : graph1.getEdges()) {
    //           System.err.println("edge "+edge+" is directed? "+graph1.getEdgeType(edge));
    //        }
    //        for(Number v : graph1.getVertices()) {
    //           System.err.println(v+" outedges are "+graph1.getOutEdges(v));
    //           System.err.println(v+" inedges are "+graph1.getInEdges(v));
    //           System.err.println(v+" incidentedges are "+graph1.getIncidentEdges(v));
    //        }

    String testFilename = "mtest.net";
    String testFilename2 = testFilename + "2";

    // lay out network
    Dimension d = new Dimension(100, 200);
    Transformer<Number, Point2D> vld = TransformerUtils.mapTransformer(
            LazyMap.decorate(new HashMap<Number, Point2D>(), new RandomLocationTransformer<Number>(d)));

    PajekNetWriter<Number, Number> pnw = new PajekNetWriter<Number, Number>();
    pnw.save(graph1, testFilename, gl, MapTransformer.getInstance(nr), vld);

    Graph<Number, Number> graph2 = pnr.load(testFilename, graphFactory);
    Transformer<Number, String> pl = pnr.getVertexLabeller();
    List<Number> id2 = new ArrayList<Number>(graph2.getVertices());
    Transformer<Number, Point2D> vld2 = pnr.getVertexLocationTransformer();

    assertEquals(graph1.getVertexCount(), graph2.getVertexCount());
    assertEquals(graph1.getEdgeCount(), graph2.getEdgeCount());

    // test vertex labels and locations
    for (int i = 0; i < graph1.getVertexCount(); i++) {
        Number v1 = id.get(i);
        Number v2 = id2.get(i);
        assertEquals(gl.transform(v1), pl.transform(v2));
        assertEquals(vld.transform(v1), vld2.transform(v2));
    }

    // test edge weights
    Transformer<Number, Number> nr2 = pnr.getEdgeWeightTransformer();
    for (Number e2 : graph2.getEdges()) {
        Pair<Number> endpoints = graph2.getEndpoints(e2);
        Number v1_2 = endpoints.getFirst();
        Number v2_2 = endpoints.getSecond();
        Number v1_1 = id.get(id2.indexOf(v1_2));
        Number v2_1 = id.get(id2.indexOf(v2_2));
        Number e1 = graph1.findEdge(v1_1, v2_1);
        assertNotNull(e1);
        assertEquals(nr.get(e1).floatValue(), nr2.transform(e2).floatValue(), 0.0001);
    }

    pnw.save(graph2, testFilename2, pl, nr2, vld2);

    compareIndexedGraphs(graph1, graph2);

    pnr.setVertexLabeller(null);
    Graph<Number, Number> graph3 = pnr.load(testFilename2, graphFactory);

    compareIndexedGraphs(graph2, graph3);

    File file1 = new File(testFilename);
    File file2 = new File(testFilename2);

    Assert.assertTrue(file1.length() == file2.length());
    file1.delete();
    file2.delete();

}