List of usage examples for org.apache.commons.lang ObjectUtils toString
public static String toString(Object obj)
Gets the toString
of an Object
returning an empty string ("") if null
input.
ObjectUtils.toString(null) = "" ObjectUtils.toString("") = "" ObjectUtils.toString("bat") = "bat" ObjectUtils.toString(Boolean.TRUE) = "true"
From source file:org.marketcetera.jms.JMSSerMessageConverter.java
/** * Converts an object to a JMS Message by serializing it. * * @param inObject the object to be converted. The object should be * serializable./*from w w w .j av a2 s. co m*/ * @param session the JMS Session instance. * * @return the JMS message. * * @throws JMSException if there were errors serializing the object. * @throws MessageConversionException if the supplied object was not * serializable or if there were errors serializing the object. */ @Override public Message toMessage(Object inObject, Session session) throws JMSException, MessageConversionException { SLF4JLoggerProxy.debug(this, "Converting to JMS {}", inObject); //$NON-NLS-1$ if (inObject instanceof Serializable) { try { return session.createObjectMessage((Serializable) inObject); } catch (RuntimeException e) { throw new MessageConversionException( new I18NBoundMessage1P(Messages.UNEXPECTED_MESSAGE_TO_SEND, ObjectUtils.toString(inObject)) .getText(), e); } } else { throw new MessageConversionException( new I18NBoundMessage1P(Messages.UNEXPECTED_MESSAGE_TO_SEND, ObjectUtils.toString(inObject)) .getText()); } }
From source file:org.marketcetera.ors.info.ReadInfoImpl.java
@SuppressWarnings("unchecked") @Override/* w w w. j a va2 s . c o m*/ public <T> T getValueIfInstanceOf(String key, Class<T> cls) throws InfoException { assertNonNullKey(key); Object result = getValueIfSet(key); if ((result != null) && (!cls.isInstance(result))) { throw new InfoException( new I18NBoundMessage3P(Messages.BAD_CLASS_VALUE, key, ObjectUtils.toString(result), cls)); } return (T) result; }
From source file:org.marketcetera.ors.info.ReadInfoImpl.java
@SuppressWarnings("unchecked") @Override// www.ja va 2 s . c om public <T> T getValueIfNonNullInstanceOf(String key, Class<T> cls) throws InfoException { assertNonNullKey(key); Object result = getValueIfSet(key); if (result == null) { throw new InfoException(new I18NBoundMessage1P(Messages.NULL_VALUE, key)); } if (!cls.isInstance(result)) { throw new InfoException( new I18NBoundMessage3P(Messages.BAD_CLASS_VALUE, key, ObjectUtils.toString(result), cls)); } return (T) result; }
From source file:org.marketcetera.ors.info.ReadWriteInfoImpl.java
@Override public void setValueIfUnset(String key, Object value) throws InfoException { assertNonNullKey(key);/*from w w w . j av a 2 s. c o m*/ if (contains(key)) { throw new InfoException(new I18NBoundMessage3P(Messages.VALUE_EXISTS, key, ObjectUtils.toString(getValue(key)), ObjectUtils.toString(value))); } setValue(key, value); }
From source file:org.marketcetera.photon.internal.strategy.ui.RemoteAgentPropertyPage.java
@Override protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setFont(parent.getFont()); mURI = createText(composite, Messages.REMOTE_AGENT_PROPERTY_PAGE_URL_LABEL, Messages.REMOTE_AGENT_PROPERTY_PAGE_URL_TOOLTIP, ObjectUtils.toString(mRemoteAgent.getURI()), false);//from w ww .j ava 2 s . c o m Group group = new Group(composite, SWT.NONE); group.setText(Messages.REMOTE_AGENT_PROPERTY_PAGE_CREDENTIALS_LABEL.getText()); GridDataFactory.defaultsFor(group).span(2, 1).applyTo(group); mUsername = createText(group, Messages.REMOTE_AGENT_PROPERTY_PAGE_USERNAME_LABEL, Messages.REMOTE_AGENT_PROPERTY_PAGE_USERNAME_LABEL, mRemoteAgent.getUsername(), false); mPassword = createText(group, Messages.REMOTE_AGENT_PROPERTY_PAGE_PASSWORD_LABEL, Messages.REMOTE_AGENT_PROPERTY_PAGE_PASSWORD_LABEL, mRemoteAgent.getPassword(), true); GridLayoutFactory.swtDefaults().numColumns(2).generateLayout(group); Label description = new Label(composite, SWT.WRAP); description.setText(Messages.REMOTE_AGENT_PROPERTY_PAGE_CREDENTIALS_DESCRIPTION.getText()); GridDataFactory.defaultsFor(description).span(2, 1).applyTo(description); GridLayoutFactory.swtDefaults().numColumns(2).generateLayout(composite); return composite; }
From source file:org.marketcetera.util.ws.wrappers.MarshalledLocale.java
@Override public String toString() { return ObjectUtils.toString(toLocale()); }
From source file:org.medici.bia.common.hibernate.search.bridge.MonthBridge.java
/** * /*from w w w.ja v a 2 s . co m*/ */ public String objectToString(Object object) { if (object == null) { return null; } if (!object.getClass().equals(Month.class)) { return null; } Month month = (Month) object; if (ObjectUtils.toString(month.getMonthNum()).equals("")) { return ""; } return month.getMonthNum().toString(); }
From source file:org.medici.bia.common.search.AdvancedSearchPeople.java
/** * This method return a JPA Query object. *//*from w w w .ja va 2 s .co m*/ @Override public String toJPAQuery() { // TODO Auto-generated method stub StringBuilder jpaQuery = new StringBuilder("FROM People WHERE "); //Names if (names.size() > 0) { StringBuilder namesQuery = new StringBuilder("("); for (int i = 0; i < names.size(); i++) { String[] wordsSingleNames = StringUtils.split(names.get(i), " "); if (namesQuery.length() > 1) { namesQuery.append(" AND "); } if (namesTypes.get(i).equals(NameType.AllNameTypes)) { for (int j = 0; j < wordsSingleNames.length; j++) { namesQuery.append("(mapNameLf like '%"); namesQuery.append(wordsSingleNames[j].toLowerCase().replace("'", "''")); namesQuery.append("%' OR "); namesQuery .append("(personId IN (SELECT person.personId FROM AltName WHERE altName like '%"); namesQuery.append(wordsSingleNames[j].toLowerCase().replace("'", "''")); namesQuery.append("%')))"); if (j < (wordsSingleNames.length - 1)) { namesQuery.append(" AND "); } } } else { for (int j = 0; j < wordsSingleNames.length; j++) { namesQuery .append("(personId IN (SELECT person.personId FROM AltName WHERE altName like '%"); namesQuery.append(wordsSingleNames[j].toLowerCase().replace("'", "''")); namesQuery.append("%' AND nameType like '"); namesQuery.append(namesTypes.get(i).toString().toLowerCase()); namesQuery.append("'))"); if (j < (wordsSingleNames.length - 1)) { namesQuery.append(" AND "); } } } } namesQuery.append(')'); if (!namesQuery.toString().equals("")) { if (jpaQuery.length() > 18) { jpaQuery.append(" AND "); } jpaQuery.append(namesQuery); } } //Exact Name if (personId.size() > 0) { StringBuilder personIdQuery = new StringBuilder("("); for (int i = 0; i < personId.size(); i++) { if (personId.get(i) > 0) { if (personIdQuery.length() > 1) { personIdQuery.append(" AND "); } personIdQuery.append("(personId="); personIdQuery.append(personId.get(i).toString()); personIdQuery.append(")"); } } personIdQuery.append(')'); if (!personIdQuery.toString().equals("()")) { if (jpaQuery.length() > 18) { jpaQuery.append(" AND "); } jpaQuery.append(personIdQuery); } } //Words if (words.size() > 0) { StringBuilder wordsQuery = new StringBuilder("("); for (int i = 0; i < words.size(); i++) { if (wordsQuery.length() > 1) { wordsQuery.append(" AND "); } wordsQuery.append("((mapNameLf like '%"); wordsQuery.append(words.get(i).toLowerCase().replace("'", "''")); wordsQuery.append("%') OR "); wordsQuery.append("((bioNotes like '%"); wordsQuery.append(words.get(i).toLowerCase().replace("'", "''")); wordsQuery.append("%') OR "); wordsQuery.append("(staffNotes like '%"); wordsQuery.append(words.get(i).toLowerCase().replace("'", "''")); wordsQuery.append("%') OR "); wordsQuery.append("((mapNameLf like '%"); wordsQuery.append(words.get(i).toLowerCase().replace("'", "''")); wordsQuery.append("%') OR "); wordsQuery.append("(personId IN (SELECT person.personId FROM AltName WHERE altName like '%"); wordsQuery.append(names.get(i).toLowerCase().replace("'", "''")); wordsQuery.append("%'))"); } wordsQuery.append(')'); if (!wordsQuery.toString().equals("")) { if (jpaQuery.length() > 18) { jpaQuery.append(" AND "); } jpaQuery.append(wordsQuery); } } //Dates if (datesTypes.size() > 0) { StringBuilder datesQuery = new StringBuilder("("); for (int i = 0; i < datesTypes.size(); i++) { if (datesTypes.get(i) == null) { continue; } if (datesQuery.length() > 1) { datesQuery.append(" AND "); } if (datesTypes.get(i).equals("Born after")) { //For years that have two numbers datesQuery.append( "((bornYear < 100 AND STR_TO_DATE(CONCAT('00', bornYear, ',' , bornMonth, ',', bornDay),'%Y,%m,%d')>"); datesQuery.append( DateUtils.getDateForSQLQuery(datesYear.get(i), datesMonth.get(i), datesDay.get(i))); datesQuery.append( ") OR (bornYear < 1000 AND bornYear >= 100 AND STR_TO_DATE(CONCAT('0', bornYear, ',' , bornMonth, ',', bornDay),'%Y,%m,%d')>"); datesQuery.append( DateUtils.getDateForSQLQuery(datesYear.get(i), datesMonth.get(i), datesDay.get(i))); datesQuery.append( ") OR (bornYear >= 1000 AND STR_TO_DATE(CONCAT(bornYear, ',' , bornMonth, ',', bornDay),'%Y,%m,%d')>"); datesQuery.append( DateUtils.getDateForSQLQuery(datesYear.get(i), datesMonth.get(i), datesDay.get(i))); datesQuery.append(")) AND bornDateBc = false"); } else if (datesTypes.get(i).equals("Dead by")) { datesQuery.append( "((deathYear < 100 AND STR_TO_DATE(CONCAT('00', deathYear, ',' , deathMonth, ',', deathDay),'%Y, %m ,%d')<="); datesQuery.append( DateUtils.getDateForSQLQuery(datesYear.get(i), datesMonth.get(i), datesDay.get(i))); datesQuery.append( ") OR (deathYear < 1000 AND deathYear >= 100 AND STR_TO_DATE(CONCAT('0', deathYear, ',' , deathMonth, ',', deathDay),'%Y, %m ,%d')<="); datesQuery.append( DateUtils.getDateForSQLQuery(datesYear.get(i), datesMonth.get(i), datesDay.get(i))); datesQuery.append( ") OR (deathYear >= 1000 AND STR_TO_DATE(CONCAT(deathYear, ',' , deathMonth, ',', deathDay),'%Y, %m ,%d')<="); datesQuery.append( DateUtils.getDateForSQLQuery(datesYear.get(i), datesMonth.get(i), datesDay.get(i))); datesQuery.append(")) AND deathDateBc = false"); } else if (datesTypes.get(i).equals("Lived between")) { datesQuery.append( "(((bornYear < 100 AND STR_TO_DATE(CONCAT('00', bornYear, ',' , bornMonth, ',', bornDay),'%Y, %m ,%d')<"); datesQuery.append(DateUtils.getDateForSQLQuery(datesYearBetween.get(i), datesMonthBetween.get(i), datesDayBetween.get(i))); datesQuery.append( ") OR (bornYear < 1000 AND bornYear >= 100 AND STR_TO_DATE(CONCAT('0', bornYear, ',' , bornMonth, ',', bornDay),'%Y, %m ,%d')<"); datesQuery.append(DateUtils.getDateForSQLQuery(datesYearBetween.get(i), datesMonthBetween.get(i), datesDayBetween.get(i))); datesQuery.append( ") OR (bornYear >= 1000 AND STR_TO_DATE(CONCAT(bornYear, ',' , bornMonth, ',', bornDay),'%Y, %m ,%d')<"); datesQuery.append(DateUtils.getDateForSQLQuery(datesYearBetween.get(i), datesMonthBetween.get(i), datesDayBetween.get(i))); datesQuery.append( ")) AND ((deathYear < 100 AND STR_TO_DATE(CONCAT('00', deathYear, ',' , deathMonth, ',', deathDay),'%Y, %m ,%d')>"); datesQuery.append( DateUtils.getDateForSQLQuery(datesYear.get(i), datesMonth.get(i), datesDay.get(i))); datesQuery.append( ") OR (deathYear < 1000 AND deathYear >=100 AND STR_TO_DATE(CONCAT('0', deathYear, ',' , deathMonth, ',', deathDay),'%Y, %m ,%d')>"); datesQuery.append( DateUtils.getDateForSQLQuery(datesYear.get(i), datesMonth.get(i), datesDay.get(i))); datesQuery.append( ") OR (deathYear >= 1000 AND STR_TO_DATE(CONCAT(deathYear, ',' , deathMonth, ',', deathDay),'%Y, %m ,%d')>"); datesQuery.append( DateUtils.getDateForSQLQuery(datesYear.get(i), datesMonth.get(i), datesDay.get(i))); datesQuery.append( ")) AND ((deathYear < 100 AND STR_TO_DATE(CONCAT('00', deathYear, ',' , deathMonth, ',', deathDay),'%Y, %m ,%d')<"); datesQuery.append(DateUtils.getDateForSQLQuery(datesYearBetween.get(i), datesMonthBetween.get(i), datesDayBetween.get(i))); datesQuery.append( ") OR (deathYear < 1000 AND deathYear >= 100 AND STR_TO_DATE(CONCAT('0', deathYear, ',' , deathMonth, ',', deathDay),'%Y, %m ,%d')<"); datesQuery.append(DateUtils.getDateForSQLQuery(datesYearBetween.get(i), datesMonthBetween.get(i), datesDayBetween.get(i))); datesQuery.append( ") OR (deathYear >= 1000 AND STR_TO_DATE(CONCAT(deathYear, ',' , deathMonth, ',', deathDay),'%Y, %m ,%d')<"); datesQuery.append(DateUtils.getDateForSQLQuery(datesYearBetween.get(i), datesMonthBetween.get(i), datesDayBetween.get(i))); datesQuery.append("))) AND bornDateBc = false AND deathDateBc = false"); } else if (datesTypes.get(i).equals("Born/Died on")) { StringBuilder bornQuery = new StringBuilder(0); StringBuilder deathQuery = new StringBuilder(0); if (datesYear.get(i) != null) { bornQuery.append("(bornYear ="); bornQuery.append(datesYear.get(i) + ")"); deathQuery.append("(deathYear ="); deathQuery.append(datesYear.get(i) + ")"); if (datesMonth.get(i) != null || datesDay.get(i) != null) { bornQuery.append(" AND "); deathQuery.append(" AND "); } } if (datesMonth.get(i) != null) { bornQuery.append("(bornMonth ="); bornQuery.append(datesMonth.get(i) + ")"); deathQuery.append("(deathMonth ="); deathQuery.append(datesMonth.get(i) + ")"); if (datesDay.get(i) != null) { bornQuery.append(" AND "); deathQuery.append(" AND "); } } if (datesDay.get(i) != null) { bornQuery.append("(bornDay ="); bornQuery.append(datesDay.get(i) + ")"); deathQuery.append("(deathDay ="); deathQuery.append(datesDay.get(i) + ")"); } datesQuery.append( bornQuery + " OR " + deathQuery + "AND bornDateBc = false AND deathDateBc = false"); } } datesQuery.append(')'); if (!datesQuery.toString().equals("")) { if (jpaQuery.length() > 18) { jpaQuery.append(" AND "); } jpaQuery.append(datesQuery); } } // date created if (datesCreatedTypes.size() > 0) { StringBuilder datesCreatedQuery = new StringBuilder("("); for (int i = 0; i < datesCreatedTypes.size(); i++) { if (datesCreatedTypes.get(i) == null) { continue; } if (datesCreatedQuery.length() > 1) { datesCreatedQuery.append(" AND "); } if (datesCreatedTypes.get(i).equals(DateType.From)) { datesCreatedQuery.append("(dateCreated >= '"); datesCreatedQuery.append(DateUtils.getMYSQLDate(datesCreated.get(i))); datesCreatedQuery.append(')'); } else if (datesCreatedTypes.get(i).equals(DateType.Before)) { datesCreatedQuery.append("(dateCreated <= '"); datesCreatedQuery.append(DateUtils.getMYSQLDate(datesCreated.get(i))); datesCreatedQuery.append(')'); } else if (datesCreatedTypes.get(i).equals(DateType.Between)) { datesCreatedQuery.append("(dateCreated between '"); datesCreatedQuery.append(DateUtils.getMYSQLDate(datesCreated.get(i))); datesCreatedQuery.append("' AND '"); datesCreatedQuery.append(DateUtils.getMYSQLDate(datesCreatedBetween.get(i))); datesCreatedQuery.append("')"); } else if (datesCreatedTypes.get(i).equals(DateType.InOn)) { } } datesCreatedQuery.append(')'); if (!datesCreatedQuery.toString().equals("")) { if (jpaQuery.length() > 20) { jpaQuery.append(" AND "); } jpaQuery.append(datesCreatedQuery); } } // Last update if (datesLastUpdateTypes.size() > 0) { StringBuilder datesLastUpdateQuery = new StringBuilder("("); for (int i = 0; i < datesLastUpdateTypes.size(); i++) { if (datesLastUpdateTypes.get(i) == null) { continue; } if (datesLastUpdateQuery.length() > 1) { datesLastUpdateQuery.append(" AND "); } if (datesLastUpdateTypes.get(i).equals(DateType.From)) { datesLastUpdateQuery.append("(DATE_FORMAT(lastUpdate, '%Y-%m-%d') >= '"); datesLastUpdateQuery.append(DateUtils.getMYSQLDate(datesLastUpdate.get(i))); datesLastUpdateQuery.append(')'); } else if (datesLastUpdateTypes.get(i).equals(DateType.Before)) { datesLastUpdateQuery.append("(DATE_FORMAT(lastUpdate, '%Y-%m-%d') <= '"); datesLastUpdateQuery.append(DateUtils.getMYSQLDate(datesLastUpdate.get(i))); datesLastUpdateQuery.append(')'); } else if (datesLastUpdateTypes.get(i).equals(DateType.Between)) { datesLastUpdateQuery.append("(DATE_FORMAT(lastUpdate, '%Y-%m-%d') between '"); datesLastUpdateQuery.append(DateUtils.getMYSQLDate(datesLastUpdate.get(i))); datesLastUpdateQuery.append("' AND '"); datesLastUpdateQuery.append(DateUtils.getMYSQLDate(datesLastUpdateBetween.get(i))); datesLastUpdateQuery.append("')"); } else if (datesLastUpdateTypes.get(i).equals(DateType.InOn)) { } } datesLastUpdateQuery.append(')'); if (!datesLastUpdateQuery.toString().equals("")) { if (jpaQuery.length() > 20) { jpaQuery.append(" AND "); } jpaQuery.append(datesLastUpdateQuery); } } //Role Categories if (roleCategories.size() > 0) { StringBuilder roleCatQuery = new StringBuilder("("); for (int i = 0; i < roleCategories.size(); i++) { if (roleCatQuery.length() > 1) { roleCatQuery.append(" AND "); } if (roleCategories.get(i).equals("ARTISTS and ARTISANS") || roleCategories.get(i).equals("CORPORATE BODIES") || roleCategories.get(i).equals("ECCLESIASTICS") || roleCategories.get(i).equals("HEADS of STATE") || roleCategories.get(i).equals("MILITARY and NAVAL PERSONNEL") || roleCategories.get(i).equals("NOBLES") || roleCategories.get(i).equals("PROFESSIONS") || roleCategories.get(i).equals("SCHOLARLY and LITERARY") || roleCategories.get(i).equals("STATE and COURT PERSONNEL") || roleCategories.get(i).equals("UNASSIGNED")) { roleCatQuery.append( "(personId IN (SELECT person.personId FROM org.medici.bia.domain.PoLink WHERE titleOccList.roleCat.roleCatMajor like '%"); roleCatQuery.append(roleCategories.get(i)); roleCatQuery.append("%'))"); } else { roleCatQuery.append( "(personId IN (SELECT person.personId FROM org.medici.bia.domain.PoLink WHERE titleOccList.roleCat.roleCatMinor like '%"); roleCatQuery.append(roleCategories.get(i)); roleCatQuery.append("%'))"); } } roleCatQuery.append(')'); if (!roleCatQuery.toString().equals("")) { if (jpaQuery.length() > 18) { jpaQuery.append(" AND "); } jpaQuery.append(roleCatQuery); } } //OccupationsWord if (titleOccWord.size() > 0) { StringBuilder titleOccWordQuery = new StringBuilder("("); for (int i = 0; i < titleOccWord.size(); i++) { String[] wordsOccupation = StringUtils.split(titleOccWord.get(i), " "); if (titleOccWordQuery.length() > 1) { titleOccWordQuery.append(" AND "); } for (int j = 0; j < wordsOccupation.length; j++) { titleOccWordQuery.append( "(personId IN (SELECT person.personId FROM org.medici.bia.domain.PoLink WHERE titleOccList.titleOcc like '%"); titleOccWordQuery.append(wordsOccupation[j].replace("'", "''")); titleOccWordQuery.append("%'))"); if (j < (wordsOccupation.length - 1)) { titleOccWordQuery.append(" AND "); } } } titleOccWordQuery.append(')'); if (!titleOccWordQuery.toString().equals("")) { if (jpaQuery.length() > 18) { jpaQuery.append(" AND "); } jpaQuery.append(titleOccWordQuery); } } //Occupations if (titlesOccId.size() > 0) { StringBuilder titleOccIdQuery = new StringBuilder("("); for (int i = 0; i < titlesOccId.size(); i++) { if (titleOccIdQuery.length() > 1) { titleOccIdQuery.append(" AND "); } if (titlesOccId.get(i) > 0) { titleOccIdQuery.append( "(personId IN (SELECT person.personId FROM org.medici.bia.domain.PoLink WHERE titleOccList.titleOccId="); titleOccIdQuery.append(titlesOccId.get(i)); titleOccIdQuery.append("))"); } else { titleOccIdQuery.append( "(personId IN (SELECT person.personId FROM org.medici.bia.domain.PoLink WHERE titleOccList.titleOcc like '%"); titleOccIdQuery.append(titlesOcc.get(i).replace("'", "''")); titleOccIdQuery.append("%'))"); } } titleOccIdQuery.append(')'); if (!titleOccIdQuery.toString().equals("")) { if (jpaQuery.length() > 18) { jpaQuery.append(" AND "); } jpaQuery.append(titleOccIdQuery); } } //Gender if (gender.size() > 0) { StringBuilder genderQuery = new StringBuilder("("); for (int i = 0; i < gender.size(); i++) { if (genderQuery.length() > 1) { genderQuery.append(" AND "); } genderQuery.append("(gender like '"); genderQuery.append(gender.get(i)); genderQuery.append("' )"); } genderQuery.append(')'); if (!genderQuery.toString().equals("")) { if (jpaQuery.length() > 18) { jpaQuery.append(" AND "); } jpaQuery.append(genderQuery); } } //Places if (placeId.size() > 0) { StringBuilder placeIdQuery = new StringBuilder("("); for (int i = 0; i < placeId.size(); i++) { if (placeIdQuery.length() > 1) { placeIdQuery.append(" AND "); } if (placeType.get(i).equals("Birth/Death Place")) { if (placeId.get(i) > 0) { placeIdQuery.append("(bornPlace.geogKey IN (SELECT geogKey FROM Place WHERE placeAllId="); placeIdQuery.append(placeId.get(i)); placeIdQuery .append(") OR deathPlace.geogKey IN (SELECT geogKey FROM Place WHERE placeAllId="); placeIdQuery.append(placeId.get(i)); placeIdQuery.append("))"); } else { placeIdQuery.append("(bornPlace.placeName like '%"); placeIdQuery.append(place.get(i).replace("'", "''")); placeIdQuery.append("%' OR deathPlace.placeName like '%"); placeIdQuery.append(place.get(i).replace("'", "''")); placeIdQuery.append("%' )"); } } else if (placeType.get(i).equals("Birth Place")) { if (placeId.get(i) > 0) { placeIdQuery.append("(bornPlace.geogKey IN (SELECT geogKey FROM Place WHERE placeAllId="); placeIdQuery.append(placeId.get(i)); placeIdQuery.append("))"); } else { placeIdQuery.append("(bornPlace.placeName like '%"); placeIdQuery.append(place.get(i).replace("'", "''")); placeIdQuery.append("%' )"); } } else if (placeType.get(i).equals("Death Place")) { if (placeId.get(i) > 0) { placeIdQuery.append("(deathPlace.geogKey IN (SELECT geogKey FROM Place WHERE placeAllId="); placeIdQuery.append(placeId.get(i)); placeIdQuery.append("))"); } else { placeIdQuery.append("(deathPlace.placeName like '%"); placeIdQuery.append(place.get(i).replace("'", "''")); placeIdQuery.append("%' )"); } } } placeIdQuery.append(')'); if (!placeIdQuery.toString().equals("")) { if (jpaQuery.length() > 18) { jpaQuery.append(" AND "); } jpaQuery.append(placeIdQuery); } } //ResearchNotes if (researchNotes.size() > 0) { StringBuilder researchNotesQuery = new StringBuilder("("); for (int i = 0; i < researchNotes.size(); i++) { String[] wordsSingleResearchNotes = StringUtils.split(researchNotes.get(i), " "); if (researchNotesQuery.length() > 1) { researchNotesQuery.append(" AND "); } for (int j = 0; j < wordsSingleResearchNotes.length; j++) { researchNotesQuery.append("(bioNotes like '%"); researchNotesQuery.append(wordsSingleResearchNotes[j].toLowerCase().replace("'", "''")); researchNotesQuery.append("%')"); if (j < (wordsSingleResearchNotes.length - 1)) { researchNotesQuery.append(" AND "); } } } researchNotesQuery.append(')'); if (!researchNotesQuery.toString().equals("")) { if (jpaQuery.length() > 18) { jpaQuery.append(" AND "); } jpaQuery.append(researchNotesQuery); } } //PersonId if (peopleId.size() > 0) { StringBuilder peopleIdQuery = new StringBuilder("("); for (int i = 0; i < peopleId.size(); i++) { if (StringUtils.isNumeric(peopleId.get(i))) { if (peopleIdQuery.length() > 1) { peopleIdQuery.append(" OR "); } peopleIdQuery.append("(personId="); peopleIdQuery.append(peopleId.get(i)); peopleIdQuery.append(")"); } else { continue; } } peopleIdQuery.append(")"); if (!peopleIdQuery.toString().equals("")) { if (jpaQuery.length() > 18) { jpaQuery.append(" AND "); } jpaQuery.append(peopleIdQuery); } } //LogicalDelete if (!ObjectUtils.toString(logicalDelete).equals("")) { StringBuilder logicalDeleteQuery = new StringBuilder("("); if (logicalDelete.equals(Boolean.TRUE)) { logicalDeleteQuery.append("(logicalDelete = true)"); } else if (logicalDelete.equals(Boolean.FALSE)) { logicalDeleteQuery.append("(logicalDelete = false)"); } logicalDeleteQuery.append(')'); if (!logicalDeleteQuery.toString().equals("")) { if (jpaQuery.length() > 20) { jpaQuery.append(" AND "); } jpaQuery.append(logicalDeleteQuery); } } else { if (jpaQuery.length() > 20) { jpaQuery.append(" AND "); } jpaQuery.append(" logicalDelete = false"); } return jpaQuery.toString(); }
From source file:org.medici.bia.common.search.AdvancedSearchPlace.java
/** * {@inheritDoc}/*from ww w . ja v a 2 s . co m*/ */ @Override public String toJPAQuery() { StringBuilder jpaQuery = new StringBuilder("FROM Place WHERE "); //Place Name if (placesName.size() > 0) { StringBuilder placesNameQuery = new StringBuilder("("); for (int i = 0; i < placesName.size(); i++) { String currentWords = placesName.get(i); List<String> exactWords = new ArrayList<String>(); if (placesNameQuery.length() > 1) { placesNameQuery.append(" AND "); } //MD: This code is to identify the words between double quotes while (currentWords.contains("\"")) { //First double quote int from = currentWords.indexOf("\""); //Second double quote int to = currentWords.indexOf("\"", from + 1); //If there is the second double quote or not if (to != -1) { //Add the exact words to the list and remove them from the string exactWords.add(currentWords.substring(from + 1, to)); currentWords = currentWords.substring(0, from) + currentWords.substring(to + 1, currentWords.length()); } else { currentWords = currentWords.replace("\"", " "); } } String[] wordsSinglePlaceNames = StringUtils.split(currentWords, " "); for (int j = 0; j < exactWords.size(); j++) { placesNameQuery.append("((placeNameFull LIKE '%"); placesNameQuery.append(exactWords.get(j).replace("'", "''")); placesNameQuery.append("%') OR (termAccent LIKE '%"); placesNameQuery.append(exactWords.get(j).replace("'", "''")); placesNameQuery.append("%'))"); if (j < (exactWords.size() - 1)) { placesNameQuery.append(" AND "); } } if (exactWords.size() > 0 && wordsSinglePlaceNames.length > 0) { placesNameQuery.append(" AND "); } for (int j = 0; j < wordsSinglePlaceNames.length; j++) { placesNameQuery.append("((placeNameFull like '%"); placesNameQuery.append(wordsSinglePlaceNames[j].toLowerCase().replace("'", "''")); placesNameQuery.append("%') or "); placesNameQuery.append("(termAccent like '%"); placesNameQuery.append(wordsSinglePlaceNames[j].toLowerCase().replace("'", "''")); placesNameQuery.append("%'))"); if (j < (wordsSinglePlaceNames.length - 1)) { placesNameQuery.append(" AND "); } } } placesNameQuery.append(')'); if (!placesNameQuery.toString().equals("")) { if (jpaQuery.length() > 17) { jpaQuery.append(" AND "); } jpaQuery.append(placesNameQuery); } } //Exact Place Name if (placeId.size() > 0) { StringBuilder placeIdQuery = new StringBuilder("("); for (int i = 0; i < placeId.size(); i++) { if (placeId.get(i) > 0) { if (placeIdQuery.length() > 1) { placeIdQuery.append(" OR "); } placeIdQuery.append("(placeAllId="); placeIdQuery.append(placeId.get(i)); placeIdQuery.append(")"); } else { continue; } } placeIdQuery.append(")"); if (!placeIdQuery.toString().equals("")) { if (jpaQuery.length() > 17) { jpaQuery.append(" AND "); } jpaQuery.append(placeIdQuery); } } //Place Type if (placeType.size() > 0) { StringBuilder placeTypeQuery = new StringBuilder("("); for (int i = 0; i < placeType.size(); i++) { if (placeTypeQuery.length() > 1) { placeTypeQuery.append(" AND "); } placeTypeQuery.append("(plType like '%"); placeTypeQuery.append(placeType.get(i).toLowerCase()); placeTypeQuery.append("%')"); } placeTypeQuery.append(')'); if (!placeTypeQuery.toString().equals("")) { if (jpaQuery.length() > 17) { jpaQuery.append(" AND "); } jpaQuery.append(placeTypeQuery); } } //Linked to people if (linkedToPeople.size() > 0) { StringBuilder linkedToPeopleQuery = new StringBuilder("("); for (int i = 0; i < linkedToPeople.size(); i++) { if (linkedToPeopleQuery.length() > 1) { linkedToPeopleQuery.append(" AND "); } if (linkedToPeople.get(i).equals("Sender Location")) { linkedToPeopleQuery.append( "(geogKey IN (SELECT senderPlace.geogKey FROM Document WHERE senderPlace is not null))"); } if (linkedToPeople.get(i).equals("Recipient Location")) { linkedToPeopleQuery.append( "(geogKey IN (SELECT recipientPlace.geogKey FROM Document WHERE recipientPlace is not null))"); } if (linkedToPeople.get(i).equals("Birth Place")) { linkedToPeopleQuery.append( "(geogKey IN (SELECT bornPlace.geogKey FROM People WHERE bornPlace is not null))"); } if (linkedToPeople.get(i).equals("Death Place")) { linkedToPeopleQuery.append( "(geogKey IN (SELECT deathPlace.geogKey FROM People WHERE deathPlace is not null))"); } } linkedToPeopleQuery.append(')'); if (!linkedToPeopleQuery.toString().equals("")) { if (jpaQuery.length() > 17) { jpaQuery.append(" AND "); } jpaQuery.append(linkedToPeopleQuery); } } // date created if (datesCreatedTypes.size() > 0) { StringBuilder datesCreatedQuery = new StringBuilder("("); for (int i = 0; i < datesCreatedTypes.size(); i++) { if (datesCreatedTypes.get(i) == null) { continue; } if (datesCreatedQuery.length() > 1) { datesCreatedQuery.append(" AND "); } if (datesCreatedTypes.get(i).equals(DateType.From)) { datesCreatedQuery.append("(dateCreated >= '"); datesCreatedQuery.append(DateUtils.getMYSQLDate(datesCreated.get(i))); datesCreatedQuery.append(')'); } else if (datesCreatedTypes.get(i).equals(DateType.Before)) { datesCreatedQuery.append("(dateCreated <= '"); datesCreatedQuery.append(DateUtils.getMYSQLDate(datesCreated.get(i))); datesCreatedQuery.append(')'); } else if (datesCreatedTypes.get(i).equals(DateType.Between)) { datesCreatedQuery.append("(dateCreated between '"); datesCreatedQuery.append(DateUtils.getMYSQLDate(datesCreated.get(i))); datesCreatedQuery.append("' AND '"); datesCreatedQuery.append(DateUtils.getMYSQLDate(datesCreatedBetween.get(i))); datesCreatedQuery.append("')"); } else if (datesCreatedTypes.get(i).equals(DateType.InOn)) { } } datesCreatedQuery.append(')'); if (!datesCreatedQuery.toString().equals("")) { if (jpaQuery.length() > 20) { jpaQuery.append(" AND "); } jpaQuery.append(datesCreatedQuery); } } // Last update if (datesLastUpdateTypes.size() > 0) { StringBuilder datesLastUpdateQuery = new StringBuilder("("); for (int i = 0; i < datesLastUpdateTypes.size(); i++) { if (datesLastUpdateTypes.get(i) == null) { continue; } if (datesLastUpdateQuery.length() > 1) { datesLastUpdateQuery.append(" AND "); } if (datesLastUpdateTypes.get(i).equals(DateType.From)) { datesLastUpdateQuery.append("(DATE_FORMAT(lastUpdate, '%Y-%m-%d') >= '"); datesLastUpdateQuery.append(DateUtils.getMYSQLDate(datesLastUpdate.get(i))); datesLastUpdateQuery.append(')'); } else if (datesLastUpdateTypes.get(i).equals(DateType.Before)) { datesLastUpdateQuery.append("(DATE_FORMAT(lastUpdate, '%Y-%m-%d') <= '"); datesLastUpdateQuery.append(DateUtils.getMYSQLDate(datesLastUpdate.get(i))); datesLastUpdateQuery.append(')'); } else if (datesLastUpdateTypes.get(i).equals(DateType.Between)) { datesLastUpdateQuery.append("(DATE_FORMAT(lastUpdate, '%Y-%m-%d') between '"); datesLastUpdateQuery.append(DateUtils.getMYSQLDate(datesLastUpdate.get(i))); datesLastUpdateQuery.append("' AND '"); datesLastUpdateQuery.append(DateUtils.getMYSQLDate(datesLastUpdateBetween.get(i))); datesLastUpdateQuery.append("')"); } else if (datesLastUpdateTypes.get(i).equals(DateType.InOn)) { } } datesLastUpdateQuery.append(')'); if (!datesLastUpdateQuery.toString().equals("")) { if (jpaQuery.length() > 20) { jpaQuery.append(" AND "); } jpaQuery.append(datesLastUpdateQuery); } } //PlaceAllId if (placesId.size() > 0) { StringBuilder placesIdQuery = new StringBuilder("("); for (int i = 0; i < placesId.size(); i++) { if (StringUtils.isNumeric(placesId.get(i))) { if (placesIdQuery.length() > 1) { placesIdQuery.append(" OR "); } placesIdQuery.append("(placeAllId="); placesIdQuery.append(placesId.get(i)); placesIdQuery.append(")"); } else { continue; } } placesIdQuery.append(")"); if (!placesIdQuery.toString().equals("")) { if (jpaQuery.length() > 17) { jpaQuery.append(" AND "); } jpaQuery.append(placesIdQuery); } } //LogicalDelete if (!ObjectUtils.toString(logicalDelete).equals("")) { StringBuilder logicalDeleteQuery = new StringBuilder("("); if (logicalDelete.equals(Boolean.TRUE)) { logicalDeleteQuery.append("(logicalDelete = true)"); } else if (logicalDelete.equals(Boolean.FALSE)) { logicalDeleteQuery.append("(logicalDelete = false)"); } logicalDeleteQuery.append(')'); if (!logicalDeleteQuery.toString().equals("")) { if (jpaQuery.length() > 20) { jpaQuery.append(" AND "); } jpaQuery.append(logicalDeleteQuery); } } else { if (jpaQuery.length() > 20) { jpaQuery.append(" AND "); } jpaQuery.append(" logicalDelete = false"); } return jpaQuery.toString(); }
From source file:org.medici.bia.common.search.AdvancedSearchVolume.java
/** * {@inheritDoc}// w w w. jav a 2 s. c o m */ @Override /** * This method return a Lucene Query object. */ public Query toLuceneQuery() { BooleanQuery luceneQuery = new BooleanQuery(); if (words.size() > 0) { BooleanQuery wordsQuery = new BooleanQuery(); for (int i = 0; i < words.size(); i++) { if (wordsTypes.get(i).equals(WordType.Titles)) { // BooleanQuery subQuery = new BooleanQuery(); subQuery.add(new PrefixQuery(new Term("serieList.title", words.get(i).toLowerCase())), Occur.SHOULD); subQuery.add(new PrefixQuery(new Term("serieList.subTitle1", words.get(i).toLowerCase())), Occur.SHOULD); subQuery.add(new PrefixQuery(new Term("serieList.subTitle2", words.get(i).toLowerCase())), Occur.SHOULD); wordsQuery.add(subQuery, Occur.MUST); } else if (wordsTypes.get(i).equals(WordType.Notes)) { // BooleanQuery subQuery = new BooleanQuery(); subQuery.add(new PrefixQuery(new Term("ccondition", words.get(i).toLowerCase())), Occur.SHOULD); subQuery.add(new PrefixQuery(new Term("ccontext", words.get(i).toLowerCase())), Occur.SHOULD); subQuery.add(new PrefixQuery(new Term("orgNotes", words.get(i).toLowerCase())), Occur.SHOULD); wordsQuery.add(subQuery, Occur.MUST); } else if (wordsTypes.get(i).equals(WordType.TitlesAndNotes)) { BooleanQuery subQuery = new BooleanQuery(); subQuery.add(new PrefixQuery(new Term("serieList.title", words.get(i).toLowerCase())), Occur.SHOULD); subQuery.add(new PrefixQuery(new Term("serieList.subTitle1", words.get(i).toLowerCase())), Occur.SHOULD); subQuery.add(new PrefixQuery(new Term("serieList.subTitle2", words.get(i).toLowerCase())), Occur.SHOULD); wordsQuery.add(subQuery, Occur.MUST); subQuery = new BooleanQuery(); subQuery.add(new PrefixQuery(new Term("ccondition", words.get(i).toLowerCase())), Occur.SHOULD); subQuery.add(new PrefixQuery(new Term("ccontext", words.get(i).toLowerCase())), Occur.SHOULD); subQuery.add(new PrefixQuery(new Term("orgNotes", words.get(i).toLowerCase())), Occur.SHOULD); wordsQuery.add(subQuery, Occur.MUST); } } if (!wordsQuery.toString().equals("")) { luceneQuery.add(wordsQuery, Occur.MUST); } } // Date if (datesTypes.size() > 0) { BooleanQuery datesQuery = new BooleanQuery(); for (int i = 0; i < datesTypes.size(); i++) { if (datesTypes.get(i) == null) { continue; } else if (datesTypes.get(i).equals(DateType.From)) { // Range query can be executed only on UN_TOKENIZED lucene field, so we use sort field. NumericRangeQuery<Integer> dateRangeQuery = NumericRangeQuery.newIntRange("startDate_Sort", 4, DateUtils.getLuceneDate(datesYear.get(i), datesMonth.get(i), datesDay.get(i)), DateUtils.MAX_DATE, true, true); datesQuery.add(dateRangeQuery, Occur.MUST); } else if (datesTypes.get(i).equals(DateType.Before)) { // Range query can be executed only on UN_TOKENIZED lucene field, so we use sort field. NumericRangeQuery<Integer> dateRangeQuery = NumericRangeQuery.newIntRange("endDate_Sort", 4, DateUtils.MIN_DATE, DateUtils.getLuceneDate(datesYear.get(i), datesMonth.get(i), datesDay.get(i)), true, true); datesQuery.add(dateRangeQuery, Occur.MUST); } else if (datesTypes.get(i).equals(DateType.Between)) { // We add two condition because we work on two different fields. NumericRangeQuery<Integer> dateRangeQuery = NumericRangeQuery.newIntRange("startDate_Sort", 4, DateUtils.getLuceneDate(datesYear.get(i), datesMonth.get(i), datesDay.get(i)), DateUtils.MAX_DATE, true, true); datesQuery.add(dateRangeQuery, Occur.MUST); dateRangeQuery = NumericRangeQuery.newIntRange("endDate_Sort", 4, DateUtils.MIN_DATE, DateUtils.getLuceneDate(datesYearBetween.get(i), datesMonthBetween.get(i), datesDayBetween.get(i)), true, true); datesQuery.add(dateRangeQuery, Occur.MUST); } } if (!datesQuery.toString().equals("")) { luceneQuery.add(datesQuery, Occur.MUST); } } // Volume if (volumes.size() > 0) { BooleanQuery volumesQuery = new BooleanQuery(); for (int i = 0; i < volumes.size(); i++) { if (VolumeUtils.isVolumeFormat(volumes.get(i))) { if (volumesTypes.get(i).equals(VolumeType.Exactly)) { if (StringUtils.isNumeric(volumes.get(i))) { // (volNum:1) BooleanClause booleanClause = new BooleanClause( new TermQuery(new Term("volNum", volumes.get(i))), Occur.MUST); volumesQuery.add(booleanClause); } else { BooleanQuery subQuery = new BooleanQuery(); // (volNum:1 AND volLetExt:a) BooleanClause booleanClause = new BooleanClause(new TermQuery( new Term("volNum", VolumeUtils.extractVolNum(volumes.get(i)).toString())), Occur.MUST); subQuery.add(booleanClause); booleanClause.setQuery(new TermQuery( new Term("volLetExt", VolumeUtils.extractVolNum(volumes.get(i)).toString()))); booleanClause.setOccur(Occur.MUST); subQuery.add(booleanClause); volumesQuery.add(subQuery, Occur.MUST); } } else if (volumesTypes.get(i).equals(VolumeType.Between)) { // Range query can be executed only on UN_TOKENIZED lucene field, so we use sort field. NumericRangeQuery<Integer> volumeRangeQuery = NumericRangeQuery.newIntRange("volNum_Sort", 4, NumberUtils.toInt(volumes.get(i)), NumberUtils.toInt(volumesBetween.get(i)), true, true); volumesQuery.add(volumeRangeQuery, Occur.MUST); } } else { // if volume value is not in volume format we discard it! continue; } } if (!volumesQuery.toString().equals("")) { luceneQuery.add(volumesQuery, Occur.MUST); } } // Digitized is a new field on tblVolumes if (!ObjectUtils.toString(digitized).equals("")) { BooleanQuery digitizedQuery = new BooleanQuery(); TermQuery digitizedTermQuery; if (digitized.equals(Boolean.TRUE)) { digitizedTermQuery = new TermQuery(new Term("digitized", "true")); digitizedQuery.add(digitizedTermQuery, Occur.MUST); } else { digitizedTermQuery = new TermQuery(new Term("digitized", "false")); digitizedQuery.add(digitizedTermQuery, Occur.MUST); } luceneQuery.add(new BooleanClause(digitizedQuery, Occur.MUST)); } //Languages if (languages.size() > 0) { BooleanQuery languagesQuery = new BooleanQuery(); for (int i = 0; i < languages.size(); i++) { BooleanQuery singleLanguagesQuery = new BooleanQuery(); String[] wordsSingleLanguages = StringUtils.split(languages.get(i), " "); for (int j = 0; j < wordsSingleLanguages.length; j++) { TermQuery termQuery; if (wordsSingleLanguages[j].equals("italian")) { termQuery = new TermQuery(new Term("italian", "true")); singleLanguagesQuery.add(termQuery, Occur.MUST); } if (wordsSingleLanguages[j].equals("french")) { termQuery = new TermQuery(new Term("french", "true")); singleLanguagesQuery.add(termQuery, Occur.MUST); } if (wordsSingleLanguages[j].equals("german")) { termQuery = new TermQuery(new Term("german", "true")); singleLanguagesQuery.add(termQuery, Occur.MUST); } if (wordsSingleLanguages[j].equals("spanish")) { termQuery = new TermQuery(new Term("spanish", "true")); singleLanguagesQuery.add(termQuery, Occur.MUST); } if (wordsSingleLanguages[j].equals("latin")) { termQuery = new TermQuery(new Term("latin", "true")); singleLanguagesQuery.add(termQuery, Occur.MUST); } if (wordsSingleLanguages[j].equals("english")) { termQuery = new TermQuery(new Term("english", "true")); singleLanguagesQuery.add(termQuery, Occur.MUST); } } languagesQuery.add(new BooleanClause(singleLanguagesQuery, Occur.MUST)); } luceneQuery.add(new BooleanClause(languagesQuery, Occur.MUST)); } //Cypher if (cipher.length() > 0) { BooleanQuery cipherQuery = new BooleanQuery(); TermQuery cipherTermQuery; if (cipher.equals("Yes")) { cipherTermQuery = new TermQuery(new Term("cipher", "true")); cipherQuery.add(cipherTermQuery, Occur.MUST); } else if (cipher.equals("No")) { cipherTermQuery = new TermQuery(new Term("cipher", "false")); cipherQuery.add(cipherTermQuery, Occur.MUST); } luceneQuery.add(new BooleanClause(cipherQuery, Occur.MUST)); } //Index Of Names if (index.length() > 0) { BooleanQuery indexQuery = new BooleanQuery(); TermQuery indexTermQuery; if (index.equals("Yes")) { indexTermQuery = new TermQuery(new Term("oldAlphaIndex", "true")); indexQuery.add(indexTermQuery, Occur.MUST); } else if (index.equals("No")) { indexTermQuery = new TermQuery(new Term("oldAlphaIndex", "true")); indexQuery.add(indexTermQuery, Occur.MUST); } luceneQuery.add(new BooleanClause(indexQuery, Occur.MUST)); } //From if (fromVolume.size() > 0) { BooleanQuery fromVolumeQuery = new BooleanQuery(); for (int i = 0; i < fromVolume.size(); i++) { BooleanQuery singleFromVolumeQuery = new BooleanQuery(); String[] wordsSingleFromVolume = StringUtils.split(fromVolume.get(i), " "); for (int j = 0; j < wordsSingleFromVolume.length; j++) { TermQuery termQuery = new TermQuery(new Term("senders", wordsSingleFromVolume[j])); singleFromVolumeQuery.add(termQuery, Occur.MUST); } fromVolumeQuery.add(new BooleanClause(singleFromVolumeQuery, Occur.MUST)); } luceneQuery.add(new BooleanClause(fromVolumeQuery, Occur.MUST)); } //To if (toVolume.size() > 0) { BooleanQuery toVolumeQuery = new BooleanQuery(); for (int i = 0; i < toVolume.size(); i++) { BooleanQuery singleToVolumeQuery = new BooleanQuery(); String[] wordsSingleToVolume = StringUtils.split(toVolume.get(i), " "); for (int j = 0; j < wordsSingleToVolume.length; j++) { TermQuery termQuery = new TermQuery(new Term("recips", wordsSingleToVolume[j])); singleToVolumeQuery.add(termQuery, Occur.MUST); } toVolumeQuery.add(new BooleanClause(singleToVolumeQuery, Occur.MUST)); } luceneQuery.add(new BooleanClause(toVolumeQuery, Occur.MUST)); } //Context if (context.size() > 0) { BooleanQuery contextQuery = new BooleanQuery(); for (int i = 0; i < context.size(); i++) { BooleanQuery singleContextQuery = new BooleanQuery(); String[] wordsSingleContext = StringUtils.split(context.get(i), " "); for (int j = 0; j < wordsSingleContext.length; j++) { TermQuery termQuery = new TermQuery(new Term("ccontext", wordsSingleContext[j])); singleContextQuery.add(termQuery, Occur.MUST); } contextQuery.add(new BooleanClause(singleContextQuery, Occur.MUST)); } luceneQuery.add(new BooleanClause(contextQuery, Occur.MUST)); } //Inventario if (inventario.size() > 0) { BooleanQuery inventarioQuery = new BooleanQuery(); for (int i = 0; i < inventario.size(); i++) { BooleanQuery singleInventarioQuery = new BooleanQuery(); String[] wordsSingleInventario = StringUtils.split(inventario.get(i), " "); for (int j = 0; j < wordsSingleInventario.length; j++) { TermQuery termQuery = new TermQuery( new Term("inventarioSommarioDescription", wordsSingleInventario[j])); singleInventarioQuery.add(termQuery, Occur.MUST); } inventarioQuery.add(new BooleanClause(singleInventarioQuery, Occur.MUST)); } luceneQuery.add(new BooleanClause(inventarioQuery, Occur.MUST)); } //test // TermQuery test = new TermQuery(new Term("italian", "true")); // BooleanQuery test2 = new BooleanQuery(); // test2.add(test, Occur.MUST); // luceneQuery.add(new BooleanClause(test2, Occur.MUST)); return luceneQuery; }