Author: ssmalamb
Date: 2007-06-28 10:41:16 +0200 (Thu, 28 Jun 2007)
New Revision: 5457
Modified:
branches/2.14/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/PrisjaktSearchCommand.java
Log:
Code clean up
Modified:
branches/2.14/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/PrisjaktSearchCommand.java
===================================================================
---
branches/2.14/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/PrisjaktSearchCommand.java
2007-06-27 17:24:36 UTC (rev 5456)
+++
branches/2.14/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/PrisjaktSearchCommand.java
2007-06-28 08:41:16 UTC (rev 5457)
@@ -1,4 +1,4 @@
-// Copyright (2007) Schibsted Søk AS
+// Copyright (2007) Schibsted Sök AB
package no.schibstedsok.searchportal.mode.command;
import java.io.UnsupportedEncodingException;
@@ -10,6 +10,7 @@
import javax.xml.rpc.ServiceException;
+import no.schibstedsok.searchportal.InfrastructureException;
import no.schibstedsok.searchportal.query.token.TokenEvaluationEngine;
import no.schibstedsok.searchportal.query.token.TokenPredicate;
import no.schibstedsok.searchportal.result.BasicResultItem;
@@ -25,7 +26,6 @@
import nu.prisjakt.www.wsdl.Tillverkare;
import org.apache.axis.client.Stub;
-import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
/**
@@ -35,9 +35,6 @@
private static final Logger LOG =
Logger.getLogger(PrisjaktSearchCommand.class);
-// private static final String ERR_FAILED_PRISJAKT_SEARCH = "Failed
Prisjakt search command";
-// private static final String ERR_FAILED_ENCODE_PRISJAKT = "Failed to
encode Prisjakt search query";
-
/**
* Format för siffror utan decimaler med tusenavskiljare.
*/
@@ -53,10 +50,10 @@
/**
* Creates a new instance of this class.
*
- * @param cxt The context to execute in.
+ * @param cxt
+ * The context to execute in.
*/
public PrisjaktSearchCommand(final Context cxt) {
-
super(cxt);
}
@@ -73,7 +70,7 @@
result.setHitCount(0);
try {
port = service.getPrisjaktPort(new
java.net.URL(service.getPrisjaktPortAddress()));
- ((Stub)port).setTimeout(1000);
+ ((Stub) port).setTimeout(1000);
result.addField("urlEncodedsearchquery", URLEncoder.encode(query,
"iso-8859-1").replaceAll("\\+", "%20"));
result.addField("searchquery", query);
if (engine.evaluateQuery(TokenPredicate.PRISJAKT_PRODUCTS,
getQuery())) {
@@ -82,12 +79,18 @@
result.addField("searchtype", "productsearch");
result.setHitCount(products != null ? products.length : 0);
productConverter(result, products);
-// } else if
(engine.evaluateQuery(TokenPredicate.PRISJAKT_CATEGORIES_AND_MANUFACTURERS,
getQuery())) {
-// final IndataTillverkare_Kategorinamn itk = new
IndataTillverkare_Kategorinamn();
-// final Resultat prisjaktResult =
port.getTillverkare_KategoriViaNamn(itk);
-// final Tillverkare_Kategori[] tillverkareKategorier =
prisjaktResult.getTillverkare_Kategorier();
-// result.addField("searchtype", "manufacturer_categorysearch");
-// result.setHitCount(tillverkareKategorier != null ?
tillverkareKategorier.length : 0);
+ // } else if
+ //
(engine.evaluateQuery(TokenPredicate.PRISJAKT_CATEGORIES_AND_MANUFACTURERS,
+ // getQuery())) {
+ // final IndataTillverkare_Kategorinamn itk = new
+ // IndataTillverkare_Kategorinamn();
+ // final Resultat prisjaktResult =
+ // port.getTillverkare_KategoriViaNamn(itk);
+ // final Tillverkare_Kategori[] tillverkareKategorier =
+ // prisjaktResult.getTillverkare_Kategorier();
+ // result.addField("searchtype",
"manufacturer_categorysearch");
+ // result.setHitCount(tillverkareKategorier != null ?
+ // tillverkareKategorier.length : 0);
} else if
(engine.evaluateQuery(TokenPredicate.PRISJAKT_CATEGORIES, getQuery())) {
final Resultat prisjaktResult = port.getKategoriViaNamn(query);
final Kategori[] kategorier = prisjaktResult.getKategorier();
@@ -108,42 +111,40 @@
storeConverter(result, butiker);
}
} catch (MalformedURLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOG.error("MalformedURLException:",e);
+ throw new InfrastructureException(e);
} catch (ServiceException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOG.error("InfrastructureException:",e);
+ throw new InfrastructureException(e);
} catch (RemoteException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOG.error("RemoteException:",e);
+ throw new InfrastructureException(e);
} catch (UnsupportedEncodingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ LOG.error("UnsupportedEncodingException:",e);
+ throw new InfrastructureException(e);
}
-
return result;
}
private void productConverter(final ResultList<ResultItem> result, final
Produkt[] products) {
-
- for (final Produkt product : products) {
-
- ResultItem item = new BasicResultItem();
- item = item.addField("productName", product.getProduktnamn());
- final int lPris = product.getLagstaPris();
- final String cf = nummerAvskFormat(lPris);
- item = item.addField("lowestPrice", cf);
- item = item.addField("numberofStores", Integer.toString(product
- .getAntalButiker()));
- /* &st=4 tillägget gör att vi får en liten bild ifrån prisjakt*/
- if (product.getBild().equalsIgnoreCase("")) {
- item = item.addField("productPicture", "");
- } else {
- item = item.addField("productPicture", product.getBild() +
"&st=4");
+ if (products != null) {
+ for (final Produkt product : products) {
+ ResultItem item = new BasicResultItem();
+ item = item.addField("productName", product.getProduktnamn());
+ final int lPris = product.getLagstaPris();
+ final String cf = nummerAvskFormat(lPris);
+ item = item.addField("lowestPrice", cf);
+ item = item.addField("numberofStores",
Integer.toString(product.getAntalButiker()));
+ /* &st=4 shows small images in prisjakt enrichment */
+ if (product.getBild().equalsIgnoreCase("")) {
+ item = item.addField("productPicture", "");
+ } else {
+ item = item.addField("productPicture", product.getBild() +
"&st=4");
+ }
+ item = item.addField("productURL", product.getUrl());
+ item = item.addField("categoryName",
product.getKategorinamn());
+ result.addResult(item);
}
- item = item.addField("productURL", product.getUrl());
- item = item.addField("categoryName", product.getKategorinamn());
- result.addResult(item);
}
}
@@ -160,19 +161,18 @@
}
private void storeConverter(ResultList<ResultItem> result, Butik[] stores)
{
-
- for (final Butik store : stores) {
-
- ResultItem item = new BasicResultItem();
- item = item.addField("numberofProducts",
Integer.toString(store.getAntalProdukter()));
- item = item.addField("storeURL", store.getUrl());
- item = item.addField("storeName", store.getButiksnamn());
- result.addResult(item);
+ if (stores != null) {
+ for (final Butik store : stores) {
+ ResultItem item = new BasicResultItem();
+ item = item.addField("numberofProducts",
Integer.toString(store.getAntalProdukter()));
+ item = item.addField("storeURL", store.getUrl());
+ item = item.addField("storeName", store.getButiksnamn());
+ result.addResult(item);
+ }
}
}
private void manufacturerConverter(ResultList<ResultItem> result,
Tillverkare[] manufacturers) {
-
if (manufacturers != null) {
for (final Tillverkare manufacturer : manufacturers) {
ResultItem item = new BasicResultList();
@@ -189,63 +189,7 @@
*/
private static String nummerAvskFormat(final Number nummer) {
- return nummer == null ? ""
:NUMMER_AVSK_FORMAT.format(nummer.doubleValue());
+ return nummer == null ? "" :
NUMMER_AVSK_FORMAT.format(nummer.doubleValue());
}
- /** Isn't there a java class for number formatting? */
-
- /**
- * Formatera med tusenavskiljare och lägger till decimaldel med
komma-tecken
- * om decimaldel förekommer. Tar bort alla inledande och avslutande
blanksteg
- * samt ev inledande '+'-tecken Ex: +5555510.35->5 555 510,35
+5555510,35->5
- * 555 510,35 +10002000 ->10 002 000
- *
- * @param numStr <code>String</code> Strängen som ska formateras
- * @return En sträng som har formaterats enligt ovan.
- */
- private static String nummerAvskFormat(String numStr) {
-
- // XXX please use a StringBuilder here instead
-
- if (numStr == null || numStr.equals("")) {
- return "";
- }
- // Bort med alla inledande och avslutande blanksteg samt
- // ev inledande '+'-tecken
- numStr = numStr.trim();
- numStr = removeBlanks(numStr);
- numStr = numStr.indexOf("+") > 0 ? numStr.substring(1) : numStr;
- // Spara undan ev. decimaldelen och se till att den alltid består av
ett
- // komma-tecken om den förekommer.
- final String decPart = numStr.indexOf(',') > 0
- ? numStr.substring(numStr.indexOf(','))
- : numStr.indexOf('.') > 0 ?
numStr.substring(numStr.indexOf('.')).replaceFirst(".", ",") : "";
- // Substringa ut heltalsdelen
- final double d;
- try {
- d = Double.valueOf(numStr.substring(0, numStr.length() -
decPart.length()));
- } catch (NumberFormatException e) {
- LOG.error(e.getMessage(), e);
- return "";
- }
-
- return NUMMER_AVSK_FORMAT.format(d).concat(decPart);
- }
-
- /**
- * Tar bort blanktecken ur strängen
- */
- private static String removeBlanks(String str) {
- if (isEmpty(str)) {
- return str;
- }
- return StringUtils.deleteSpaces(str);
- }
-
- /**
- * Kontrollerar om strängargumentet är null eller tom sträng.
- */
- private static boolean isEmpty(String s) {
- return StringUtils.isEmpty(s);
- }
}
_______________________________________________
Kernel-commits mailing list
[email protected]
http://sesat.no/mailman/listinfo/kernel-commits