Examples of FilterClause


Examples of com.impetus.kundera.query.KunderaQuery.FilterClause

            boolean isSubCondition = false;

            if (object instanceof FilterClause)
            {
                FilterClause filter = (FilterClause) object;
                String property = filter.getProperty();
                String condition = filter.getCondition();
                Object value = filter.getValue().get(0);

                // value is string but field.getType is different, then get
                // value using

                Field f = null;

                // if alias is still present .. means it is an enclosing
                // document search.

                if (((AbstractAttribute) m.getIdAttribute()).getJPAColumnName().equalsIgnoreCase(property))
                {
                    property = "_id";
                    f = (Field) m.getIdAttribute().getJavaMember();
                    if (metaModel.isEmbeddable(m.getIdAttribute().getBindableJavaType())
                            && value.getClass().isAssignableFrom(f.getType()))
                    {
                        EmbeddableType compoundKey = metaModel.embeddable(m.getIdAttribute().getBindableJavaType());
                        compositeColumns = MongoDBUtils.getCompoundKeyColumns(m, value, compoundKey);
                        isCompositeColumn = true;
                        continue;
                    }
                }
                else if (metaModel.isEmbeddable(m.getIdAttribute().getBindableJavaType())
                        && StringUtils.contains(property, '.'))
                {
                    // Means it is a case of composite column.
                    property = property.substring(property.indexOf(".") + 1);
                    isCompositeColumn = true;
                } /*
                   * if a composite key. "." assuming "." is part of property in
                   * case of embeddable only
                   */
                else if (StringUtils.contains(property, '.'))
                {
                    EntityType entity = metaModel.entity(m.getEntityClazz());
                    StringTokenizer tokenizer = new StringTokenizer(property, ".");
                    String embeddedAttributeAsStr = tokenizer.nextToken();
                    String embeddableAttributeAsStr = tokenizer.nextToken();
                    Attribute embeddedAttribute = entity.getAttribute(embeddedAttributeAsStr);
                    EmbeddableType embeddableEntity = metaModel.embeddable(((AbstractAttribute) embeddedAttribute)
                            .getBindableJavaType());
                    f = (Field) embeddableEntity.getAttribute(embeddableAttributeAsStr).getJavaMember();
                    property = ((AbstractAttribute) embeddedAttribute).getJPAColumnName()
                            + "."
                            + ((AbstractAttribute) embeddableEntity.getAttribute(embeddableAttributeAsStr))
                                    .getJPAColumnName();
                }
                else
                {
                    EntityType entity = metaModel.entity(m.getEntityClazz());
                    String discriminatorColumn = ((AbstractManagedType) entity).getDiscriminatorColumn();

                    if (!property.equals(discriminatorColumn))
                    {
                        String fieldName = m.getFieldName(property);
                        f = (Field) entity.getAttribute(fieldName).getJavaMember();
                    }
                }

                if (value.getClass().isAssignableFrom(String.class) && f != null
                        && !f.getType().equals(value.getClass()))
                {
                    value = PropertyAccessorFactory.getPropertyAccessor(f).fromString(f.getType().getClass(),
                            value.toString());
                }
                value = MongoDBUtils.populateValue(value, value.getClass());

                // Property, if doesn't exist in entity, may be there in a
                // document embedded within it, so we have to check that
                // TODO: Query should actually be in a format
                // documentName.embeddedDocumentName.column, remove below if
                // block once this is decided

                // Query could be geospatial in nature
                if (f != null && f.getType().equals(Point.class))
                {
                    GeospatialQuery geospatialQueryimpl = GeospatialQueryFactory.getGeospatialQueryImplementor(
                            condition, value);
                    query = (BasicDBObject) geospatialQueryimpl.createGeospatialQuery(property, value, query);

                }
                else
                {

                    if (isCompositeColumn)
                    {
                        property = new StringBuffer("_id.").append(property).toString();
                    }
                    if (condition.equals("="))
                    {
                        query.append(property, value);

                    }
                    else if (condition.equalsIgnoreCase("like"))
                    {

                        if (query.containsField(property))
                        {
                            query.get(property);
                            query.put(property, ((BasicDBObject) query.get(property)).append("$regex",
                                    createLikeRegex((String) value)));
                        }
                        else
                        {
                            query.append(property, new BasicDBObject("$regex", createLikeRegex((String) value)));
                        }

                    }
                    else if (condition.equalsIgnoreCase(">"))
                    {

                        if (query.containsField(property))
                        {
                            query.get(property);
                            query.put(property, ((BasicDBObject) query.get(property)).append("$gt", value));
                        }
                        else
                        {
                            query.append(property, new BasicDBObject("$gt", value));
                        }
                    }
                    else if (condition.equalsIgnoreCase(">="))
                    {

                        if (query.containsField(property))

                        {
                            query.get(property);
                            query.put(property, ((BasicDBObject) query.get(property)).append("$gte", value));
                        }
                        else
                        {
                            query.append(property, new BasicDBObject("$gte", value));
                        }

                    }
                    else if (condition.equalsIgnoreCase("<"))
                    {

                        if (query.containsField(property))
                        {
                            query.get(property);
                            query.put(property, ((BasicDBObject) query.get(property)).append("$lt", value));
                        }
                        else
                        {
                            query.append(property, new BasicDBObject("$lt", value));
                        }

                    }
                    else if (condition.equalsIgnoreCase("<="))
                    {

                        if (query.containsField(property))
                        {
                            query.get(property);
                            query.put(property, ((BasicDBObject) query.get(property)).append("$lte", value));
                        }
                        else
                        {
                            query.append(property, new BasicDBObject("$lte", value));
                        }

                    }
                    else if (condition.equalsIgnoreCase("in"))
                    {

                        if (query.containsField(property))
                        {
                            query.get(property);
                            query.put(property, ((BasicDBObject) query.get(property)).append("$in", filter.getValue()));
                        }
                        else
                        {
                            query.append(property, new BasicDBObject("$in", filter.getValue()));
                        }

                    }
                    else if (condition.equalsIgnoreCase("not in"))
                    {

                        if (query.containsField(property))
                        {
                            query.get(property);
                            query.put(property, ((BasicDBObject) query.get(property)).append("$nin", filter.getValue()));
                        }
                        else
                        {
                            query.append(property, new BasicDBObject("$nin", filter.getValue()));
                        }

                    }
                    else if (condition.equalsIgnoreCase("<>"))
                    {
View Full Code Here

Examples of org.apache.lucene.queries.FilterClause

        Element clauseElem = (Element) node;
        BooleanClause.Occur occurs = BooleanQueryBuilder.getOccursValue(clauseElem);

        Element clauseFilter = DOMUtils.getFirstChildOrFail(clauseElem);
        Filter f = factory.getFilter(clauseFilter);
        bf.add(new FilterClause(f, occurs));
      }
    }

    return bf;
  }
View Full Code Here

Examples of org.apache.lucene.search.FilterClause

        } else {
            XBooleanFilter bool = new XBooleanFilter();
            for (String type : types) {
                DocumentMapper docMapper = documentMapper(type);
                if (docMapper == null) {
                    bool.add(new FilterClause(new TermFilter(TypeFieldMapper.TERM_FACTORY.createTerm(type)), BooleanClause.Occur.SHOULD));
                } else {
                    bool.add(new FilterClause(docMapper.typeFilter(), BooleanClause.Occur.SHOULD));
                }
            }
            return bool;
        }
    }
View Full Code Here

Examples of org.apache.lucene.search.FilterClause

                if (indexAlias == null) {
                    // This shouldn't happen unless alias disappeared after filteringAliases was called.
                    throw new InvalidAliasNameException(index, aliases[0], "Unknown alias name was passed to alias Filter");
                }
                if (indexAlias.parsedFilter() != null) {
                    combined.add(new FilterClause(indexAlias.parsedFilter(), BooleanClause.Occur.SHOULD));
                } else {
                    // The filter might be null only if filter was removed after filteringAliases was called
                    return null;
                }
            }
View Full Code Here

Examples of org.apache.lucene.search.FilterClause

  }
   
  public void testShould() throws Throwable
  {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(new FilterClause(getTermsFilter("price","030"),BooleanClause.Occur.SHOULD));
    BitSet bits = booleanFilter.bits(reader);
    assertEquals("Should retrieves only 1 doc",1,bits.cardinality());
  }
View Full Code Here

Examples of org.apache.lucene.search.FilterClause

  }
 
  public void testShoulds() throws Throwable
  {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(new FilterClause(getRangeFilter("price","010", "020"),BooleanClause.Occur.SHOULD));
    booleanFilter.add(new FilterClause(getRangeFilter("price","020", "030"),BooleanClause.Occur.SHOULD));
    BitSet bits = booleanFilter.bits(reader);
    assertEquals("Shoulds are Ored together",5,bits.cardinality());
  }
View Full Code Here

Examples of org.apache.lucene.search.FilterClause

    assertEquals("Shoulds are Ored together",5,bits.cardinality());
  }
  public void testShouldsAndMustNot() throws Throwable
  {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(new FilterClause(getRangeFilter("price","010", "020"),BooleanClause.Occur.SHOULD));
    booleanFilter.add(new FilterClause(getRangeFilter("price","020", "030"),BooleanClause.Occur.SHOULD));
    booleanFilter.add(new FilterClause(getTermsFilter("inStock", "N"),BooleanClause.Occur.MUST_NOT));
    BitSet bits = booleanFilter.bits(reader);
    assertEquals("Shoulds Ored but AndNot",4,bits.cardinality());

    booleanFilter.add(new FilterClause(getTermsFilter("inStock", "Maybe"),BooleanClause.Occur.MUST_NOT));
    bits = booleanFilter.bits(reader);
    assertEquals("Shoulds Ored but AndNots",3,bits.cardinality());
   
  }
View Full Code Here

Examples of org.apache.lucene.search.FilterClause

   
  }
  public void testShouldsAndMust() throws Throwable
  {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(new FilterClause(getRangeFilter("price","010", "020"),BooleanClause.Occur.SHOULD));
    booleanFilter.add(new FilterClause(getRangeFilter("price","020", "030"),BooleanClause.Occur.SHOULD));
    booleanFilter.add(new FilterClause(getTermsFilter("accessRights", "admin"),BooleanClause.Occur.MUST));
    BitSet bits = booleanFilter.bits(reader);
    assertEquals("Shoulds Ored but MUST",3,bits.cardinality());
  }
View Full Code Here

Examples of org.apache.lucene.search.FilterClause

    assertEquals("Shoulds Ored but MUST",3,bits.cardinality());
  }
  public void testShouldsAndMusts() throws Throwable
  {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(new FilterClause(getRangeFilter("price","010", "020"),BooleanClause.Occur.SHOULD));
    booleanFilter.add(new FilterClause(getRangeFilter("price","020", "030"),BooleanClause.Occur.SHOULD));
    booleanFilter.add(new FilterClause(getTermsFilter("accessRights", "admin"),BooleanClause.Occur.MUST));
    booleanFilter.add(new FilterClause(getRangeFilter("date","20040101", "20041231"),BooleanClause.Occur.MUST));
    BitSet bits = booleanFilter.bits(reader);
    assertEquals("Shoulds Ored but MUSTs ANDED",1,bits.cardinality());
  }
View Full Code Here

Examples of org.apache.lucene.search.FilterClause

    assertEquals("Shoulds Ored but MUSTs ANDED",1,bits.cardinality());
  }
  public void testShouldsAndMustsAndMustNot() throws Throwable
  {
    BooleanFilter booleanFilter = new BooleanFilter();
    booleanFilter.add(new FilterClause(getRangeFilter("price","030", "040"),BooleanClause.Occur.SHOULD));
    booleanFilter.add(new FilterClause(getTermsFilter("accessRights", "admin"),BooleanClause.Occur.MUST));
    booleanFilter.add(new FilterClause(getRangeFilter("date","20050101", "20051231"),BooleanClause.Occur.MUST));
    booleanFilter.add(new FilterClause(getTermsFilter("inStock","N"),BooleanClause.Occur.MUST_NOT));
    BitSet bits = booleanFilter.bits(reader);
    assertEquals("Shoulds Ored but MUSTs ANDED and MustNot",0,bits.cardinality());
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.