code: package it.unibz.inf.ontop.model.type.impl;
  
  import it.unibz.inf.ontop.exception.OntopInternalBugException;
  import it.unibz.inf.ontop.model.type.DBTermType;
  import it.unibz.inf.ontop.model.type.RDFDatatype;
  import it.unibz.inf.ontop.model.type.TermTypeAncestry;
  
  import java.util.Optional;
  
  public class ArrayDBTermType extends DBTermTypeImpl implements DBTermType {
  
      public ArrayDBTermType(String arrayStr, TermTypeAncestry ancestry) {
          super(arrayStr, ancestry, false, DBTermType.Category.OTHER);
      }
  
      @Override
      public Optional<RDFDatatype> getNaturalRDFDatatype() {
          return Optional.empty();
      }
  
      @Override
      public boolean isNeedingIRISafeEncoding() {
          return false;
      }
  
      @Override
      public boolean areEqualitiesStrict() {
          throw new IllegalArrayComparisonException("A query should not check equality between two arrays");
      }
  
      @Override
      public Optional<Boolean> areEqualitiesStrict(DBTermType otherType) {
          throw new IllegalArrayComparisonException("A query should not check equality between two arrays");
      }
  
      @Override
      public boolean areEqualitiesBetweenTwoDBAttributesStrict() {
          throw new IllegalArrayComparisonException("A query should not check equality between two arrays");
      }
  
  
      public class IllegalArrayComparisonException extends OntopInternalBugException {
          public IllegalArrayComparisonException (String message) {
              super(message);
          }
      }
  }
  