Android Open Source - magdaa-library Readings List






From Project

Back to project page magdaa-library.

License

The source code is released under:

GNU General Public License

If you think the Android project magdaa-library listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2012, 2013 The MaGDAA Project
 *//from   ww  w.  j a  v a 2s .c o m
 * This file is part of the MaGDAA Library Software
 *
 * MaGDAA Library Software is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 3 of the License, or
 * (at your option) any later version.
 *
 * This source code is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this source code; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
package org.magdaaproject.utils.readings;

import java.io.IOException;
import java.util.LinkedList;

import org.magdaaproject.utils.FileUtils;

/**
 * a list of sensor readings that automatically restricts the number
 * of items in the list to preset maximum
 */
public class ReadingsList extends LinkedList<SensorReading> {
  
  /*
   * public class level constants
   */
  
  /**
   * default item limit for a readings list
   */
  public static final int DEFAULT_LIMIT = 20;

  /*
   * private class level constants
   */
  private static final long serialVersionUID = 3667976620012107777L;
  
  /*
   * private class level variables
   */
  private int limit;
  
  /**
   *construct a new readings list with the default item limit
   */
  public ReadingsList() {
    super();
    this.limit = DEFAULT_LIMIT;
  }
  
  /**
   * construct a new readings list with the specified item limit
   * 
   * @param limit the number maximum items allowed in the list
   */
  public ReadingsList(int limit) {
    super();
    this.limit = limit;
  }
  
  /**
   * add an item to the ReadingsList and remove any old items
   */
  @Override
  public boolean add(SensorReading item) {
    
    // add the new item
    super.add(item);
    
    // remove any items over the limit
    while (super.size() > limit) { 
      super.remove(); 
    }
    
    return true;
  }
  
  /**
   * remove readings older than the minimum age
   * 
   * @param minAge the minimum age for readings to remain in the list
   */
  public void removeOld(long minAge) {
    
    SensorReading mReading;
    
    // loop through all of the objects
    for(int i = 0; i < this.size(); i++) {
      
      // get the next object in the list
      mReading = this.get(i);
      
      if(mReading.getTimestamp() < minAge) {
        this.remove(i);
        i--;
      }  
    }
  }
  
  /**
   * dump the data contained in this list to a file
   * 
   * @param directory the directory used to store the file
   * @return the full path of the file containing the data
   * @throws IOException if something bad happens
   */
  public String dumpData(String directory) throws IOException {
    
    // loop through all of the objects building the contents of the file
    StringBuilder mBuilder = new StringBuilder();
    SensorReading mReading;
    
    for(int i = 0; i < this.size(); i++) {
      mReading = this.get(i);
      
      mBuilder.append(mReading.toString() + "\n");
    }
    
    // save the output to a temporary file
    return FileUtils.writeTempFile(mBuilder.toString(), directory);
  }
}




Java Source Code List

org.apache.commons.io.Charsets.java
org.apache.commons.io.FileExistsException.java
org.apache.commons.io.FileUtils.java
org.apache.commons.io.FilenameUtils.java
org.apache.commons.io.IOCase.java
org.apache.commons.io.IOUtils.java
org.apache.commons.io.LineIterator.java
org.apache.commons.io.filefilter.AbstractFileFilter.java
org.apache.commons.io.filefilter.AgeFileFilter.java
org.apache.commons.io.filefilter.AndFileFilter.java
org.apache.commons.io.filefilter.ConditionalFileFilter.java
org.apache.commons.io.filefilter.DelegateFileFilter.java
org.apache.commons.io.filefilter.DirectoryFileFilter.java
org.apache.commons.io.filefilter.FalseFileFilter.java
org.apache.commons.io.filefilter.FileFileFilter.java
org.apache.commons.io.filefilter.FileFilterUtils.java
org.apache.commons.io.filefilter.IOFileFilter.java
org.apache.commons.io.filefilter.MagicNumberFileFilter.java
org.apache.commons.io.filefilter.NameFileFilter.java
org.apache.commons.io.filefilter.NotFileFilter.java
org.apache.commons.io.filefilter.OrFileFilter.java
org.apache.commons.io.filefilter.PrefixFileFilter.java
org.apache.commons.io.filefilter.SizeFileFilter.java
org.apache.commons.io.filefilter.SuffixFileFilter.java
org.apache.commons.io.filefilter.TrueFileFilter.java
org.apache.commons.io.input.ClosedInputStream.java
org.apache.commons.io.output.ByteArrayOutputStream.java
org.apache.commons.io.output.NullOutputStream.java
org.apache.commons.io.output.StringBuilderWriter.java
org.magdaaproject.utils.DeviceUtils.java
org.magdaaproject.utils.FileUtils.java
org.magdaaproject.utils.GeoCoordUtils.java
org.magdaaproject.utils.OpenDataKitUtils.java
org.magdaaproject.utils.SensorUtilsException.java
org.magdaaproject.utils.SensorUtils.java
org.magdaaproject.utils.TimeUtils.java
org.magdaaproject.utils.UnitConversionUtils.java
org.magdaaproject.utils.readings.ReadingsList.java
org.magdaaproject.utils.readings.SensorReading.java
org.magdaaproject.utils.readings.TempHumidityReading.java
org.magdaaproject.utils.readings.WeatherReading.java
org.magdaaproject.utils.serval.RhizomeUtils.java
org.magdaaproject.utils.serval.ServalStatusReceiver.java
org.magdaaproject.utils.serval.ServalUtils.java
org.magdaaproject.utils.xforms.XFormsException.java
org.magdaaproject.utils.xforms.XFormsUtils.java
org.zeroturnaround.zip.ByteSource.java
org.zeroturnaround.zip.FileSource.java
org.zeroturnaround.zip.FileUtil.java
org.zeroturnaround.zip.IdentityNameMapper.java
org.zeroturnaround.zip.NameMapper.java
org.zeroturnaround.zip.ZipBreakException.java
org.zeroturnaround.zip.ZipEntryCallback.java
org.zeroturnaround.zip.ZipEntrySource.java
org.zeroturnaround.zip.ZipException.java
org.zeroturnaround.zip.ZipInfoCallback.java
org.zeroturnaround.zip.ZipUtil.java
org.zeroturnaround.zip.transform.ByteArrayZipEntryTransformer.java
org.zeroturnaround.zip.transform.FileZipEntryTransformer.java
org.zeroturnaround.zip.transform.StreamZipEntryTransformer.java
org.zeroturnaround.zip.transform.StringZipEntryTransformer.java
org.zeroturnaround.zip.transform.ZipEntrySourceZipEntryTransformer.java
org.zeroturnaround.zip.transform.ZipEntryTransformerEntry.java
org.zeroturnaround.zip.transform.ZipEntryTransformer.java