protected void setSellerName(String sellerName) { if (sellerName == null || sellerName.length() == 0) return; if (mSeller == null) { mSeller = Seller.makeSeller(sellerName.trim()); } else { mSeller = mSeller.makeSeller(sellerName, mSeller); } Integer seller_id = mSeller.getId(); if (seller_id == null || seller_id == 0) { String raw_id = mSeller.saveDB(); if (raw_id != null && raw_id.length() != 0) seller_id = Integer.parseInt(raw_id); } setInteger("seller_id", seller_id); }
public String saveDB() { // Look for columns of type: {foo}_id // For each of those, introspect for 'm{Foo}'. // For each non-null of those, call 'saveDB' on it. // Store the result of that call as '{foo}_id'. if (mSeller != null) { String seller_id = mSeller.saveDB(); if (seller_id != null) set("seller_id", seller_id); } return super.saveDB(); }
public String getPositiveFeedbackPercentage() { refreshSeller(); if (mSeller != null) return mSeller.getPositivePercentage(); return "n/a"; }
int getFeedbackScore() { refreshSeller(); if (mSeller != null) return mSeller.getFeedback(); return 0; }
private void refreshSeller() { if (mSeller == null) { String seller_id = get("seller_id"); if (seller_id != null) mSeller = Seller.findFirstBy("id", seller_id); } }
public String getSellerName() { refreshSeller(); return mSeller != null ? (mSeller.getSeller()) : "(unknown)"; }
public XMLElement toXML() { XMLElement xmlResult = new XMLElement("info"); addStringChild(xmlResult, "title"); if (!getSellerName().equals("(unknown)") && mSeller != null) { XMLElement xseller = mSeller.toXML(); xmlResult.addChild(xseller); } Date start = getStart(); if (start != null) { XMLElement xstart = new XMLElement("start"); xstart.setContents(Long.toString(start.getTime())); xmlResult.addChild(xstart); } Date end = getEnd(); if (end != null) { XMLElement xend = new XMLElement("end"); xend.setContents(Long.toString(end.getTime())); xmlResult.addChild(xend); } XMLElement xbidcount = new XMLElement("bidcount"); xbidcount.setContents(Integer.toString(getNumBids())); xmlResult.addChild(xbidcount); XMLElement xinsurance = addCurrencyChild(xmlResult, "insurance"); if (xinsurance != null) xinsurance.setProperty("optional", isInsuranceOptional() ? "true" : "false"); if (getCurBid() != null && !getCurBid().isNull()) { if (getCurBid().getCurrencyType() != Currency.US_DOLLAR) { addCurrencyChild(xmlResult, "usprice", Currency.US_DOLLAR); } } addCurrencyChild(xmlResult, "currently"); addCurrencyChild(xmlResult, "shipping"); addCurrencyChild(xmlResult, "buynow"); addCurrencyChild(xmlResult, "buy_now_us"); addCurrencyChild(xmlResult, "minimum"); XMLElement xdutch = addBooleanChild(xmlResult, "dutch"); if (xdutch != null) xdutch.setProperty("quantity", Integer.toString(getQuantity())); XMLElement xreserve = addBooleanChild(xmlResult, "reserve"); if (xreserve != null) xreserve.setProperty("met", isReserveMet() ? "true" : "false"); addBooleanChild(xmlResult, "paypal"); XMLElement xfixed = addBooleanChild(xmlResult, "fixed"); if (xfixed != null && getQuantity() != 1) xfixed.setProperty("quantity", Integer.toString(getQuantity())); addBooleanChild(xmlResult, "private"); addStringChild(xmlResult, "location"); addStringChild(xmlResult, "highbidder"); return xmlResult; }
public void fromXML(XMLElement inXML) { super.fromXML(inXML); if (mSeller != null) mSeller.saveDB(); }
protected void handleTag(int i, XMLElement curElement) { switch (i) { case 0: // Title setString(infoTags[i], curElement.decodeString(curElement.getContents())); break; case 1: // Seller name if (curElement.getChild("name") == null) { setSellerName(curElement.getContents()); } else { mSeller = Seller.newFromXML(curElement); } break; case 2: // High bidder name case 18: // Location of item setString(infoTags[i], curElement.getContents()); break; case 3: // Bid count setInteger(infoTags[i], Integer.parseInt(curElement.getContents())); break; case 4: // Start date case 5: // End date setDate(infoTags[i], new Date(Long.parseLong(curElement.getContents()))); break; case 6: // Current price case 11: // Shipping cost case 12: // Insurance cost case 13: // Buy Now price case 22: // Buy Now US price case 14: // Current US price case 16: // Minimum price/bid Currency amount = Currency.getCurrency( curElement.getProperty("CURRENCY"), curElement.getProperty("PRICE")); setMonetary(infoTags[i], amount); switch (i) { case 13: setDefaultCurrency(amount); break; case 6: if (amount.getCurrencyType() == Currency.US_DOLLAR) { setMonetary("us_cur", amount); setString("currency", amount.fullCurrencyName()); } setDefaultCurrency(amount); break; case 12: String optional = curElement.getProperty("OPTIONAL"); setBoolean("insurance_optional", optional == null || (optional.equals("true"))); break; } break; case 7: // Is a dutch auction? case 8: // Is a reserve auction? case 9: // Is a private auction? case 15: // Fixed price case 17: // PayPal accepted setBoolean(infoTags[i], true); if (i == 7 || i == 15) { String quant = curElement.getProperty("QUANTITY"); if (quant == null) { setInteger("quantity", 1); } else { setInteger("quantity", Integer.parseInt(quant)); } } else if (i == 8) { setBoolean("reserve_met", "true".equals(curElement.getProperty("MET"))); } break; case 19: // Feedback score String feedback = curElement.getContents(); if (mSeller == null) mSeller = new Seller(); if (feedback != null) mSeller.setFeedback(Integer.parseInt(feedback)); break; case 20: // Positive feedback percentage (w/o the % sign) String percentage = curElement.getContents(); if (mSeller == null) mSeller = new Seller(); mSeller.setPositivePercentage(percentage); break; case 21: // Seller info block mSeller = Seller.newFromXML(curElement); break; default: break; // commented out for FORWARDS compatibility. // throw new RuntimeException("Unexpected value when handling AuctionInfo tags!"); } }