All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hp.hpl.jena.ontology.impl.MinCardinalityQRestrictionImpl Maven / Gradle / Ivy

Go to download

Jena is a Java framework for building Semantic Web applications. It provides a programmatic environment for RDF, RDFS and OWL, SPARQL and includes a rule-based inference engine.

The newest version!
/*****************************************************************************
 * Source code information
 * -----------------------
 * Original author    Ian Dickinson, HP Labs Bristol
 * Author email       [email protected]
 * Package            Jena 2
 * Web                http://sourceforge.net/projects/jena/
 * Created            08-Sep-2003
 * Filename           $RCSfile: MinCardinalityQRestrictionImpl.java,v $
 * Revision           $Revision: 1.2 $
 * Release status     $State: Exp $
 *
 * Last modified on   $Date: 2009/10/06 13:04:42 $
 *               by   $Author: ian_dickinson $
 *
 * (c) Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Hewlett-Packard Development Company, LP
 * [See end of file]
 *****************************************************************************/

// Package
///////////////
package com.hp.hpl.jena.ontology.impl;


// Imports
///////////////
import com.hp.hpl.jena.enhanced.*;
import com.hp.hpl.jena.graph.*;
import com.hp.hpl.jena.ontology.*;


/**
 * 

* Implementation of the min qualified cardinality restriction *

* * @author Ian Dickinson, HP Labs * (email) * @version CVS $Id: MinCardinalityQRestrictionImpl.java,v 1.2 2009/10/06 13:04:42 ian_dickinson Exp $ */ public class MinCardinalityQRestrictionImpl extends QualifiedRestrictionImpl implements MinCardinalityQRestriction { // Constants ////////////////////////////////// // Static variables ////////////////////////////////// /** * A factory for generating QualifiedRestriction facets from nodes in enhanced graphs. * Note: should not be invoked directly by user code: use * {@link com.hp.hpl.jena.rdf.model.RDFNode#as as()} instead. */ @SuppressWarnings("hiding") public static Implementation factory = new Implementation() { @Override public EnhNode wrap( Node n, EnhGraph eg ) { if (canWrap( n, eg )) { return new MinCardinalityQRestrictionImpl( n, eg ); } else { throw new ConversionException( "Cannot convert node " + n + " to MinCardinalityQRestriction"); } } @Override public boolean canWrap( Node node, EnhGraph eg ) { return isMinCardinalityQRestriction( node, eg ); } }; public static boolean isMinCardinalityQRestriction( Node node, EnhGraph eg ) { // node will support being a QualifiedRestriction facet if it has rdf:type owl:Restriction or equivalent Profile profile = (eg instanceof OntModel) ? ((OntModel) eg).getProfile() : null; return (profile != null) && profile.isSupported( node, eg, MinCardinalityQRestriction.class ); } @Override public boolean isValid() { return super.isValid() && isMinCardinalityQRestriction( asNode(), getGraph() ); } // Instance variables ////////////////////////////////// /** *

* Construct a qualified restriction node represented by the given node in the given graph. *

* * @param n The node that represents the resource * @param g The enh graph that contains n */ public MinCardinalityQRestrictionImpl( Node n, EnhGraph g ) { super( n, g ); } // Constructors ////////////////////////////////// // External signature methods ////////////////////////////////// /** *

Assert that this restriction restricts the property to have the given * min cardinality. Any existing statements for cardinalityQ * will be removed.

* @param cardinality The cardinality of the restricted property * @exception OntProfileException If the {@link Profile#MIN_CARDINALITY_Q()} property is not supported in the current language profile. */ public void setMinCardinalityQ( int cardinality ) { setPropertyValue( getProfile().MIN_CARDINALITY_Q(), "MIN_CARDINALITY_Q", getModel().createTypedLiteral( cardinality ) ); } /** *

Answer the cardinality of the restricted property.

* @return The cardinality of the restricted property * @exception OntProfileException If the {@link Profile#MIN_CARDINALITY_Q()} property is not supported in the current language profile. */ public int getMinCardinalityQ() { return objectAsInt( getProfile().MIN_CARDINALITY_Q(), "MIN_CARDINALITY_Q" ); } /** *

Answer true if this property restriction has the given cardinality.

* @param cardinality The cardinality to test against * @return True if the given cardinality is the cardinality of the restricted property in this restriction * @exception OntProfileException If the {@link Profile#MIN_CARDINALITY_Q()} property is not supported in the current language profile. */ public boolean hasMinCardinalityQ( int cardinality ) { return hasPropertyValue( getProfile().MIN_CARDINALITY_Q(), "MIN_CARDINALITY_Q", getModel().createTypedLiteral( cardinality ) ); } /** *

Remove the statement that this restriction has the given cardinality * for the restricted property. If this statement * is not true of the current model, nothing happens.

* @param cardinality A cardinality value to be removed from this restriction * @exception OntProfileException If the {@link Profile#MIN_CARDINALITY_Q()} property is not supported in the current language profile. */ public void removeMinCardinalityQ( int cardinality ) { removePropertyValue( getProfile().MIN_CARDINALITY_Q(), "MIN_CARDINALITY_Q", getModel().createTypedLiteral( cardinality ) ); } // Internal implementation methods ////////////////////////////////// //============================================================================== // Inner class definitions //============================================================================== } /* * (c) Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Hewlett-Packard Development Company, LP * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. 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. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. */




© 2015 - 2024 Weber Informatics LLC | Privacy Policy