Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove PSG from SimGrid git
[simgrid.git] / contrib / psg / src / peersim / graph / GraphIO.java
diff --git a/contrib/psg/src/peersim/graph/GraphIO.java b/contrib/psg/src/peersim/graph/GraphIO.java
deleted file mode 100644 (file)
index 9d928d3..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The BISON Project
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-               
-package peersim.graph;
-
-import java.util.*;
-import java.io.*;
-
-/**
-* Implements static methods to load and write graphs.
-*/
-public class GraphIO {
-private GraphIO() {}
-
-
-// ================== public static methods =========================
-// ==================================================================
-
-
-/**
-* Prints graph in edge list format. Each line contains exactly two
-* node IDs separated by whitespace.
-*/
-public static void writeEdgeList( Graph g, PrintStream out ) {
-
-       for(int i=0; i<g.size(); ++i)
-       {
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       out.println(i+" "+it.next());
-               }
-       }
-}
-
-// ------------------------------------------------------------------
-
-/**
-* Prints graph in neighbor list format. Each line starts with the
-* id of a node followed by the ids of its neighbors separated by space.
-*/
-public static void writeNeighborList( Graph g, PrintStream out ) {
-
-       out.println("# "+g.size());
-       
-       for(int i=0; i<g.size(); ++i)
-       {
-               out.print(i+" ");
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       out.print(it.next()+" ");
-               }
-               out.println();
-       }
-}
-
-// ------------------------------------------------------------------
-
-/**
-* Saves the given graph to
-* the given stream in DOT format. Good for the graphviz package.
-*/
-public static void writeDOT( Graph g, PrintStream out ) {
-
-       out.println((g.directed()?"digraph":"graph")+" {");
-       
-       for(int i=0; i<g.size(); ++i)
-       {
-               Iterator<Integer> it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       final int j = it.next();
-                       if(g.directed())
-                               out.println(i+" -> "+j+";");
-                       else if( i<=j )
-                               out.println(i+" -- "+j+";");
-               }
-       }
-       
-       out.println("}");
-}
-
-// ------------------------------------------------------------------
-
-/**
-* Saves the given graph to
-* the given stream in GML format.
-*/
-public static void writeGML( Graph g, PrintStream out ) {
-
-       out.println("graph [ directed "+(g.directed()?"1":"0"));
-       
-       for(int i=0; i<g.size(); ++i)
-               out.println("node [ id "+i+" ]");
-       
-       for(int i=0; i<g.size(); ++i)
-       {
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       out.println(
-                               "edge [ source "+i+" target "+it.next()+" ]");
-               }
-       }
-       
-       out.println("]");
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Saves the given graph to
-* the given stream to be read by NETMETER. It should be ok also for Pajek.
-*/
-public static void writeNetmeter( Graph g, PrintStream out ) {
-
-       out.println("*Vertices "+g.size());
-       for(int i=0; i<g.size(); ++i)
-               out.println((i+1)+" \""+(i+1)+"\"");
-       
-       out.println("*Arcs");
-       for(int i=0; i<g.size(); ++i)
-       {
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       out.println((i+1)+" "+
-                               (((Integer)it.next()).intValue()+1)+" 1");
-               }
-       }
-       out.println("*Edges");
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Saves the given graph to
-* the given stream in UCINET DL nodelist format.
-*/
-public static void writeUCINET_DL( Graph g, PrintStream out ) {
-
-       out.println("DL\nN="+g.size()+"\nFORMAT=NODELIST\nDATA:");
-       
-       for(int i=0; i<g.size(); ++i)
-       {
-               out.print(" " + (i+1));
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       out.print(" "+(((Integer)it.next()).intValue()+1));
-               }
-               out.println();
-       }
-       out.println();
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Saves the given graph to
-* the given stream in UCINET DL matrix format.
-*/
-public static void writeUCINET_DLMatrix( Graph g, PrintStream out ) {
-
-       out.println("DL\nN="+g.size()+"\nDATA:");
-       
-       for(int i=0; i<g.size(); ++i)
-       {
-               BitSet bs = new BitSet(g.size());
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       bs.set( ((Integer)it.next()).intValue() );
-               }
-               for(int j=0; j<g.size(); ++j)
-               {
-                       out.print(bs.get(j)?" 1":" 0");
-               }
-               out.println();
-       }
-       out.println();
-}
-
-// --------------------------------------------------------------------
-
-/**
-* Saves the given graph to
-* the given stream in Chaco format. We need to output the number of edges
-* so they have to be counted first which might not be very efficient.
-* Note that this format is designed for undirected graphs only.
-*/
-public static void writeChaco( Graph g, PrintStream out ) {
-
-       if( g.directed() ) System.err.println(
-               "warning: you're saving a directed graph in Chaco format");
-       
-       long edges = 0;
-       for(int i=0; i<g.size(); ++i) edges += g.getNeighbours(i).size();
-       
-       out.println( g.size() + " " + edges/2 );
-       
-       for(int i=0; i<g.size(); ++i)
-       {
-               Iterator it=g.getNeighbours(i).iterator();
-               while(it.hasNext())
-               {
-                       out.print((((Integer)it.next()).intValue()+1)+" ");
-               }
-               out.println();
-       }
-       
-       out.println();
-}
-
-// -------------------------------------------------------------------
-
-/**
-* Read a graph in newscast graph format.
-* The format depends on mode, the parameter.
-* The file begins with the three byte latin 1 coded "NCG" string followed
-* by the int MODE which is the
-* given parameter. The formats are the following as a function of mode:
-* <ul>
-* <li> 1: Begins with cacheSize in binary format (int), followed by the
-*     numberOfNodes (int), and then a continuous series of exactly
-*     numberOfNodes records, where a record describes a node's
-*     neighbours and their timestamps.
-*     A record is a series of exactly cacheSize (int,long) pairs where
-*     the int is the node id, and the long is the timestamp.
-*     Node id-s start from 1. Node id 0 means no node and used if the parent
-*     node has less that cacheSize nodes.</li>
-* </ul>
-* @param file Filename to read
-* @param direction If 0, the original directionality is preserved, if 1,
-* than each edge is reversed, if 2 then directionality is dropped and the
-* returned graph will be undirected.
-*/
-public static Graph readNewscastGraph( String file, int direction )
-throws IOException {
-       
-       NeighbourListGraph gr = new NeighbourListGraph( direction != 2 );
-       FileInputStream fis = new FileInputStream(file);
-       DataInputStream dis = new DataInputStream(fis);
-
-       dis.readByte();
-       dis.readByte();
-       dis.readByte();
-       
-       final int MODE = dis.readInt();
-       if( MODE != 1 ) throw new IOException("Unknown mode "+MODE);
-       
-       final int CACHESIZE = dis.readInt(); 
-       final int GRAPHSIZE = dis.readInt(); 
-       
-//System.out.println("header: "+MODE+" "+CACHESIZE+" "+GRAPHSIZE);
-       
-       for(int i=1; i<=GRAPHSIZE; ++i)
-       {
-               int iind = gr.addNode(i);
-               
-               for(int j=0; j<CACHESIZE; ++j)
-               {
-                       int a = dis.readInt();
-                       dis.readLong();
-                       
-                       int agentIndex = gr.addNode(a);
-                       if( direction == 0 ) gr.setEdge(iind,agentIndex);
-                       else gr.setEdge(agentIndex,iind);
-               }
-       }
-       
-       dis.close();
-
-       return gr;
-}
-
-
-}
-