public VertexQuery has(String key, Predicate prdct, Object value) {
    if (prdct instanceof com.tinkerpop.blueprints.Compare) {
      com.tinkerpop.blueprints.Compare compare = (com.tinkerpop.blueprints.Compare) prdct;

      switch (compare) {
        case EQUAL:
          propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.EQUAL);
          break;
        case NOT_EQUAL:
          propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.NOT_EQUAL);
          break;
        case GREATER_THAN:
          propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.GREATER_THAN);
          break;
        case LESS_THAN:
          propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.LESS_THAN);
          break;
        case GREATER_THAN_EQUAL:
          propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.GREATER_THAN_EQUAL);
          break;
        case LESS_THAN_EQUAL:
          propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.LESS_THAN_EQUAL);
          break;
      }
    } else if (prdct instanceof com.tinkerpop.blueprints.Contains) {

    }
    return this;
  }
 public <T extends Comparable<T>> VertexQuery has(
     final String key, final T value, final Compare compare) {
   switch (compare) {
     case EQUAL:
       propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.EQUAL);
       break;
     case NOT_EQUAL:
       propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.NOT_EQUAL);
       break;
     case GREATER_THAN:
       propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.GREATER_THAN);
       break;
     case LESS_THAN:
       propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.LESS_THAN);
       break;
     case GREATER_THAN_EQUAL:
       propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.GREATER_THAN_EQUAL);
       break;
     case LESS_THAN_EQUAL:
       propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.LESS_THAN_EQUAL);
       break;
   }
   return this;
 }
 public VertexQuery has(final String key, final Object value) {
   propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.EQUAL);
   return this;
 }
 public <T extends Comparable<?>> VertexQuery interval(String key, T startValue, T endValue) {
   propertyFilter.has(key, startValue, ArangoDBPropertyFilter.Compare.GREATER_THAN_EQUAL);
   propertyFilter.has(key, endValue, ArangoDBPropertyFilter.Compare.LESS_THAN);
   return this;
 }
 public VertexQuery hasNot(String key, Object value) {
   propertyFilter.has(key, value, ArangoDBPropertyFilter.Compare.NOT_EQUAL);
   return this;
 }
 public VertexQuery hasNot(String key) {
   propertyFilter.has(key, null, ArangoDBPropertyFilter.Compare.HAS_NOT);
   return this;
 }