Package jpa4azure.impl

Source Code of jpa4azure.impl.KeyQuery

package jpa4azure.impl;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.TypedQuery;

import jpa4azure.type.Key;
import jpa4azure.type.TypeWrapper;
import jpa4azure.type.TypeWrapperFactory;

import com.windowsazure.samples.table.AzureTableEntity;
import com.windowsazure.samples.table.AzureTableEntityCollection;
import com.windowsazure.samples.table.AzureTableManager;
import com.windowsazure.samples.table.Filter;
import com.windowsazure.samples.table.IllegalFilterOperandType;

public class KeyQuery<T> extends CriteriaQueryAdaptor<T> {

  Key key;
  Class<T> c;
  AzureTableManager client;
  int limit = 1000;
 
  public KeyQuery(Class<T> c, Key key) {
    this.key = key;
    this.c = c;
  }

  @Override
  public TypedQuery<T> getTypedQuery(final AzureEntityManager aem) {
    final TypeWrapper type = TypeWrapperFactory.wrap(c);
    this.client = aem.getTableStorageClient();
    return new TypedQueryAdaptor<T>() {
      public List<T> getResultList() {
        List<T> list = new ArrayList<T>();
        AzureTableEntityCollection results = client.queryEntities(type.getTableName(), query(), limit);
        for (AzureTableEntity e : results)
          list.add((T)aem.convert(e));
       
        return list;
      }
     
    };
   
 
  }

  public KeyQuery<T> take(int i) {
    this.limit = i;
    return this;
  }
 
  private Filter query() {
    try {
      return Filter.Equal("PartitionKey", key.getPartition());
    } catch (IllegalFilterOperandType e) {
      e.printStackTrace();
    }
    return null;
  }
 
 

}
TOP

Related Classes of jpa4azure.impl.KeyQuery

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.