You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by to...@apache.org on 2003/05/29 21:41:32 UTC

cvs commit: jakarta-commons-sandbox/math/src/test/org/apache/commons/math/beans Patient.java VitalStats.java

tobrien     2003/05/29 12:41:32

  Modified:    math     project.xml
               math/src/java/org/apache/commons/math
                        ListUnivariateImpl.java
  Added:       math/src/java/org/apache/commons/math
                        BeanListUnivariateImpl.java
               math/src/test/org/apache/commons/math
                        BeanListUnivariateImplTest.java
               math/src/test/org/apache/commons/math/beans Patient.java
                        VitalStats.java
  Log:
  Addition of a BeanListUnivariateImpl which can gather univariate statistics on a
  List of JavaBeans.  This implementation extends the ListUnivariateImpl, and uses the
  PropertyUtils classes from commons-beanutils.  With this implementation, the following
  is possible:
  
  List persons = new ArrayList();
  // populate array with 100 persons
  Univariate ageU = new BeanListUnivariateImpl( persons, "age" );
  Univariate incomeU = new BeanListUnivariateImpl( persons, "jobInfo.income" );
  System.out.println( "Mean age is: " + ageU.getMean() );
  System.out.println( "Mean income is: " + incomeU.getMean() );
  
  Better error handling is needed near our use of PropertyUtils.
  
  This patch introduces a dependency on commons-beanutils, which in turn depends
  on commons-collections and commons-logging.
  
  Revision  Changes    Path
  1.11      +17 -0     jakarta-commons-sandbox/math/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/math/project.xml,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- project.xml	26 May 2003 17:29:35 -0000	1.10
  +++ project.xml	29 May 2003 19:41:31 -0000	1.11
  @@ -34,6 +34,23 @@
       </developer>
     </developers>
   
  +  <dependencies>
  +
  +    <dependency>
  +      <id>commons-beanutils</id>
  +      <version>1.5</version>
  +    </dependency>
  +    <dependency>
  +      <id>commons-collections</id>
  +      <version>2.1</version>
  +    </dependency>
  +    <dependency>
  +      <id>commons-logging</id>
  +      <version>1.0.3</version>
  +    </dependency>
  +
  +  </dependencies>
  +
     <contributors>
      <contributor>
        <name>Phil Steitz</name>
  
  
  
  1.6       +24 -12    jakarta-commons-sandbox/math/src/java/org/apache/commons/math/ListUnivariateImpl.java
  
  Index: ListUnivariateImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/ListUnivariateImpl.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ListUnivariateImpl.java	26 May 2003 17:40:20 -0000	1.5
  +++ ListUnivariateImpl.java	29 May 2003 19:41:31 -0000	1.6
  @@ -78,8 +78,9 @@
        */
       public double[] getValues() {
   
  -        // If we've got a windowSize, we might not care about the entire list.
  -        List effectiveList = list;
  +        int startIndex = 0;
  +        int endIndex = list.size() - 1;
  +        
   
           // If the window size is not INFINITE_WINDOW AND
           // the current list is larger that the window size, we need to
  @@ -87,17 +88,14 @@
           // as definied by windowSize
           if (windowSize != Univariate.INFINITE_WINDOW &&
               windowSize < list.size()) {
  -            effectiveList = list.subList((list.size() - 1) - windowSize, 
  -                                          (list.size()-1));
  +            startIndex = (list.size() - 1) - windowSize;
           }
   
           // Create an array to hold all values
  -        double[] copiedArray = new double[effectiveList.size()];
  +        double[] copiedArray = new double[list.size() - startIndex];
   
  -        int i = 0;
  -        Iterator it = effectiveList.iterator();
  -        while(it.hasNext()) {
  -            Number n = (Number) it.next();
  +        for( int i = startIndex; i <= endIndex; i++ ) {
  +            Number n = (Number) getInternalIndex( i );
               copiedArray[i] = n.doubleValue();
               i++;
           }
  @@ -116,13 +114,12 @@
   
               int calcIndex = (list.size() - windowSize) + index;
   
  -            Number n = (Number) list.get(calcIndex);
  +            Number n = (Number) getInternalIndex(calcIndex);
               value = n.doubleValue();
           } else {
  -            Number n = (Number) list.get(index);
  +            Number n = (Number) getInternalIndex(index);
               value = n.doubleValue();
           }
  -        System.out.println( "Returning value: " + value );
           return value;
       }
   
  @@ -170,5 +167,20 @@
        */
       public void setWindowSize(int windowSize) {
           this.windowSize = windowSize;
  +    }
  +
  +    /**
  +     * This function exists to support the function of classes which 
  +     * extend the ListUnivariateImpl.
  +     *
  +     * @param index The location of the value in the internal List
  +     * @return A Number object representing the value at a given 
  +     *         index
  +     */
  +    protected Number getInternalIndex(int index) {
  +
  +        Number n = (Number) list.get( index );
  +        return n;
  +
       }
   }
  
  
  
  1.1                  jakarta-commons-sandbox/math/src/java/org/apache/commons/math/BeanListUnivariateImpl.java
  
  Index: BeanListUnivariateImpl.java
  ===================================================================
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Commons", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.commons.math;
  
  import java.util.Iterator;
  import java.util.List;
  
  import org.apache.commons.beanutils.PropertyUtils;
  
  /**
   * This implementation of StoreUnivariate uses commons-beanutils to gather
   * univariate statistics for a List of Java Beans by property.  This 
   * implementation uses beanutils' PropertyUtils to get a simple, nested,
   * indexed, mapped, or combined property from an element of a List.
   *
   * @author <a href="mailto:tobrien@apache.org">Tim O'Brien</a>
   */
  public class BeanListUnivariateImpl extends ListUnivariateImpl {
  
      private String propertyName;
  
      public BeanListUnivariateImpl(List list) {
          super( list );
      }
  
      public BeanListUnivariateImpl(List list, String propertyName) {
          super( list );
          setPropertyName( propertyName );
      }
  
      public String getPropertyName() {
          return propertyName;
      }
  
      public void setPropertyName(String propertyName) {
          System.out.println( "Set prop name; " + propertyName );
          this.propertyName = propertyName;
      }
  
  
      /* (non-Javadoc)
       * @see org.apache.commons.math.Univariate#addValue(double)
       */
      public void addValue(double v) {
          String msg = "The BeanListUnivariateImpl does not accept values " +
              "through the addValue method.  Because elements of this list " +
              "are JavaBeans, one must be sure to set the 'propertyName' " +
              "property and add new Beans to the underlying list via the " +
              "addBean(Object bean) method";
          throw new UnsupportedOperationException( msg );
      }
  
      /**
       * Adds a bean to this list. 
       *
       * @param bean Bean to add to the list
       */
      public void addObject(Object bean) {
          list.add(bean);
      }
  
      /**
       * Reads the property of an element in the list.
       *
       * @param index The location of the value in the internal List
       * @return A Number object representing the value at a given 
       *         index
       */
      protected Number getInternalIndex(int index) {
  
          try {
              Number n = (Number) PropertyUtils.getProperty( list.get( index ), 
                                                             propertyName );
  
              return n;
          } catch( Exception e ) {
              // TODO: We could use a better strategy for error handling
              // here.
  
              // This is a somewhat foolish design decision, but until
              // we figure out what needs to be done, let's return NaN
              return new Double(Double.NaN);
          }
  
  
      }
  
  }
  
  
  
  1.1                  jakarta-commons-sandbox/math/src/test/org/apache/commons/math/BeanListUnivariateImplTest.java
  
  Index: BeanListUnivariateImplTest.java
  ===================================================================
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Commons", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.commons.math;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import junit.framework.Test;
  import junit.framework.TestCase;
  import junit.framework.TestSuite;
  
  import org.apache.commons.math.beans.*;
  
  /**
   * Test cases for the {@link BeanListUnivariateImpl} class.
   *
   * @author <a href="mailto:tobrien@apache.org">Tim O'Brien</a>
   * @version $Revision: 1.1 $ $Date: 2003/05/29 19:41:31 $
   */
  
  public final class BeanListUnivariateImplTest extends TestCase {
      
      private List patientList = null;
      private double tolerance = Double.MIN_VALUE;
      
      public BeanListUnivariateImplTest(String name) {
          super(name);
      }
      
      public void setUp() {  
          patientList = new ArrayList();
  
          // Create and add patient bean 1
          VitalStats vs1 = new VitalStats( new Double(120.0), 
                                           new Double(96.4) );
          Patient p1 = new Patient( vs1, new Integer( 35 ) );
          patientList.add( p1 );
  
          // Create and add patient bean 2
          VitalStats vs2 = new VitalStats( new Double(70.0), 
                                           new Double(97.4) );
          Patient p2 = new Patient( vs2, new Integer( 23 ) );
          patientList.add( p2 );
  
          // Create and add patient bean 3
          VitalStats vs3 = new VitalStats( new Double(90.0), 
                                           new Double(98.6) );
          Patient p3 = new Patient( vs3, new Integer( 42 ) );
          patientList.add( p3 );
      }
      
      public static Test suite() {
          TestSuite suite = new TestSuite(BeanListUnivariateImplTest.class);
          suite.setName("Freq Tests");
          return suite;
      }
      
      /** test stats */
      public void testStats() {
      	
          StoreUnivariate u = new BeanListUnivariateImpl( patientList ); 
  
          assertEquals("total count",3,u.getN(),tolerance);
  
          u.clear();
          assertEquals("total count",0,u.getN(),tolerance);    
      }     
      
      public void testPropStats() {
  
          StoreUnivariate heartU = new BeanListUnivariateImpl( patientList,
                                            "vitalStats.heartRate" );
  
          
  
          assertEquals( "Mean heart rate unexpected", 93.333, 
                        heartU.getMean(), 0.001 );
          assertEquals( "Max heart rate unexpected", 120.0, 
                        heartU.getMax(), 0.001 );
  
          StoreUnivariate ageU = new BeanListUnivariateImpl( patientList,
                                                             "age" );
  
          assertEquals( "Mean age unexpected", 33.333,
                        ageU.getMean(), 0.001 );
          assertEquals( "Max age unexpected", 42.0,
                        ageU.getMax(), 0.001 );
  
      }
  
      /*    public void testN0andN1Conditions() throws Exception {
      	List list = new ArrayList();
      	
      	StoreUnivariate u = new ListUnivariateImpl( list );
      	    	
  		assertTrue("Mean of n = 0 set should be NaN", Double.isNaN( u.getMean() ) );
  		assertTrue("Standard Deviation of n = 0 set should be NaN", Double.isNaN( u.getStandardDeviation() ) );
  		assertTrue("Variance of n = 0 set should be NaN", Double.isNaN(u.getVariance() ) );
  
  		list.add( new Double(one));
  
  		assertTrue( "Mean of n = 1 set should be value of single item n1", u.getMean() == one);
  		assertTrue( "StdDev of n = 1 set should be zero, instead it is: " + u.getStandardDeviation(), u.getStandardDeviation() == 0);
  		assertTrue( "Variance of n = 1 set should be zero", u.getVariance() == 0);	
      }
      
      public void testSkewAndKurtosis() {
      	StoreUnivariate u = new StoreUnivariateImpl();
      	
      	double[] testArray = { 12.5, 12, 11.8, 14.2, 14.9, 14.5, 21, 8.2, 10.3, 11.3, 14.1,
    	  										 9.9, 12.2, 12, 12.1, 11, 19.8, 11, 10, 8.8, 9, 12.3 };
    	  	for( int i = 0; i < testArray.length; i++) {
    	  		u.addValue( testArray[i]);
    	  	}
    	  	
  		assertEquals("mean", 12.40455, u.getMean(), 0.0001);
  		assertEquals("variance", 10.00236, u.getVariance(), 0.0001);
  		assertEquals("skewness", 1.437424, u.getSkewness(), 0.0001);
    	  	assertEquals("kurtosis", 2.37719, u.getKurtosis(), 0.0001);
      }
  
      public void testProductAndGeometricMean() throws Exception {
      	ListUnivariateImpl u = new ListUnivariateImpl(new ArrayList());
          u.setWindowSize(10);
      	    	
          u.addValue( 1.0 );
          u.addValue( 2.0 );
          u.addValue( 3.0 );
          u.addValue( 4.0 );
  
          assertEquals( "Product not expected", 24.0, u.getProduct(), Double.MIN_VALUE );
          assertEquals( "Geometric mean not expected", 2.213364, u.getGeometricMean(), 0.00001 );
  
          // Now test rolling - UnivariateImpl should discount the contribution
          // of a discarded element
          for( int i = 0; i < 10; i++ ) {
              u.addValue( i + 2 );
          }
          // Values should be (2,3,4,5,6,7,8,9,10,11)
          
          assertEquals( "Product not expected", 39916800.0, u.getProduct(), 0.00001 );
          assertEquals( "Geometric mean not expected", 5.755931, u.getGeometricMean(), 0.00001 );
  
  
          } */
  
  }
  
  
  
  
  1.1                  jakarta-commons-sandbox/math/src/test/org/apache/commons/math/beans/Patient.java
  
  Index: Patient.java
  ===================================================================
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Commons", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.commons.math.beans;
  
  public class Patient {
  
      private VitalStats vitalStats;
      private Integer age;
  
      public Patient() {
      }
  
      public Patient(VitalStats vitalStats, Integer age) {
          setVitalStats( vitalStats );
          setAge( age );
      }
  
      public VitalStats getVitalStats() {
          return( vitalStats );
      }
  
      public void setVitalStats(VitalStats vitalStats) {
          this.vitalStats = vitalStats;
      }
  
      public Integer getAge() {
          return age;
      }
  
      public void setAge(Integer age) {
          this.age = age;
      }
  }
  
  
  
  1.1                  jakarta-commons-sandbox/math/src/test/org/apache/commons/math/beans/VitalStats.java
  
  Index: VitalStats.java
  ===================================================================
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Commons", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package org.apache.commons.math.beans;
  
  public class VitalStats {
  
      private Double heartrate;
      private Double temperature;
  
      public VitalStats() {
      }
  
      public VitalStats(Double heartrate, Double temperature) {
          setHeartRate( heartrate );
          setTemperature( temperature );
      }
  
      public Double getHeartRate() {
          return heartrate;
      }
  
      public void setHeartRate(Double heartrate) {
          this.heartrate = heartrate;
      }
  
      public Double getTemperature() {
          return temperature;
      }
  
      public void setTemperature(Double temperature) {
          this.temperature = temperature;
      }
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org