Package org.librdf.redland

Source Code of org.librdf.redland.Node

// -*- Mode: java; c-basic-offset: 2 -*-
//
// node.java - Redland Java Node class
//
// $Id: Node.java,v 1.1.1.1 2005/07/06 09:38:37 gully Exp $
//
// Copyright (C) 2001-2003 David Beckett - http://purl.org/net/dajobe/
// Institute for Learning and Research Technology - http://www.ilrt.org/
// University of Bristol - http://www.bristol.ac.uk/
//
// This package is Free Software or Open Source available under the
// following licenses (these are alternatives):
//   1. GNU Lesser General Public License (LGPL)
//   2. GNU General Public License (GPL)
//   3. Mozilla Public License (MPL)
//
// See LICENSE.html or LICENSE.txt at the top of this package for the
// full license terms.
//
//
//

package org.librdf.redland;

import org.librdf.redland.core;
import org.librdf.redland.World;
import org.librdf.redland.URI;

/** Node is an interface to the Redland librdf_node class
*
* <p>An <code>Node</code> is a class that represents nodes (resource,
* literal, blank node) and arcs (properties, predicates) in the graph.</p>
*
* @version Revision='$Revision: 1.1.1.1 $' Date='$Date: 2005/07/06 09:38:37 $'
*/

public class Node
{
  private long object;
  private World world;
 
  /**
   * Construct a new resource node
   *
   * @param world       Redland world object
   */
  public Node(World world)
    {
      this.world=world;
      this.object=core.librdf_new_node(world.__get_object());
    }

  /**
   * Construct a new resource node from a URI string or blank node identifier
   *
   * @param world       Redland world object
   * @param identifier  The URI string / identifier or null
   * @param is_blank    boolean to distinguish the two cases
   */
  public Node(World world, String identifier, boolean is_blank)
    {
      this.world=world;
      if(is_blank)
        this.object=core.librdf_new_node_from_blank_identifier(world.__get_object(), identifier);
      else
        this.object=core.librdf_new_node_from_uri_string(world.__get_object(), identifier);
    }

  /**
   * Construct a new resource node from a URI
   *
   * @param world       Redland world object
   * @param uri         The Redland URI object or null
   */
  public Node(World world, URI uri)
    {
      this.world=world;
      this.object=core.librdf_new_node_from_uri(world.__get_object(), uri.__get_object());
    }

  /**
   * Construct a new literal node, optionally from a URI
   *
   * @param world       Redland world object
   * @param uri         The Redland URI object or null
   */
  public Node(World world, String literal_string, String xml_language,
              boolean is_wf_xml)
    {
      int is_wf_xml_int=is_wf_xml ? 1 : 0;
      this.world=world;
      this.object=core.librdf_new_node_from_literal(world.__get_object(), literal_string, xml_language, is_wf_xml_int);
    }

  /**
   * Construct a new node from an existing node (copy constructor)
   *
   * @param world       Redland world object
   * @param old_node    The Redland Node object
   */
  public Node(Node old_node)
    {
      this.world=old_node.world;
      this.object=core.librdf_new_node_from_node(old_node.object);
    }

  // internal constructor to build an object from a node created
  // by librdf e.g. from the result of a iterator.next() operation
  protected Node(World world, long object, boolean do_not_copy)
    {
      this.world=world;
      this.object=object;
    }


  protected Node(World world, long object)
    {
      this.world=world;
      this.object=core.librdf_new_node_from_node(object);
    }


  public void finished()
    {
      if(this.object != 0) {
        core.librdf_free_node(this.object);
        this.object=0;
        this.world=null;
      }
    }

 
  public URI getURI()
    {
      long uri_object=core.librdf_node_get_uri(this.object);
      return new URI(this.world, uri_object);
    }

  public int getType()
    {
      return core.librdf_node_get_type(this.object);
    }

  public boolean isResource()
    {
      return (core.librdf_node_is_resource(this.object) != 0);
    }

  public boolean isLiteral()
    {
      return (core.librdf_node_is_literal(this.object) != 0);
    }

  public boolean isBlank()
    {
      return (core.librdf_node_is_blank(this.object) != 0);
    }

  public String getLiteralValue()
    {
      return core.librdf_node_get_literal_value(this.object);
    }
 
  public String getLiteralValueAsLatin1()
    {
      return core.librdf_node_get_literal_value_as_latin1(this.object);
    }
 
  public String getLiteralValueLanguage()
    {
      return core.librdf_node_get_literal_value_language(this.object);
    }
 
  public boolean getLiteralValueIsWfXML()
    {
      int is_wf_xml_int=core.librdf_node_get_literal_value_is_wf_xml(this.object);
      return (is_wf_xml_int >0);
    }
 

  public String toString()
    {
      return core.librdf_node_to_string(this.object);
    }
 

  public boolean equals(Node first_node, Node second_node)
    {
      int equals=core.librdf_node_equals(first_node.object, second_node.object);
      return (equals != 0);
    }


  protected long __get_object()
    {
      return this.object;
    }

}
TOP

Related Classes of org.librdf.redland.Node

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.