Android Open Source - Jello Storable Collection






From Project

Back to project page Jello.

License

The source code is released under:

Apache License

If you think the Android project Jello 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

package com.atteo.jello;
/*w  w w .j a  va 2 s .  c o  m*/
import java.util.ArrayList;

import android.util.Log;

import com.atteo.jello.index.Index;
import com.atteo.jello.klass.KlassManager;
import com.google.inject.Inject;

public class StorableCollection<T extends Storable> {
  private String orderBy = null;
  private Expression where = null;
  private Class<T> klass;
  private ArrayList<T> arrayList = null;
  
  @Inject
  static private KlassManager klassManager;

  public StorableCollection(Class<T> klass) {
    this.klass = klass;
  }

  public StorableCollection<T> where(Expression expression) {
    arrayList = null;
    if (where == null)
      where = expression;
    else
      where = new Expression(where, Expression.OPERATOR_AND, expression);
    return this;
  }

  public StorableCollection<T> orderBy(String orderBy) {
    arrayList = null;
    this.orderBy = orderBy;
    return this;
  }

  public T getFirst() {
    ArrayList<T> list = toArrayList();
    if (list.size() == 0)
      return null;
    else
      return list.get(0);
  }

  public int getCount() {
    return toArrayList().size();
  }

  public <S extends Storable> StorableCollection<S> children(Class<S> klass,
      String field) {
    StorableCollection<S> result = new StorableCollection<S>(klass);
    result.where(new Expression(field, Expression.OPERATOR_IN, this));
    return result;
  }

  public void createArrayList() {
    arrayList = new ArrayList<T>();
    String klassName = klass.getCanonicalName();

    Index index = klassManager.getIndexFor(klassName);
    
    index.iterate();
    int nextId = index.nextId();
    
    while(nextId != -1){
      T storable = StorableFactory.createStorable(klass);
      storable.setId(nextId);
      storable.load();

      if (where == null)
        arrayList.add(storable);
      else {
        if (where.evaluate(storable))
          arrayList.add(storable);

      }
      nextId = index.nextId();
    }
  }
  
  public ArrayList<T> toArrayList() {
    if (arrayList == null)
      createArrayList();
    return arrayList;
  }
}




Java Source Code List

android.util.FinitePool.java
android.util.Pool.java
android.util.PoolableManager.java
android.util.Poolable.java
android.util.Pools.java
android.util.SynchronizedPool.java
com.atteo.jello.DatabaseFile.java
com.atteo.jello.Expression.java
com.atteo.jello.JelloModule.java
com.atteo.jello.Jello.java
com.atteo.jello.PageUsage.java
com.atteo.jello.RecordPoolableManager.java
com.atteo.jello.Record.java
com.atteo.jello.StorableCollection.java
com.atteo.jello.StorableFactory.java
com.atteo.jello.StorableInfo.java
com.atteo.jello.Storable.java
com.atteo.jello.associations.BelongsTo.java
com.atteo.jello.associations.DatabaseField.java
com.atteo.jello.associations.HasMany.java
com.atteo.jello.index.BTree.java
com.atteo.jello.index.IndexFactory.java
com.atteo.jello.index.IndexModule.java
com.atteo.jello.index.Index.java
com.atteo.jello.index.PagePoolProxy.java
com.atteo.jello.klass.KlassManager.java
com.atteo.jello.klass.SimpleKlassManager.java
com.atteo.jello.schema.SchemaManagerFactory.java
com.atteo.jello.schema.SchemaManager.java
com.atteo.jello.schema.SchemaModule.java
com.atteo.jello.schema.Schema.java
com.atteo.jello.schema.SimpleSchemaManager.java
com.atteo.jello.schema.StorableWriter.java
com.atteo.jello.schema.VanillaStorableWriter.java
com.atteo.jello.space.AppendOnlyCacheNative.java
com.atteo.jello.space.AppendOnlyCache.java
com.atteo.jello.space.AppendOnly.java
com.atteo.jello.space.Hybrid.java
com.atteo.jello.space.NextFitHistogramNative.java
com.atteo.jello.space.NextFitHistogram.java
com.atteo.jello.space.NextFit.java
com.atteo.jello.space.SpaceManagerNative.java
com.atteo.jello.space.SpaceManagerPolicy.java
com.atteo.jello.space.SpaceManager.java
com.atteo.jello.space.SpaceModule.java
com.atteo.jello.space.VanillaHistogram.java
com.atteo.jello.store.HeaderPage.java
com.atteo.jello.store.ListPage.java
com.atteo.jello.store.PagePoolableManager.java
com.atteo.jello.store.PageSizeProvider.java
com.atteo.jello.store.Page.java
com.atteo.jello.store.PagedFileNative.java
com.atteo.jello.store.PagedFileRAF.java
com.atteo.jello.store.PagedFile.java
com.atteo.jello.store.StoreModule.java
com.atteo.jello.transaction.LockManager.java
com.atteo.jello.transaction.SimpleLockManager.java
com.atteo.jello.transaction.SimpleTransactionManager.java
com.atteo.jello.transaction.TransactionManager.java
com.atteo.jello.transaction.TransactionModule.java