Author: gttersen
Date: 2007-04-18 20:59:52 +0200 (Wed, 18 Apr 2007)
New Revision: 4831
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSearchCommand.java
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsAggregatorSearchCommand.java
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/ClusteringESPFastConfiguration.java
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformerConfig.java
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformerConfig.java
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformer.java
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformer.java
Log:
Changes for NewsAggregator
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
2007-04-17 21:04:22 UTC (rev 4830)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/SearchModeFactory.java
2007-04-18 18:59:52 UTC (rev 4831)
@@ -799,6 +799,8 @@
fillBeanProperty(cefc, inherit, "clusterField",
ParseType.String, commandE, "cluster");
fillBeanProperty(cefc, inherit, "clusterMaxFetch",
ParseType.Int, commandE, "10");
fillBeanProperty(cefc, inherit, "nestedResultsField",
ParseType.String, commandE, "entries");
+ fillBeanProperty(cefc, inherit, "userSortByField",
ParseType.String, commandE, "publishedtime");
+ fillBeanProperty(cefc, inherit, "userSortByParameter",
ParseType.String, commandE, "sortBy");
}
if (sc instanceof NewsAggregatorSearchConfiguration) {
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSearchCommand.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSearchCommand.java
2007-04-17 21:04:22 UTC (rev 4830)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/AbstractSearchCommand.java
2007-04-18 18:59:52 UTC (rev 4831)
@@ -101,7 +101,7 @@
// Constructors --------------------------------------------------
/**
- * @param cxt The context to execute in.
+ * @param cxt The context to execute in.
*/
public AbstractSearchCommand(final SearchCommand.Context cxt) {
@@ -121,7 +121,7 @@
// initialise transformed terms
final Visitor mapInitialisor = new MapInitialisor(transformedTerms);
mapInitialisor.visit(root);
- untransformedQuery = getQueryRepresentation(query);
+ untransformedQuery = getQueryRepresentation(query);
// create additional filters
final FilterVisitor additionalFilterVisitor = new FilterVisitor();
@@ -134,8 +134,10 @@
// Public --------------------------------------------------------
- /** TODO comment me.
- * @return
+ /**
+ * TODO comment me.
+ *
+ * @return
*/
public abstract SearchResult execute();
@@ -261,21 +263,27 @@
private final StringBuilder sb = new StringBuilder();
- /** TODO comment me. *
+ /**
+ * TODO comment me. *
+ *
* @param clause
*/
protected void visitImpl(final LeafClause clause) {
appendToQueryRepresentation(getTransformedTerm(clause));
}
- /** TODO comment me. *
+ /**
+ * TODO comment me. *
+ *
* @param clause
*/
protected void visitImpl(final OperationClause clause) {
clause.getFirstClause().accept(this);
}
- /** TODO comment me. *
+ /**
+ * TODO comment me. *
+ *
* @param clause
*/
protected void visitImpl(final AndClause clause) {
@@ -284,7 +292,9 @@
clause.getSecondClause().accept(this);
}
- /** TODO comment me. *
+ /**
+ * TODO comment me. *
+ *
* @param clause
*/
protected void visitImpl(final OrClause clause) {
@@ -293,7 +303,9 @@
clause.getSecondClause().accept(this);
}
- /** TODO comment me. *
+ /**
+ * TODO comment me. *
+ *
* @param clause
*/
protected void visitImpl(final DefaultOperatorClause clause) {
@@ -302,7 +314,9 @@
clause.getSecondClause().accept(this);
}
- /** TODO comment me. *
+ /**
+ * TODO comment me. *
+ *
* @param clause
*/
protected void visitImpl(final NotClause clause) {
@@ -313,7 +327,9 @@
}
}
- /** TODO comment me. *
+ /**
+ * TODO comment me. *
+ *
* @param clause
*/
protected void visitImpl(final AndNotClause clause) {
@@ -325,22 +341,23 @@
}
/**
- *
* @param visitor
* @param clause
*/
- protected void visitXorClause(final Visitor visitor, final XorClause
clause){
+ protected void visitXorClause(final Visitor visitor, final XorClause
clause) {
// determine which branch in the query-tree we want to use.
// Both branches to a XorClause should never be used.
- switch(clause.getHint()){
- default:
- clause.getFirstClause().accept(visitor);
- break;
+ switch (clause.getHint()) {
+ default:
+ clause.getFirstClause().accept(visitor);
+ break;
}
}
- /** TODO comment me. *
+ /**
+ * TODO comment me. *
+ *
* @param clause
*/
protected final void visitImpl(final XorClause clause) {
@@ -362,10 +379,12 @@
return clause.getField() + "\\:" + clause.getTerm();
}
- /** TODO comment me.
+ /**
+ * TODO comment me.
+ *
* @return
*/
- protected final void performQueryTransformation(){
+ protected final void performQueryTransformation() {
applyQueryTransformers(
getQuery(),
@@ -375,11 +394,10 @@
/**
- *
* @param queryToUse
* @return
*/
- protected final SearchResult performExecution(final Query queryToUse){
+ protected final SearchResult performExecution(final Query queryToUse) {
final StopWatch watch = new StopWatch();
watch.start();
@@ -401,6 +419,7 @@
executeQuery |= null != parameters.get("c") &&
parameters.get("c").equals("na") && getTransformedQuery().trim().length() > 0;
executeQuery |= null != parameters.get("c") &&
parameters.get("c").equals("nc") && getTransformedQuery().trim().length() > 0;
executeQuery |= null != parameters.get("c") &&
parameters.get("c").equals("nm") && getTransformedQuery().trim().length() > 0;
+ executeQuery |= this instanceof NewsMyNewsSearchCommand;
executeQuery |= null != filter && filter.length() > 0;
LOG.info("executeQuery==" + executeQuery
@@ -531,7 +550,9 @@
// <-- Query Representation state methods (useful while the inbuilt
visitor is in operation)
// - TODO enscapsulated this state in a separate inner class.
- /** TODO comment me. **/
+ /**
+ * TODO comment me. *
+ */
protected synchronized String getQueryRepresentation(final Query query) {
final Clause root = query.getRootClause();
@@ -554,14 +575,18 @@
sb.insert(offset, addition);
}
- /** TODO comment me. **/
+ /**
+ * TODO comment me. *
+ */
protected final int getQueryRepresentationLength() {
return sb.length();
}
// Query Representation state methods -->
- /** TODO comment me. **/
+ /**
+ * TODO comment me. *
+ */
protected final String getTransformedTerm(final Clause clause) {
final String transformedTerm = transformedTerms.get(clause);
return escapeTerm(transformedTerm != null ? transformedTerm :
clause.getTerm());
@@ -605,25 +630,28 @@
/**
* Use this always instead of datamodel.getQuery().getQuery()
- * because the command could be running off a different query string.
+ * because the command could be running off a different query string.
+ *
* @return
*/
- protected Query getQuery(){
+ protected Query getQuery() {
return query;
}
/**
* Use this always instead of context.getTokenEvaluationEngine()
- * because the command could be running off a different query string.
+ * because the command could be running off a different query string.
+ *
* @return
*/
- protected TokenEvaluationEngine getEngine(){
+ protected TokenEvaluationEngine getEngine() {
return engine;
}
- /** XXX Very expensive method to call!
+ /**
+ * XXX Very expensive method to call!
*
* @param queryString
* @return
@@ -711,7 +739,6 @@
}
/**
- *
* @param msg
*/
protected final void statisticsInfo(final String msg) {
@@ -724,7 +751,6 @@
}
/**
- *
* @return
*/
protected SesamSyntaxQueryBuilder newSesamSyntaxQueryBuilder() {
@@ -733,7 +759,7 @@
// Private -------------------------------------------------------
- private void initialiseQuery(){
+ private void initialiseQuery() {
// use the query or something search-command specific
final String queryParameter =
getSearchConfiguration().getQueryParameter();
@@ -747,7 +773,7 @@
query = recon.getQuery();
engine = recon.getEngine();
- } else {
+ } else {
query = datamodel.getQuery().getQuery();
engine = context.getTokenEvaluationEngine();
@@ -1064,12 +1090,12 @@
*/
protected void visitImpl(final XorClause clause) {
- switch(clause.getHint()){
- case FULLNAME_ON_LEFT:
- clause.getSecondClause().accept(this);
- break;
- default:
- AbstractSearchCommand.this.visitXorClause(this, clause);
+ switch (clause.getHint()) {
+ case FULLNAME_ON_LEFT:
+ clause.getSecondClause().accept(this);
+ break;
+ default:
+ AbstractSearchCommand.this.visitXorClause(this, clause);
}
}
}
@@ -1087,7 +1113,6 @@
}
/**
- *
* @return
*/
public Query getQuery() {
@@ -1095,7 +1120,6 @@
}
/**
- *
* @return
*/
public TokenEvaluationEngine getEngine() {
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
2007-04-17 21:04:22 UTC (rev 4830)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/ClusteringESPFastCommand.java
2007-04-18 18:59:52 UTC (rev 4831)
@@ -35,6 +35,13 @@
*/
protected void modifyQuery(IQuery query) {
final ClusteringESPFastConfiguration config = getSearchConfiguration();
+
+ // Can not use the default sort functionality since it hardcodes field
name
+ final StringDataObject sortBy =
datamodel.getParameters().getValue(config.getUserSortByParameter());
+ if (sortBy != null) {
+ query.setParameter(BaseParameter.SORT_BY, sortBy.getString());
+ }
+
final StringDataObject clusterId =
datamodel.getParameters().getValue(config.getClusterIdParameter());
if (clusterId == null) {
LOG.debug("--- Modifying query. ---");
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsAggregatorSearchCommand.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsAggregatorSearchCommand.java
2007-04-17 21:04:22 UTC (rev 4830)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsAggregatorSearchCommand.java
2007-04-18 18:59:52 UTC (rev 4831)
@@ -121,7 +121,11 @@
private SearchResult getPageResult(NewsAggregatorSearchConfiguration
config, String xmlFile) {
final NewsAggregatorXmlParser newsAggregatorXmlParser = new
NewsAggregatorXmlParser();
try {
- SearchResult searchResult =
newsAggregatorXmlParser.parseFullPage(config, getInputStream(config, xmlFile),
this);
+ int offset = 0;
+ if (datamodel.getJunkYard().getValue("offset") != null) {
+ offset = Integer.parseInt((String)
datamodel.getJunkYard().getValue("offset"));
+ }
+ SearchResult searchResult =
newsAggregatorXmlParser.parseFullPage(config, offset, getInputStream(config,
xmlFile), this);
if (searchResult != null && searchResult.getHitCount() > 0) {
return searchResult;
}
@@ -194,14 +198,14 @@
}
}
- public FastSearchResult
parseFullPage(NewsAggregatorSearchConfiguration config, InputStream
inputStream, SearchCommand searchCommand) throws JDOMException, IOException {
+ public FastSearchResult
parseFullPage(NewsAggregatorSearchConfiguration config, int offset, InputStream
inputStream, SearchCommand searchCommand) throws JDOMException, IOException {
try {
final FastSearchResult searchResult = new
FastSearchResult(searchCommand);
final Document doc = getDocument(inputStream);
final Element root = doc.getRootElement();
- handleClusters(config, root.getChildren(ELEMENT_CLUSTER),
searchResult, searchCommand);
+ handleClusters(config, offset,
root.getChildren(ELEMENT_CLUSTER), searchResult, searchCommand);
handleRelated(config, root.getChild(ELEMENT_RELATED),
searchResult);
handleGeoNav(root.getChild(ELEMENT_GEONAVIGATION),
searchResult);
return searchResult;
@@ -243,9 +247,11 @@
}
}
- private void handleClusters(NewsAggregatorSearchConfiguration config,
List<Element> clusters, SearchResult searchResult, SearchCommand searchCommand)
{
+ private void handleClusters(NewsAggregatorSearchConfiguration config,
int offset, List<Element> clusters, SearchResult searchResult, SearchCommand
searchCommand) {
int hitCount = 0;
- for (Element cluster : clusters) {
+ int maxOffset = offset + config.getResultsToReturn();
+ for (int i = offset; i < clusters.size() && i < maxOffset; i++) {
+ Element cluster = clusters.get(i);
hitCount += handleCluster(config, cluster, searchCommand,
searchResult);
}
searchResult.setHitCount(hitCount);
Modified:
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/ClusteringESPFastConfiguration.java
===================================================================
---
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/ClusteringESPFastConfiguration.java
2007-04-17 21:04:22 UTC (rev 4830)
+++
trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/config/ClusteringESPFastConfiguration.java
2007-04-18 18:59:52 UTC (rev 4831)
@@ -7,6 +7,7 @@
private String clusterField;
private String clusterMaxFetch;
private String nestedResultsField;
+ private String userSortByParameter;
public ClusteringESPFastConfiguration(SearchConfiguration asc) {
super(asc);
@@ -17,9 +18,18 @@
clusterField = cefcc.getClusterField();
clusterMaxFetch = cefcc.getClusterMaxFetch();
nestedResultsField = cefcc.getNestedResultsField();
+ userSortByParameter = cefcc.getUserSortByParameter();
}
}
+ public String getUserSortByParameter() {
+ return userSortByParameter;
+ }
+
+ public void setUserSortByParameter(String userSortByParameter) {
+ this.userSortByParameter = userSortByParameter;
+ }
+
public String getNestedResultsField() {
return nestedResultsField;
}
Modified:
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformerConfig.java
===================================================================
---
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformerConfig.java
2007-04-17 21:04:22 UTC (rev 4830)
+++
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformerConfig.java
2007-04-18 18:59:52 UTC (rev 4831)
@@ -27,13 +27,16 @@
private static final String PREFIX = "prefix";
private static final String POSTFIX = "postfix";
private static final String TYPE_NAME = "name";
+ private static final String DEFAULT_TYPE = "default-type";
private static final String DEFAULT_CONVERT_ELEMENT = "default-convert";
private String queryType;
private String queryParameter;
private String typeParameter;
+ private String defaultType;
private Map<String, String[]> typeConversions;
+
/**
* @return
*/
@@ -53,12 +56,22 @@
return typeConversions;
}
+ public String getDefaultType() {
+ return defaultType;
+ }
+
@Override
public NewsCaseQueryTransformerConfig readQueryTransformer(final Element
element) {
Logger log = Logger.getLogger(NewsCaseQueryTransformerConfig.class);
queryType = element.getAttribute(QUERY_TYPE);
- queryParameter = element.getAttribute(QUERY_PARAMETER);
+ if (element.getAttribute(QUERY_PARAMETER) != null &&
element.getAttribute(QUERY_PARAMETER).length() > 0) {
+ queryParameter = element.getAttribute(QUERY_PARAMETER);
+ }
typeParameter = element.getAttribute(TYPE_PARAMETER);
+ final String optionalParameter = element.getAttribute(DEFAULT_TYPE);
+ if (optionalParameter != null && optionalParameter.length() > 0) {
+ defaultType = optionalParameter;
+ }
NodeList convertNodeList =
element.getElementsByTagName(DEFAULT_CONVERT_ELEMENT);
if (convertNodeList.getLength() > 0) {
typeConversions = new HashMap<String, String[]>();
Modified:
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformerConfig.java
===================================================================
---
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformerConfig.java
2007-04-17 21:04:22 UTC (rev 4830)
+++
trunk/query-transform-config-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformerConfig.java
2007-04-18 18:59:52 UTC (rev 4831)
@@ -10,9 +10,10 @@
private static final String TYPE = "type";
private static final String FILTER_FIELD = "filter-field";
private static final String POSITION = "position";
+ private static final String QUERY_PARAMETER = "query-parameter";
private int position = -1;
+ private String queryParameter;
-
public String getFilterField() {
return filterField;
}
@@ -37,10 +38,17 @@
this.position = position;
}
+ public String getQueryParameter() {
+ return queryParameter;
+ }
+
@Override
public NewsMyNewsQueryTransformerConfig readQueryTransformer(final Element
element) {
- filterField = element.getAttribute(FILTER_FIELD);
type = element.getAttribute(TYPE);
+ queryParameter = element.getAttribute(QUERY_PARAMETER);
+ if (element.getAttribute(FILTER_FIELD) != null &&
element.getAttribute(FILTER_FIELD).length() > 0) {
+ filterField = element.getAttribute(FILTER_FIELD);
+ }
if (element.getAttribute(POSITION) != null &&
element.getAttribute(POSITION).length() > 0) {
position = Integer.parseInt(element.getAttribute(POSITION));
}
Modified:
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformer.java
===================================================================
---
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformer.java
2007-04-17 21:04:22 UTC (rev 4830)
+++
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsCaseQueryTransformer.java
2007-04-18 18:59:52 UTC (rev 4831)
@@ -36,26 +36,43 @@
*/
public void visitImpl(final Clause clause) {
dataAccess.setProperties(getContext().getDataModel().getSite().getSiteConfiguration().getProperties());
- String queryString = (String)
getContext().getDataModel().getJunkYard().getValue(config.getQueryParameter());
+ String queryString;
+ if (config.getQueryParameter() == null) {
+ queryString = getTransformedTermsQuery();
+ } else {
+ queryString = (String)
getContext().getDataModel().getJunkYard().getValue(config.getQueryParameter());
+ }
LOG.debug("Original query is: '" + queryString + "'");
- String transformedQuery = dataAccess.getQuery(queryString,
config.getQueryType());
- if (transformedQuery == null) {
- transformedQuery = defaultTransform(queryString);
+ if (queryString != null && queryString.length() > 0) {
+ String transformedQuery = dataAccess.getQuery(queryString,
config.getQueryType());
+ if (transformedQuery == null) {
+ transformedQuery = defaultTransform(queryString);
+ }
+ for (Clause keyClause :
getContext().getTransformedTerms().keySet()) {
+ getContext().getTransformedTerms().put(keyClause, "");
+ }
+ LOG.debug("New query is: '" + transformedQuery + "'");
+ if (transformedQuery.length() > 0) {
+
getContext().getDataModel().getJunkYard().setValue(config.getQueryType(),
transformedQuery);
+
getContext().getTransformedTerms().put(getContext().getQuery().getFirstLeafClause(),
transformedQuery);
+ }
}
+ }
+
+ private String getTransformedTermsQuery() {
+ StringBuilder query = new StringBuilder();
for (Clause keyClause : getContext().getTransformedTerms().keySet()) {
- getContext().getTransformedTerms().put(keyClause, "");
+ query.append(getContext().getTransformedTerms().get(keyClause));
}
- LOG.debug("New query is: '" + transformedQuery + "'");
- if (transformedQuery.length() > 0) {
-
getContext().getDataModel().getJunkYard().setValue(config.getQueryType(),
transformedQuery);
-
getContext().getTransformedTerms().put(getContext().getQuery().getFirstLeafClause(),
transformedQuery);
- }
-
+ return query.toString();
}
private String defaultTransform(String queryString) {
if (config.getTypeConversions() != null) {
String type = (String)
getContext().getDataModel().getJunkYard().getValue(config.getTypeParameter());
+ if (type == null) {
+ type = config.getDefaultType();
+ }
if (type != null) {
String[] conversion = config.getTypeConversions().get(type);
if (conversion != null) {
Modified:
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformer.java
===================================================================
---
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformer.java
2007-04-17 21:04:22 UTC (rev 4830)
+++
trunk/query-transform-control-spi/src/main/java/no/schibstedsok/searchportal/query/transform/NewsMyNewsQueryTransformer.java
2007-04-18 18:59:52 UTC (rev 4831)
@@ -26,14 +26,14 @@
}
public void visitImpl(final Clause clause) {
- String myNews = getContext().getQuery().getQueryString();
+ String myNews = (String)
getContext().getDataModel().getJunkYard().getValue(config.getQueryParameter());
LOG.debug("Transforming query according to query = " + myNews);
final String transformedQuery = transformQuery(myNews);
if (transformedQuery != null) {
+ LOG.debug("New query is: '" + transformedQuery + "'");
for (Clause keyClause :
getContext().getTransformedTerms().keySet()) {
getContext().getTransformedTerms().put(keyClause, "");
}
- LOG.debug("New query is: '" + transformedQuery + "'");
if (transformedQuery.length() > 0) {
getContext().getTransformedTerms().put(getContext().getQuery().getFirstLeafClause(),
transformedQuery);
}
@@ -42,35 +42,40 @@
private String transformQuery(String myNews) {
if (myNews != null && myNews.length() > 0) {
- StringBuilder newQuery = new StringBuilder();
- Matcher matcher = queryPattern.matcher(myNews);
+ final Matcher matcher = queryPattern.matcher(myNews);
if (config.getPosition() == -1) {
+ LOG.debug("No position. Appending all matches.");
+ final StringBuilder newQuery = new StringBuilder();
while (matcher.find()) {
if (matcher.group(2).equals(config.getType())) {
if (newQuery.length() == 0) {
-
newQuery.append("filter(").append(config.getFilterField()).append(":or(");
+ if (config.getFilterField() != null) {
+
newQuery.append("filter(").append(config.getFilterField()).append(":or(");
+ }
} else {
newQuery.append(',');
}
newQuery.append('\"').append(matcher.group(1)).append('\"');
}
}
+ if (newQuery.length() > 0 && config.getFilterField() != null) {
+ newQuery.append("))");
+ }
+ return newQuery.toString();
} else {
+ LOG.debug("Position is: " + config.getPosition());
int curPos = 0;
while (matcher.find() && curPos < config.getPosition()) {
// Just searching for the correct match.
curPos++;
}
- if (matcher.group(2).equals(config.getType()) &&
matcher.groupCount() > 0) {
-
newQuery.append("filter(").append(config.getFilterField()).append('(').append('\"').append(matcher.group(1)).append('\"');
+ LOG.debug("Group at pos: " + config.getPosition() + " is " +
matcher.group(0) + ", looking for " + config.getType());
+ if (matcher.groupCount() > 0 &&
matcher.group(2).equals(config.getType())) {
+ return matcher.group(1);
} else {
return "";
}
}
- if (newQuery.length() > 0) {
- newQuery.append("))");
- return newQuery.toString();
- }
}
return "";
}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits