Android Open Source - jpdroid Jpdroid Matrix Cursor Converter






From Project

Back to project page jpdroid.

License

The source code is released under:

GNU General Public License

If you think the Android project jpdroid 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 br.com.rafael.jpdroid.converters;
/*from   w w w  . ja  v  a  2 s .c o m*/
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

import android.database.MatrixCursor;
import br.com.rafael.jpdroid.annotations.Column;
import br.com.rafael.jpdroid.annotations.Ignorable;
import static br.com.rafael.jpdroid.core.JpdroidObjectMap.*;

/**
 * Classe respons?vel pela convers?o objetos para um MatrixCursor.
 * 
 * @author Rafael Centenaro
 */
public class JpdroidMatrixCursorConverter {

  public static MatrixCursor toMatrixCursor(Object entity) {
    return toMatrixCursor(entity, true);
  }

  /**
   * Retorna um MatrixCursor gerado com base na entidade passada por par?metro.
   * 
   * @param entity
   * @return MatrixCursor <BR>
   *         Ex:SimpleCursorAdapter dataAdapter = new SimpleCursorAdapter(this, R.layout.activity_simple_list,
   *         matrixCursor, columns, to, 0);
   */
  @SuppressWarnings("unchecked")
  public static MatrixCursor toMatrixCursor(Object entity, boolean onlyColumn) {
    MatrixCursor matrixCursor = null;
    try {
      String[] columns;

      List<Object> row = new ArrayList<Object>();

      if (entity instanceof List) {
        if (onlyColumn) {
          columns = getColumns(((List<?>) entity).get(0).getClass());
        } else {
          columns = getColumns(((List<?>) entity).get(0).getClass(),Column.class,Ignorable.class);
        }
        matrixCursor = new MatrixCursor(columns);

        for (Object item : ((List<?>) entity)) {
          row = new ArrayList<Object>();
          Field[] fields = null;
          if (onlyColumn) {
            fields = getFieldsByAnnotation(item, Column.class);
          } else {
            fields = getFieldsByAnnotation(item, Column.class, Ignorable.class);
          }
          for (Field field : fields) {
            field.setAccessible(true);
            row.add(field.get(item));

          }
          matrixCursor.addRow(row);
        }
      } else {
        columns = getColumns(entity.getClass());
        matrixCursor = new MatrixCursor(columns);

        Field[] fields = null;
        if (onlyColumn) {
          fields = getFieldsByAnnotation(entity, Column.class);
        } else {
          fields = getFieldsByAnnotation(entity, Column.class, Ignorable.class);
        }
        for (Field field : fields) {
          field.setAccessible(true);
          row.add(field.get(entity));

        }
        matrixCursor.addRow(row);
      }

    } catch (Exception e) {

      e.printStackTrace();
    }
    return matrixCursor;
  }
}




Java Source Code List

br.com.rafael.jpdroid.annotations.Column.java
br.com.rafael.jpdroid.annotations.DefaultOrder.java
br.com.rafael.jpdroid.annotations.DtoField.java
br.com.rafael.jpdroid.annotations.Dto.java
br.com.rafael.jpdroid.annotations.Entity.java
br.com.rafael.jpdroid.annotations.ForeignKey.java
br.com.rafael.jpdroid.annotations.Ignorable.java
br.com.rafael.jpdroid.annotations.PrimaryKey.java
br.com.rafael.jpdroid.annotations.RelationClass.java
br.com.rafael.jpdroid.annotations.ViewColumn.java
br.com.rafael.jpdroid.converters.JpdroidCsvConverter.java
br.com.rafael.jpdroid.converters.JpdroidDateUtil.java
br.com.rafael.jpdroid.converters.JpdroidDtoConverter.java
br.com.rafael.jpdroid.converters.JpdroidJsonConverter.java
br.com.rafael.jpdroid.converters.JpdroidMatrixCursorConverter.java
br.com.rafael.jpdroid.converters.JpdroidXmlConverter.java
br.com.rafael.jpdroid.core.JpdroidAbout.java
br.com.rafael.jpdroid.core.JpdroidDbHelper.java
br.com.rafael.jpdroid.core.JpdroidEntityValidation.java
br.com.rafael.jpdroid.core.JpdroidObjectMap.java
br.com.rafael.jpdroid.core.JpdroidTransaction.java
br.com.rafael.jpdroid.core.JpdroidWriteFile.java
br.com.rafael.jpdroid.core.Jpdroid.java
br.com.rafael.jpdroid.enums.Order.java
br.com.rafael.jpdroid.enums.RelationType.java
br.com.rafael.jpdroid.enums.ScriptPath.java
br.com.rafael.jpdroid.exceptions.JpdroidException.java
br.com.rafael.jpdroid.interfaces.ITransaction.java
br.com.rafael.jpdroid.util.JpdroidConverter.java
br.com.rafael.jpdroid.util.JpdroidCsvFile.java
br.com.rafael.jpdroid.util.JpdroidJsonFile.java
br.com.rafael.jpdroid.util.JpdroidXmlFile.java
br.com.rafael.pedidojpdroid.ContatoActivity.java
br.com.rafael.pedidojpdroid.EnderecoActivity.java
br.com.rafael.pedidojpdroid.ExportacoesActivity.java
br.com.rafael.pedidojpdroid.ImportacoesActivity.java
br.com.rafael.pedidojpdroid.ItensPedidoActivity.java
br.com.rafael.pedidojpdroid.ListaCidadesActivity.java
br.com.rafael.pedidojpdroid.ListaContatoActivity.java
br.com.rafael.pedidojpdroid.ListaEnderecoActivity.java
br.com.rafael.pedidojpdroid.ListaItensPedidoActivity.java
br.com.rafael.pedidojpdroid.ListaPedidoActivity.java
br.com.rafael.pedidojpdroid.ListaPessoaActivity.java
br.com.rafael.pedidojpdroid.ListaProdutoActivity.java
br.com.rafael.pedidojpdroid.ListagemPedidoActivity.java
br.com.rafael.pedidojpdroid.ListagemPessoaActivity.java
br.com.rafael.pedidojpdroid.ListagemProdutoActivity.java
br.com.rafael.pedidojpdroid.PedidoActivity.java
br.com.rafael.pedidojpdroid.PesquisaDialogActivity.java
br.com.rafael.pedidojpdroid.PessoaActivity.java
br.com.rafael.pedidojpdroid.PrincipalActivity.java
br.com.rafael.pedidojpdroid.ProdutoActivity.java
br.com.rafael.pedidojpdroid.SobreActivity.java
br.com.rafael.pedidojpdroid.dto.ContatoDTO.java
br.com.rafael.pedidojpdroid.dto.PessoaDTO.java
br.com.rafael.pedidojpdroid.entity.Cidade.java
br.com.rafael.pedidojpdroid.entity.Contato.java
br.com.rafael.pedidojpdroid.entity.Endereco.java
br.com.rafael.pedidojpdroid.entity.Estado.java
br.com.rafael.pedidojpdroid.entity.ItensPedido.java
br.com.rafael.pedidojpdroid.entity.Pedido.java
br.com.rafael.pedidojpdroid.entity.Pessoa.java
br.com.rafael.pedidojpdroid.entity.Produto.java
com.rafael.androidcomjpdroid.ContatoActivity.java
com.rafael.androidcomjpdroid.MainActivity.java
com.rafael.androidcomjpdroid.PessoaActivity.java
com.rafael.androidcomjpdroid.entity.Contato.java
com.rafael.androidcomjpdroid.entity.Pessoa.java
com.rafael.androidcomjpdroid.entity.TipoContato.java