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

org.swrlapi.drools.owl.dataranges.D Maven / Gradle / Ivy

There is a newer version: 2.1.3
Show newest version
package org.swrlapi.drools.owl.dataranges;

import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.dataflow.qual.Deterministic;
import org.checkerframework.dataflow.qual.SideEffectFree;
import org.semanticweb.owlapi.model.OWLDatatype;
import org.semanticweb.owlapi.vocab.OWLRDFVocabulary;
import org.swrlapi.builtins.arguments.SWRLDatatypeBuiltInArgument;
import org.swrlapi.drools.extractors.DroolsOWLEntityExtractor;
import org.swrlapi.drools.extractors.DroolsSWRLBuiltInArgumentExtractor;
import org.swrlapi.drools.owl.core.OE;
import org.swrlapi.drools.swrl.BA;
import org.swrlapi.exceptions.TargetSWRLRuleEngineException;
import org.swrlapi.exceptions.TargetSWRLRuleEngineInternalException;

/**
 * This class represents an OWL datatype (e.g., xsd:int).
 *
 * @see org.semanticweb.owlapi.model.OWLDatatype
 */
public class D implements DR, OE
{
  private static final long serialVersionUID = 1L;

  @NonNull private final String id;

  public D(@NonNull String name)
  {
    this.id = name;
  }

  @NonNull public String getid()
  {
    return this.id;
  }

  /*
   * We have no way of anticipating the return types of built-ins in rules so we need to perform a runtime check.
   */
  public D(@NonNull BA ba)
  {
    if (ba instanceof D) {
      D d = (D)ba;
      this.id = d.getid();
    } else
      throw new TargetSWRLRuleEngineInternalException(
        "expecting OWL datatype from bound built-in argument, got " + ba.getClass().getCanonicalName());
  }

  @NonNull @Override public String getdrid()
  {
    return getid();
  }

  @NonNull @Override public OWLDatatype extract(@NonNull DroolsOWLEntityExtractor extractor)
    throws TargetSWRLRuleEngineException
  {
    return extractor.extract(this);
  }

  @NonNull @Override public SWRLDatatypeBuiltInArgument extract(@NonNull DroolsSWRLBuiltInArgumentExtractor extractor)
    throws TargetSWRLRuleEngineException
  {
    return extractor.extract(this);
  }

  @NonNull public static D getTopDatatype()
  {
    return new D(OWLRDFVocabulary.RDFS_LITERAL.getPrefixedName());
  }

  @NonNull @SideEffectFree  @Override public String toString()
  {
    return super.toString();
  }

  @SideEffectFree @Deterministic @Override public boolean equals(Object o)
  {
    if (this == o)
      return true;
    if (o == null || getClass() != o.getClass())
      return false;

    D d = (D)o;

    return id != null ? id.equals(d.id) : d.id == null;

  }

  @SideEffectFree @Deterministic @Override public int hashCode()
  {
    return id != null ? id.hashCode() : 0;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy