Convert Object to JAXBElement

I want to implement a method that returns JAXBElement, the following code

@XmlRootElement(name = "history") @XmlAccessorType(XmlAccessType.FIELD) public class IBHistoryInfo { @XmlElement(name="trade") private List<IBTradeInfo> mTrade; public void updateTradeValue(int reqId, String date, double open, double high, double low, double close, int volume, int count, double WAP, boolean hasGaps){ IBTradeInfo info = new IBTradeInfo(); info.setReqId(reqId); info.setDate(date); info.setOpen(open); info.setHigh(high); info.setLow(low); info.setClose(close); info.setVolume(volume); info.setCount(count); info.setWap(WAP); info.setHasGaps(hasGaps); this.setTradeInfo(info); } public void setTradeInfo(IBTradeInfo tradeinfo){ mTrade.add(tradeinfo); } public List<IBTradeInfo> getTradeInfo(){ if (mTrade == null) { mTrade = new ArrayList<IBTradeInfo>(); } return this.mTrade; } } 

Now I do not know how to create a method that returns a JAXBElement in the above class

eg

  public JAXBElement<IBTradeInfo> getTradeXML(){ return mTrade } 
+4
source share
2 answers

The following is an example of how you can implement the getTradeXML () method:

 public JAXBElement<IBTradeInfo> getTradeXML(){ if(null == mTrade || mTrade.size() == 0) { return null; } IBTradeInfo tradeInfo = mTrade.get(0); QName qname = new QName("http://www.example.com", "trade-info"); return new JAXBElement(qname, IBTradeInfo.class, tradeInfo); } 
+5
source

I believe you can only return one item at a time. In this case, you may need to write something like:

 public JAXBElement<IBTradeInfo> getTradeXML(){ return new JAXBElement<IBTradeInfo>(mTrade.get(0), IBTradeInfo.class); } 

Just to guess.

-1
source

All Articles