OntologyHelper.java :  » UnTagged » stevie » de » unikoblenz » west » csxpoi » server » Android Open Source

Android Open Source » UnTagged » stevie 
stevie » de » unikoblenz » west » csxpoi » server » OntologyHelper.java
package de.unikoblenz.west.csxpoi.server;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.openrdf.model.URI;
import org.openrdf.query.BindingSet;
import org.openrdf.query.MalformedQueryException;
import org.openrdf.query.QueryEvaluationException;
import org.openrdf.query.QueryLanguage;
import org.openrdf.query.TupleQuery;
import org.openrdf.query.TupleQueryResult;
import org.openrdf.repository.RepositoryConnection;
import org.openrdf.repository.RepositoryException;

/**
 * A collection of methods for creating new instances in the ontology.
 */
public class OntologyHelper {

  /**
   * Generates an unused URI for a contribution instance.
   * 
   * @param connection
   *            a repository connection
   * @return an unused URI for a contribution instance
   */
  public static String generateContributionUri(RepositoryConnection connection) {

    int maxId = 0;

    try {
      TupleQuery query = connection.prepareTupleQuery(
          QueryLanguage.SPARQL, "PREFIX base: <" + Constants.NS_BASE
              + "> " + "SELECT ?contribution WHERE {"
              + " ?contribution a base:Contribution ." + "}");
      TupleQueryResult result = query.evaluate();
      try {
        while (result.hasNext()) {
          BindingSet bindingSet = result.next();
          int id = Integer.valueOf(((URI) bindingSet
              .getValue("contribution")).getLocalName());
          if (id > maxId)
            maxId = id;
        }
      } finally {
        result.close();
      }
    } catch (RepositoryException e) {
      e.printStackTrace();
    } catch (MalformedQueryException e) {
      e.printStackTrace();
    } catch (QueryEvaluationException e) {
      e.printStackTrace();
    }

    return Constants.NS_CONTRIBUTION + (maxId + 1);
  }

  /**
   * Generates an unused URI for a POI instance.
   * 
   * @param connection
   *            a repository connection
   * @return an unused URI for a POI instance
   */
  public static String generatePoiUri(RepositoryConnection connection) {

    int maxId = 0;

    try {
      TupleQuery query = connection.prepareTupleQuery(
          QueryLanguage.SPARQL, "PREFIX base: <" + Constants.NS_BASE
              + "> " + "SELECT ?poi WHERE {"
              + " ?poi a base:Poi ." + "}");
      TupleQueryResult result = query.evaluate();
      try {
        while (result.hasNext()) {
          try {
            BindingSet bindingSet = result.next();

//            System.out.println("POIS: "
//                + bindingSet.getValue("poi"));

            int id = Integer.valueOf(((URI) bindingSet
                .getValue("poi")).getLocalName());
            if (id > maxId)
              maxId = id;
          } catch (Exception e) {
            e.printStackTrace();
          }
        }
      } finally {
        result.close();
      }
    } catch (RepositoryException e) {
      e.printStackTrace();
    } catch (MalformedQueryException e) {
      e.printStackTrace();
    } catch (QueryEvaluationException e) {
      e.printStackTrace();
    }

    return Constants.NS_POI + (maxId + 1);
  }

  /**
   * Generates a string of the current date and time formatted for
   * xsd:dateTime.
   * 
   * @return the current date and time string
   */
  public static String generateDateTimeString() {
    return generateDateTimeString(new Date());
  }

  /**
   * Generates a string of the specified date and time formatted for
   * xsd:dateTime.
   * 
   * @param dateTime
   *            a date and time
   * @return the specified date and time string
   */
  public static String generateDateTimeString(Date dateTime) {
    String dateTimeString = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
        .format(dateTime);
    return new StringBuffer(dateTimeString).insert(
        dateTimeString.length() - 2, ":").toString();
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.