Log in Help
Print
Homereleasesgate-5.1-beta2-build3402-ALLpluginsGazetteer_Ontology_Basedsrcgatecloneqlutils 〉 StringUtil.java
 
/*
 *  StringUtil.java
 *
 *  Copyright (c) 1998-2008, The University of Sheffield.
 *
 *  This file is part of GATE (see http://gate.ac.uk/), and is free
 *  software, licenced under the GNU Library General Public License,
 *  Version 2, June 1991 (in the distribution as file licence.html,
 *  and also available at http://gate.ac.uk/gate/licence.html).
 */
package gate.clone.ql.utils;

import gate.clone.ql.CATConstants;
import gate.creole.ontology.InvalidURIException;
import gate.creole.ontology.URI;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.logging.Logger;

/**
 * 
 * @author Danica Damljanovic
 * 
 */
public class StringUtil {

  static Logger logger = Logger.getLogger(CATConstants.LOGGER_NAME);

  /**
   * This method assume that given string is in the form of
   * QueryResultsTable.toString() with 2 columns and converts it to HashMap
   * where key is the first entry from the table and the value is the set of
   * second entries.
   * 
   * @param resultsTable
   * @return a Map with a key taken from the first column of the table and a
   *         value being a set of values taken from the second column.
   */
  public static Map<String, Set<String>> fromStringToMap(String resultsTable) {
    Map<String, Set<String>> map = new HashMap<String, Set<String>>();

    String[] rows = resultsTable.split(CATConstants.NEW_LINE);
    for(String eachRow : rows) {
      String[] columns = eachRow.split("\\|");
      if(columns.length == 2) {
        String propertyUri = columns[0].trim();
        String classUri = columns[1].trim();
        Set<String> classes = map.get(propertyUri);
        if(classes == null) {
          classes = new HashSet<String>();
        }
        classes.add(classUri);
        try {
          URI uri = new URI(propertyUri, false);
          map.put(propertyUri, classes);
        }
        catch(InvalidURIException e) {
          // logger.info("URI:" + propertyUri + " is not valid.\n");
        }
      }
    }
    return map;
  }

  /**
   * This method assume that given string is in the form of
   * QueryResultsTable.toString() with 1 column and converts it to the Set of
   * strings i.e. values from the each row of the table
   * 
   * @param resultsTable
   * @return a Set of Strings from the given table (string separated by new
   *         lines)
   */
  public static Set<String> fromStringToSet(String resultsTable) {
    Set<String> set = new HashSet<String>();
    String[] rows = resultsTable.split(CATConstants.NEW_LINE);
    for(String eachRow : rows) {
      String uri = eachRow.trim();
      try {
        URI uriUri = new URI(uri, false);
        set.add(uri);
      }
      catch(InvalidURIException e) {
        // logger.info("URI:" + uri + " is not valid.\n");
      }

    }
    return set;
  }

}