001    /*
002    @license.text@
003     */
004    package biz.hammurapi.metrics;
005    
006    import org.w3c.dom.Element;
007    
008    import biz.hammurapi.render.RenderingException;
009    import biz.hammurapi.xml.dom.DOMUtils;
010    import biz.hammurapi.xml.dom.DomSerializable;
011    
012    
013    /**
014     * @author Pavel Vlasov
015     * @revision $Revision$
016     */
017    public class MetricDomSerializer {
018    
019            public DomSerializable toDomSerializable(final Metric metric) {
020                    return new DomSerializable() {
021    
022                            public void toDom(Element holder) {
023                                    MetricDomSerializer.this.toDom(holder, metric);
024                            }
025                            
026                    };
027            }
028            
029            /**
030             * @param document
031             * @param holder
032             * @param m
033             * @throws RenderingException
034             */
035            private void toDom(Element holder, Metric m) {
036                    holder.setAttribute("name", m.getName());
037            holder.setAttribute("avg", String.valueOf(m.getAvg()));
038            holder.setAttribute("min", String.valueOf(m.getMin()));
039                    holder.setAttribute("max", String.valueOf(m.getMax()));
040                    
041            holder.setAttribute("total", String.valueOf(m.getTotal()));
042            holder.setAttribute("number", String.valueOf(m.getNumber()));
043                    holder.setAttribute("deviation", String.valueOf(m.getDeviation()));
044            
045                    DOMUtils.toDom(m.getMeasurements(), "measurements", holder);            
046            }
047    }