averagereader.java

来自「nesC写的heed算法」· Java 代码 · 共 86 行

JAVA
86
字号
// $Id: AverageReader.java,v 1.4.4.2 2003/08/18 22:09:44 cssharp Exp $/*									tab:4 * "Copyright (c) 2000-2003 The Regents of the University  of California.   * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice, the following * two paragraphs and the author appear in all copies of this software. *  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS." * * Copyright (c) 2002-2003 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE      * file. If you do not find these files, copies can be found by writing to * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA,  * 94704.  Attention:  Intel License Inquiry. */package net.tinyos.tinydb;import net.tinyos.util.ByteOps;/** * Implements reader for AVERAGE aggregate * * @author Eugene Shvets * @version 1.0, October 23, 2002 * * Changed 11.3.2002 to use objects for state.  SRM. */public class AverageReader implements AggregateResultsReader {    /**	 * Reads data from the byte array from QueryResultMessage	 */    public void read(byte[] data) {		myState = new AverageData();		myState.sum = ByteOps.makeInt(data[0], data[1]);		myState.count = ByteOps.makeInt(data[2], data[3]);    }		/**	 * Calculates final value of the aggregate.	 */	public void finalizeValue() {		if (myState.count != 0) myState.value = myState.sum / myState.count;	}		/**	 * Returns string representation of the finalized value	 */	public String getValue() {	    if (myState.count != 0) return Integer.toString(myState.value);	    else return "";	}		public void copyResultState(AggregateResultsReader reader) {		if (! (reader instanceof AverageReader)) throw new IllegalArgumentException("Wrong type reader");				AverageReader other = (AverageReader)reader;		other.myState.sum = myState.sum;		other.myState.count = myState.count;		other.myState.value = myState.value;	}		AverageData myState;}class AverageData  {    int sum = 0;    int count = 0;	int value = 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?