Exemplo n.º 1
0
 @Override
 public void accept(Visitor visitor) {
   super.accept(visitor);
   if (filter != null) {
     visitor.visit(filter);
   }
 }
Exemplo n.º 2
0
 /**
  * 列表过滤
  *
  * @param <T>
  * @param objs
  * @param filter
  * @return
  */
 public static <T> List<T> filter(List<T> objs, ObjectFilter<T> filter) {
   List<T> new_objs = new ArrayList<T>();
   for (T obj : objs) {
     if (filter.filter(obj)) new_objs.add(obj);
   }
   return new_objs;
 }
Exemplo n.º 3
0
 @Override
 public int hashCode() {
   int result = fullPath != null ? fullPath.hashCode() : 0;
   result = 31 * result + (definition != null ? definition.hashCode() : 0);
   result = 31 * result + (filter != null ? filter.hashCode() : 0);
   return result;
 }
Exemplo n.º 4
0
  private void initForByte(byte value) {

    this.value = (VALUE) (Byte) value;

    switch (operator) {
      case EQUAL:
        nativeDelegate = ObjectFilter.eqByte(name, (value));
        break;

      case NOT_EQUAL:
        nativeDelegate = ObjectFilter.notEqByte(name, (value));
        break;

      case LESS_THAN:
        nativeDelegate = ObjectFilter.ltByte(name, (value));
        break;

      case LESS_THAN_EQUAL:
        nativeDelegate = ObjectFilter.lteByte(name, (value));
        break;

      case GREATER_THAN:
        nativeDelegate = ObjectFilter.gtByte(name, (value));
        break;

      case GREATER_THAN_EQUAL:
        nativeDelegate = ObjectFilter.gteByte(name, (value));
        break;

      case IN:
        nativeDelegate = ObjectFilter.inBytes(name, Conversions.barray(values));
        break;

      case NOT_IN:
        nativeDelegate = ObjectFilter.notInBytes(name, Conversions.barray(values));

        break;

      case BETWEEN:
        nativeDelegate = ObjectFilter.betweenByte(name, (value), Conversions.toByte(values[1]));
        break;

      default:
        useDelegate = false;
    }
  }
Exemplo n.º 5
0
  private void initForLong(long value) {

    this.value = (VALUE) (Long) value;

    switch (operator) {
      case EQUAL:
        nativeDelegate = ObjectFilter.eqLong(name, (value));
        break;

      case NOT_EQUAL:
        nativeDelegate = ObjectFilter.notEqLong(name, (value));
        break;

      case LESS_THAN:
        nativeDelegate = ObjectFilter.ltLong(name, (value));
        break;

      case LESS_THAN_EQUAL:
        nativeDelegate = ObjectFilter.lteLong(name, (value));
        break;

      case GREATER_THAN:
        nativeDelegate = ObjectFilter.gtLong(name, (value));
        break;

      case GREATER_THAN_EQUAL:
        nativeDelegate = ObjectFilter.gteLong(name, (value));
        break;

      case IN:
        nativeDelegate = ObjectFilter.inLongs(name, Conversions.larray(values));
        break;

      case BETWEEN:
        nativeDelegate = ObjectFilter.betweenLong(name, (value), Conversions.toLong(values[1]));
        break;

      case NOT_IN:
        nativeDelegate = ObjectFilter.notInLongs(name, Conversions.larray(values));

        break;

      default:
        useDelegate = false;
    }
  }
Exemplo n.º 6
0
  private void initForFloat(float value) {

    this.value = (VALUE) (Float) value;

    switch (operator) {
      case EQUAL:
        nativeDelegate = ObjectFilter.eqFloat(name, (value));
        break;

      case NOT_EQUAL:
        nativeDelegate = ObjectFilter.notEqFloat(name, (value));
        break;

      case LESS_THAN:
        nativeDelegate = ObjectFilter.ltFloat(name, (value));
        break;

      case LESS_THAN_EQUAL:
        nativeDelegate = ObjectFilter.lteFloat(name, (value));
        break;

      case GREATER_THAN:
        nativeDelegate = ObjectFilter.gtFloat(name, (value));
        break;

      case GREATER_THAN_EQUAL:
        nativeDelegate = ObjectFilter.gteFloat(name, (value));
        break;

      case BETWEEN:
        nativeDelegate = ObjectFilter.betweenFloat(name, (value), Conversions.toFloat(values[1]));
        break;

      case IN:
        nativeDelegate = ObjectFilter.inFloats(name, Conversions.farray(values));
        break;

      case NOT_IN:
        nativeDelegate = ObjectFilter.notInFloats(name, Conversions.farray(values));

        break;

      default:
        useDelegate = false;
    }
  }
Exemplo n.º 7
0
  private void initForShortValue(short v) {

    this.value = (VALUE) (Short) v;

    switch (operator) {
      case EQUAL:
        nativeDelegate = ObjectFilter.eqShort(name, v);
        break;

      case NOT_EQUAL:
        nativeDelegate = ObjectFilter.notEqShort(name, v);
        break;

      case LESS_THAN:
        nativeDelegate = ObjectFilter.ltShort(name, v);
        break;

      case LESS_THAN_EQUAL:
        nativeDelegate = ObjectFilter.lteShort(name, v);
        break;

      case GREATER_THAN:
        nativeDelegate = ObjectFilter.gtShort(name, v);
        break;

      case GREATER_THAN_EQUAL:
        nativeDelegate = ObjectFilter.gteShort(name, v);
        break;

      case IN:
        nativeDelegate = ObjectFilter.inShorts(name, Conversions.sarray(values));
        break;

      case BETWEEN:
        nativeDelegate = ObjectFilter.betweenShort(name, (v), Conversions.toShort(values[1]));
        break;

      case NOT_IN:
        nativeDelegate = ObjectFilter.notInShorts(name, Conversions.sarray(values));

        break;

      default:
        useDelegate = false;
    }
  }
Exemplo n.º 8
0
  @Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (!(o instanceof ExistsFilter)) return false;

    ExistsFilter that = (ExistsFilter) o;

    if (fullPath != null ? !fullPath.equals(that.fullPath) : that.fullPath != null) return false;
    if (definition != null ? !definition.equals(that.definition) : that.definition != null)
      return false;
    return !(filter != null ? !filter.equals(that.filter) : that.filter != null);
  }
Exemplo n.º 9
0
  private void initForInt(int v) {
    this.value = (VALUE) (Integer) v;

    switch (operator) {
      case EQUAL:
        nativeDelegate = ObjectFilter.eqInt(name, v);
        break;

      case NOT_EQUAL:
        nativeDelegate = ObjectFilter.notEqInt(name, v);
        break;

      case LESS_THAN:
        nativeDelegate = ObjectFilter.ltInt(name, v);
        break;

      case LESS_THAN_EQUAL:
        nativeDelegate = ObjectFilter.lteInt(name, v);
        break;

      case GREATER_THAN:
        nativeDelegate = ObjectFilter.gtInt(name, v);
        break;

      case GREATER_THAN_EQUAL:
        nativeDelegate = ObjectFilter.gteInt(name, v);
        break;

      case BETWEEN:
        nativeDelegate = ObjectFilter.betweenInt(name, v, Conversions.toInt(values[1]));
        break;

      case IN:
        nativeDelegate = ObjectFilter.inInts(name, Conversions.iarray(values));
        break;

      case NOT_IN:
        nativeDelegate = ObjectFilter.notInInts(name, Conversions.iarray(values));

        break;

      default:
        useDelegate = false;
    }
  }
Exemplo n.º 10
0
  private void initForDouble(double value) {

    this.value = (VALUE) (Double) value;

    switch (operator) {
      case EQUAL:
        nativeDelegate = ObjectFilter.eqDouble(name, (value));
        break;

      case NOT_EQUAL:
        nativeDelegate = ObjectFilter.notEqDouble(name, (value));
        break;

      case LESS_THAN:
        nativeDelegate = ObjectFilter.ltDouble(name, (value));
        break;

      case LESS_THAN_EQUAL:
        nativeDelegate = ObjectFilter.lteDouble(name, (value));
        break;

      case GREATER_THAN:
        nativeDelegate = ObjectFilter.gtDouble(name, (value));
        break;

      case GREATER_THAN_EQUAL:
        nativeDelegate = ObjectFilter.gteDouble(name, (value));
        break;

      case BETWEEN:
        nativeDelegate = ObjectFilter.betweenDouble(name, (value), Conversions.toDouble(values[1]));
        break;

      case IN:
        nativeDelegate = ObjectFilter.inDoubles(name, Conversions.darray(values));
        break;

      case NOT_IN:
        nativeDelegate = ObjectFilter.notInDoubles(name, Conversions.darray(values));
        break;

      default:
        useDelegate = false;
    }
  }
Exemplo n.º 11
0
  private void initForChar(char value) {

    this.value = (VALUE) (Character) value;

    switch (operator) {
      case EQUAL:
        nativeDelegate = ObjectFilter.eqChar(name, (value));
        break;

      case NOT_EQUAL:
        nativeDelegate = ObjectFilter.notEqChar(name, (value));
        break;

      case LESS_THAN:
        nativeDelegate = ObjectFilter.ltChar(name, (value));
        break;

      case LESS_THAN_EQUAL:
        nativeDelegate = ObjectFilter.lteChar(name, (value));
        break;

      case GREATER_THAN:
        nativeDelegate = ObjectFilter.gtChar(name, (value));
        break;

      case GREATER_THAN_EQUAL:
        nativeDelegate = ObjectFilter.gteChar(name, (value));
        break;

      case BETWEEN:
        nativeDelegate = ObjectFilter.betweenChar(name, (value), Conversions.toChar(values[1]));
        break;

      case IN:
        nativeDelegate = ObjectFilter.inChars(name, Conversions.carray(values));
        break;

      case NOT_IN:
        nativeDelegate = ObjectFilter.notInChars(name, Conversions.carray(values));
        break;

      default:
        useDelegate = false;
    }
  }
Exemplo n.º 12
0
 @Override
 public void checkConsistence() {
   if (fullPath == null || fullPath.isEmpty()) {
     throw new IllegalArgumentException("Null or empty path in " + this);
   }
   if (definition == null) {
     throw new IllegalArgumentException("Null definition in " + this);
   }
   // null subfilter is legal. It means "ALL".
   if (filter != null) {
     filter.checkConsistence();
   }
 }
Exemplo n.º 13
0
  @Override
  public String debugDump(int indent) {
    StringBuilder sb = new StringBuilder();
    DebugUtil.indentDebugDump(sb, indent);
    sb.append("EXISTS: ");
    sb.append(fullPath);
    sb.append('\n');
    DebugUtil.indentDebugDump(sb, indent + 1);
    sb.append("DEF: ");
    if (getDefinition() != null) {
      sb.append(getDefinition().toString());
    } else {
      sb.append("null");
    }
    if (filter != null) {
      sb.append(filter.debugDump(indent + 1));
    }

    return sb.toString();
  }
Exemplo n.º 14
0
  @Override
  public PageList<AlertDefinition> findAlertDefinitionsByCriteria(AlertDefinitionCriteria criteria)
      throws RuntimeException {
    try {
      PageList<AlertDefinition> results =
          this.alertDefManager.findAlertDefinitionsByCriteria(getSessionSubject(), criteria);
      if (!results.isEmpty()) {
        List<Resource> resources = new ArrayList<Resource>(results.size());
        for (AlertDefinition alertDefinition : results) {
          Resource res = alertDefinition.getResource();
          if (null != res) {
            resources.add(res);
          }
        }
        ObjectFilter.filterFieldsInCollection(resources, ResourceGWTServiceImpl.importantFieldsSet);
      }

      return SerialUtility.prepare(results, "findAlertDefinitionsByCriteria");
    } catch (Throwable t) {
      throw getExceptionToThrowToClient(t);
    }
  }
Exemplo n.º 15
0
 @Override
 public ObjectFilter clone() {
   ObjectFilter f = filter != null ? filter.clone() : null;
   return new ExistsFilter(fullPath, definition, f);
 }
Exemplo n.º 16
0
  private void initIfNeeded() {

    if (initialized) return;
    initialized = true;

    String name = this.name.toString();

    FieldAccess field = field();
    if (field == null) {
      return;
    }

    Class type = field.type();

    if (!type.isPrimitive() && type != Typ.date) {
      return;
    }

    if (type == Typ.date) {

      if (!(value instanceof Date)) {
        initForDate();
      }
      return;
    }

    useDelegate = true;

    if (type == Typ.intgr) {
      int v = Conversions.toInt(value);
      initForInt(v);
    } else if (type == Typ.bt) {

      byte v = Conversions.toByte(value);

      initForByte(v);

    } else if (type == Typ.shrt) {

      short v = Conversions.toShort(value);

      initForShortValue(v);

    } else if (type == Typ.lng) {

      long v = Conversions.toLong(value);

      initForLong(v);

    } else if (type == Typ.flt) {

      float v = Conversions.toFloat(value);

      initForFloat(v);

    } else if (type == Typ.dbl) {

      double v = Conversions.toDouble(value);

      initForDouble(v);

    } else if (type == Typ.bln) {

      switch (operator) {
        case EQUAL:
          nativeDelegate = ObjectFilter.eqBoolean(name, Conversions.toBoolean(value));
          break;

        case NOT_EQUAL:
          nativeDelegate = ObjectFilter.notEqBoolean(name, Conversions.toBoolean(value));
          break;

        default:
          useDelegate = false;
      }

    } else if (type == Typ.chr) {

      char v = Conversions.toChar(value);
      initForChar(v);
    }
  }