// $Id: COLIM_GRAPH.java,v 1.2 1998/04/07 13:34:10 mich Exp $ package agg.xt_basis.colim; //------------------------------------------------------------------- // Colimit Basic Data Type COLIM_GRAPH //------------------------------------------------------------------- // Copyright (c) 1995 Technical University of Berlin, Dept TFS. // All rights reserved. // Colimes Computation Project V1.0 98/02/15 // Author: Dietmar Wolz, Technical University Berlin FB 13, WE 1331 // email: dietmar@cs.tu-berlin.de //------------------------------------------------------------------- import java.util.Enumeration; //import COLIM_DEFS; //import COLIM_VECTOR; //import INT_VECTOR; public class COLIM_GRAPH implements COLIM_DEFS { public COLIM_GRAPH() { f_node = new COLIM_VECTOR(); f_edge = new COLIM_VECTOR(); f_source = new INT_VECTOR(); f_target = new INT_VECTOR(); } public COLIM_GRAPH(COLIM_VECTOR nodes, COLIM_VECTOR edges, INT_VECTOR source, INT_VECTOR target) { f_node = new COLIM_VECTOR (nodes); f_edge = new COLIM_VECTOR (edges); f_source = new INT_VECTOR (source); f_target = new INT_VECTOR (target); } //---------------- construction -------------------- public int insert_node(Object node_attr) { int n = f_node.size(); f_node.push_back(node_attr); return n; } public int insert_edge(Object edge_attr, int s, int t) { int e = f_edge.size(); f_edge.push_back(edge_attr); f_source.push_back(s); f_target.push_back(t); return e; } public Object node_attr(int node) { return f_node.item(node); } public Object edge_attr(int edge) { return f_edge.item(edge); } public int source(int edge) { return f_source.item(edge); } public int target(int edge) { return f_target.item(edge); } //---------------- test output --------------------- @SuppressWarnings("rawtypes") public String toString() { StringBuffer Result = new StringBuffer("\nnodes: "); for (Enumeration en = f_node.elements(); en.hasMoreElements(); ) { Object n = en.nextElement(); if (n != null) { Result.append(n.toString()); if (en.hasMoreElements()) Result.append(","); } } Result.append("\nedges: "); int index = 0; for (Enumeration en = f_edge.elements(); en.hasMoreElements(); index++) { Object e = en.nextElement(); if (e != null) { Result.append(f_node.item(f_source.item(index)).toString()); Result.append("--"); Result.append(e.toString()); Result.append("->"); Result.append(f_node.item(f_target.item(index)).toString()); if (en.hasMoreElements()) Result.append(", "); } } Result.append("\n"); return new String(Result); } protected COLIM_VECTOR f_node; protected COLIM_VECTOR f_edge; protected INT_VECTOR f_source; protected INT_VECTOR f_target; }