Package translator

Source Code of translator.SILWriter

/*
* Copyright (c) 2010 Mathew Hall, University of Sheffield.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or
* without modification, are permitted provided that the following conditions
* are met:
*
* Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
*
* Neither the name of the University of Sheffield nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
package translator;

import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

import primitives.cluster.ClusterHead;
import primitives.cluster.IClusterLevel;
import primitives.graph.Graph;
import primitives.graph.Node;

public class SILWriter implements GraphWriter {

  public static String getSIL(ClusterHead ch) {
    String ret = "";

    for (IClusterLevel l : ch.getChildren()) {
      ret += writeCluster(l);
    }
    return ret;
  }

  public static String writeCluster(IClusterLevel l) {
    return "SS(SS-L0:" + getName(l) + ")=" + join(getNodeNames(l), ",")
        + "\n";
  }

  public static String getName(IClusterLevel cl) {
    return join(cl.getIDs(), "_");
  }

  private static String join(Collection<? extends Object> c, String d) {
    String ret = "";
    Iterator<? extends Object> iter = c.iterator();
    while (iter.hasNext()) {
      ret += (iter.next()).toString();
      if (iter.hasNext()) {
        ret += d;
      }
    }
    return ret;

  }

  public static Set<String> getNodeNames(IClusterLevel l) {
    HashSet<String> nodes = new HashSet<String>();
    for (Node n : l.getNodes()) {
      nodes.add(n.getLabel());
    }
    return nodes;
  }

  @Override
  public String getRepresentation(ClusterHead ch) {
    return getSIL(ch);
  }

  @Override
  public String getRepresentation(Graph g) {
    // TODO Auto-generated method stub
    return getSIL(new ClusterHead(g));
  }

}
TOP

Related Classes of translator.SILWriter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.