Recognize the new format for seller feedback percentages and paypal acceptance.
- ~
- jbidwatcher
- trunk
- src
- com
- jbidwatcher
- auction
- Seller.java
| Seller.java |
|---|
mrs 1 package com.jbidwatcher.auction; mrs 2 mrs 3 import com.jbidwatcher.util.db.*; mrs 4 import com.jbidwatcher.util.db.ActiveRecord; mrs 5 import com.jbidwatcher.util.xml.XMLElement; mrs 6 mrs 7 import java.text.NumberFormat; mrs 8 mrs 9 /** mrs 10 * User: Morgan mrs 11 * Date: Sep 29, 2007 mrs 12 * Time: 7:27:30 PM mrs 13 * To change this template use File | Settings | File Templates. mrs 14 */ mrs 15 public class Seller extends ActiveRecord mrs 16 { mrs 17 public String getSeller() { return getString("seller"); } mrs 18 private void setSeller(String name) { setString("seller", name); } mrs 19 mrs 20 private static NumberFormat decimalPercentage = null; mrs 21 public String getPositivePercentage() { mrs 22 if(decimalPercentage == null) { mrs 23 decimalPercentage = NumberFormat.getPercentInstance(); mrs 24 decimalPercentage.setMinimumFractionDigits(1); mrs 25 decimalPercentage.setMaximumFractionDigits(1); mrs 26 } mrs 27 String feedbackPercent = getString("feedback_percentage"); mrs 28 if(feedbackPercent != null) { mrs 29 Double x = Double.parseDouble(feedbackPercent); mrs 30 return decimalPercentage.format(x/100.0); mrs 31 } else { mrs 32 return "n/a"; mrs 33 } mrs 34 } mrs 35 public void setPositivePercentage(String positivePercentage) { mrs 36 setString("feedback_percentage", positivePercentage.replaceAll(",", ".").replaceFirst("%", "")); mrs 37 saveDB(); mrs 38 } mrs 39 public int getFeedback() { return getInteger("feedback", 0); } mrs 40 public void setFeedback(int feedback) { setInteger("feedback", feedback); saveDB(); } mrs 41 mrs 42 @SuppressWarnings({"RefusedBequest"}) mrs 43 public XMLElement toXML() { mrs 44 XMLElement xmlResult = new XMLElement("seller"); mrs 45 XMLElement xseller = new XMLElement("name"); mrs 46 XMLElement xfeedback = new XMLElement("feedback"); mrs 47 XMLElement xpercentage = new XMLElement("feedback_percent"); mrs 48 xseller.setContents(getSeller()); mrs 49 xmlResult.addChild(xseller); mrs 50 mrs 51 xfeedback.setContents(Integer.toString(getFeedback())); mrs 52 xmlResult.addChild(xfeedback); mrs 53 mrs 54 String fp = getString("feedback_percentage"); mrs 55 if(fp == null || fp.equals("100.00")) fp = "100"; mrs 56 int decimal = fp.lastIndexOf('.'); mrs 57 if(decimal != -1) { mrs 58 if(fp.substring(decimal+1).length() == 1) fp = fp + "0"; mrs 59 } mrs 60 xpercentage.setContents(fp); mrs 61 xmlResult.addChild(xpercentage); mrs 62 mrs 63 return xmlResult; mrs 64 } mrs 65 mrs 66 public static Seller newFromXML(XMLElement curElement) { mrs 67 String seller = curElement.getChild("name").getContents(); mrs 68 if(seller == null || seller.length() == 0) return null; mrs 69 mrs 70 try { mrs 71 Seller rval = new Seller(); mrs 72 rval.setSeller(seller); mrs 73 rval.setFeedback(Integer.parseInt(curElement.getChild("feedback").getContents())); mrs 74 rval.setPositivePercentage(curElement.getChild("feedback_percent").getContents()); mrs 75 mrs 76 rval.saveDB(); mrs 77 return rval; mrs 78 } catch(Exception e) { mrs 79 return null; mrs 80 } mrs 81 } mrs 82 mrs 83 public static Seller makeSeller(String sellerName) { mrs 84 if(sellerName == null) return null; mrs 85 mrs 86 Seller existing_seller = findFirstBy("seller", sellerName); mrs 87 if (existing_seller == null) { mrs 88 existing_seller = new Seller(); mrs 89 existing_seller.setSeller(sellerName); mrs 90 existing_seller.saveDB(); mrs 91 } mrs 92 mrs 93 return existing_seller; mrs 94 } mrs 95 mrs 96 public Seller makeSeller(String sellerName, Seller oldSeller) { mrs 97 Seller rval = makeSeller(sellerName); mrs 98 rval.setFeedback(oldSeller.getFeedback()); mrs 99 rval.setPositivePercentage(oldSeller.getString("feedback_percentage")); mrs 100 mrs 101 rval.saveDB(); mrs 102 return rval; mrs 103 } mrs 104 mrs 105 /*************************/ mrs 106 /* Database access stuff */ mrs 107 /*************************/ mrs 108 mrs 109 private static Table sDB = null; mrs 110 mrs 111 protected static String getTableName() { return "sellers"; } mrs 112 mrs 113 protected Table getDatabase() { mrs 114 if (sDB == null) { mrs 115 sDB = openDB(getTableName()); mrs 116 } mrs 117 return sDB; mrs 118 } mrs 119 mrs 120 public static Seller findFirstBy(String key, String value) { mrs 121 return (Seller) ActiveRecord.findFirstBy(Seller.class, key, value); mrs 122 } mrs 123 }
Check out the code: svn co jbidwatcher/trunk/src/com/jbidwatcher/auction/Seller.java
