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

com.sysunite.coinsweb.connector.NullModel Maven / Gradle / Ivy

The newest version!
package com.sysunite.coinsweb.connector;

import org.eclipse.rdf4j.model.*;
import org.eclipse.rdf4j.model.impl.AbstractModel;
import org.eclipse.rdf4j.model.impl.SimpleNamespace;
import org.eclipse.rdf4j.model.vocabulary.OWL;

import java.util.*;

import static com.sysunite.coinsweb.rdfutil.Utils.withoutHash;

/**
 * @author bastbijl, Sysunite 2017
 */
@SuppressWarnings("unchecked")
public class NullModel extends AbstractModel {


  private static final long serialVersionUID = -9161104123818983614L;



  Set namespaces = new LinkedHashSet<>();
  Set contexts = new LinkedHashSet<>();  //todo this does not work as
  ArrayList imports = new ArrayList<>();

  public NullModel() {
    this(128);
  }

  public NullModel(Model model) {
    this(model.getNamespaces());
    addAll(model);
  }

  public NullModel(Collection c) {
    this(c.size());
    addAll(c);
  }

  public NullModel(int size) {
    super();

  }

  public NullModel(Set namespaces, Collection c) {
    this(c);
    this.namespaces.addAll(namespaces);
  }

  public NullModel(Set namespaces) {
    this();
    this.namespaces.addAll(namespaces);
  }

  public NullModel(Set namespaces, int size) {
    this(size);
    this.namespaces.addAll(namespaces);
  }

  @Override
  public Optional getNamespace(String prefix) {
    for (Namespace nextNamespace : namespaces) {
      if (prefix.equals(nextNamespace.getPrefix())) {
        return Optional.of(nextNamespace);
      }
    }
    return Optional.empty();
  }

  @Override
  public Set getNamespaces() {
    return namespaces;
  }

  @Override
  public Namespace setNamespace(String prefix, String name) {
    removeNamespace(prefix);
    Namespace result = new SimpleNamespace(prefix, name);
    namespaces.add(result);
    return result;
  }

  @Override
  public void setNamespace(Namespace namespace) {
    removeNamespace(namespace.getPrefix());
    namespaces.add(namespace);
  }

  @Override
  public Optional removeNamespace(String prefix) {
    Optional result = getNamespace(prefix);
    if (result.isPresent()) {
      namespaces.remove(result.get());
    }
    return result;
  }

  @Override
  public int size() {
    return 0;
  }

  @Override
  public boolean add(Resource subj, IRI pred, Value obj, Resource... contexts) {

    if(OWL.IMPORTS.equals(pred)) {
      if(!(obj instanceof IRI)) {
        throw new RuntimeException("RDF source contains an owl:import statement that does not point to an IRI");
      }
      imports.add(withoutHash(((IRI)obj).stringValue()));
    }

    if(contexts != null && contexts.length > 0) {
      for(Resource context : contexts) {
        this.contexts.add(context);
      }
    }
    return false;
  }

  public ArrayList getImports() {
    return imports;
  }

  @Override
  public Set contexts() {
    return contexts;
  }

  @Override
  public void clear() {
    contexts = new LinkedHashSet<>();
  }

  @Override
  public boolean remove(Object o) {
    return false;
  }

  @Override
  public boolean contains(Object o) {
    return false;
  }

  @Override
  public Iterator iterator() {
    return null;
  }

  @Override
  public boolean contains(Resource subj, IRI pred, Value obj, Resource... contexts) {
    return false;
  }

  @Override
  public boolean remove(Resource subj, IRI pred, Value obj, Resource... contexts) {
    return false;
  }

  @Override
  public Model filter(final Resource subj, final IRI pred, final Value obj, final Resource... contexts) {
    return null;
  }

  @Override
  public void removeTermIteration(Iterator iterator, Resource subj, IRI pred, Value obj, Resource... contexts) {

  }







}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy