| Home | Sobre | Contatos |

 

 

java para dispositivos móveis
desenvolvendo aplicações com j2me

| Home | Livro J2ME | Exemplos do livro | Contatos |

Login Form





Esqueceu sua senha?
Sem conta? Crie uma

Syndicate

Capítulo 15 - RmsVenda.java PDF Imprimir E-mail

By Thienne M Johnson, on 09-12-2007 15:40


/*
Java para Dispositivos Móveis - Desenvolvendo aplicações com J2ME
por Thienne M. Johnson
Novatec Editora LTDa
ISBN: 978-85-7522-143-3
*/

package rms;

import javax.microedition.rms.RecordComparator;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.util.*;
import principal.Clientes;
import principal.Produtos;
import principal.Pedidos;

public class RmsVenda{
    private Vector vecNomes;
    
    public RmsVenda() {
        vecNomes = new Vector();
    }

    public RecordStore abrirRecordStore(String nome){  
        try{        
            return RecordStore.openRecordStore(nome, true);
        }catch (Exception e){
            return null;
        }  
    }  
             
    public void closeRecordStore(RecordStore rs){  
          try{  
                  rs.closeRecordStore();
             }catch (Exception e){}
    }  
            
    public void adicionarRegistroClientes(RecordStore rs, String nome){
        try{
            ByteArrayOutputStream BAOS = new ByteArrayOutputStream();
            DataOutputStream DOS = new DataOutputStream(BAOS);
            DOS.writeUTF(nome);
            byte [] bRec = BAOS.toByteArray();
                   rs.addRecord(bRec,0,bRec.length);
                   DOS.close();
            BAOS.close();
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
    
    public void adicionarRegistroProdutos(RecordStore rs, String nome, float preco){
          try{
              ByteArrayOutputStream BAOS = new ByteArrayOutputStream();
              DataOutputStream DOS = new DataOutputStream(BAOS);
              DOS.writeUTF(nome);
              DOS.writeFloat(preco);
              byte [] bRec = BAOS.toByteArray();
                     rs.addRecord(bRec,0,bRec.length);
                     DOS.close();
                       BAOS.close();
          }
          catch (Exception exc) {
          }
    }
    
    public void adicionarRegistroPedido(RecordStore rs, String cliente, String produto, int qtd){
          try{
                ByteArrayOutputStream BAOS = new ByteArrayOutputStream();
              DataOutputStream DOS = new DataOutputStream(BAOS);
              DOS.writeUTF(cliente);
              DOS.writeUTF(produto);
              DOS.writeInt(qtd);
              byte [] bRec = BAOS.toByteArray();
                     rs.addRecord(bRec,0,bRec.length);
                  DOS.close();
                  BAOS.close();
         }
         catch (Exception exc) {
         }
    }

    public Vector listarRegistros(RecordStore rs){
        RecordEnumeration rEnum = null;
        vecNomes.removeAllElements();
        ComparadorNome c = new ComparadorNome();
        try{
            rEnum = rs.enumerateRecords(null,c,false);
            if (rEnum.numRecords()== 0) {
                if (rs.getName()=="BancoClientes"){
                    Clientes item = new Clientes("Clientes não cadastrados",0);                    
                    vecNomes.addElement(item);
                }else if (rs.getName()=="BancoPedidos"){
                    Pedidos item = new Pedidos("Pedidos  não cadastrados", "", 0, 0);
                     vecNomes.addElement(item);
                }else if (rs.getName()=="BancoProdutos"){
                    Produtos item = new Produtos("Produtos não cadastrados", 0, 0);                    
                    vecNomes.addElement(item);
                }
            }
            else {
                while(rEnum.hasNextElement()){
                    int id = rEnum.nextRecordId();
                    byte[] dados = rs.getRecord(id);
                    ByteArrayInputStream BAIS = new ByteArrayInputStream(dados);
                    DataInputStream DIS = new DataInputStream(BAIS);
                    if (rs.getName()=="BancoClientes"){
                        String nomeLido = DIS.readUTF();
                        Clientes item = new Clientes(nomeLido, id);                    
                        vecNomes.addElement(item);
                    }else
                        if (rs.getName()=="BancoProdutos"){
                            String nomeLido = DIS.readUTF();
                            float preco = DIS.readFloat();
                            Produtos item = new Produtos(nomeLido, preco, id);                    
                            vecNomes.addElement(item);
                        }
                        else{
                            String clienteLido = DIS.readUTF();
                            String produtoLido = DIS.readUTF();
                            int quantidadeLido = DIS.readInt();
                            Pedidos item = new Pedidos(clienteLido, produtoLido,  quantidadeLido, id);                    
                            vecNomes.addElement(item);
                        }
                    }
                }
            }
        catch (Exception exc) {
            }
        finally {
                rEnum.destroy();
            }
        return (vecNomes);
    }

    public void apagarRegistros(RecordStore rs, Vector vecNomes, boolean[] flags){
        for (int i=0; i<flags.length; i++){
            if (flags[i]==true){
                try{
                    if (rs.getName()=="BancoPedidos"){
                        Pedidos item = (Pedidos)vecNomes.elementAt(i);
                        rs.deleteRecord(item.getRecordId());
                    }else if (rs.getName()=="BancoClientes"){
                        Clientes item = (Clientes)vecNomes.elementAt(i);
                        rs.deleteRecord(item.getRecordId());
                    }else{
                        Produtos item = (Produtos)vecNomes.elementAt(i);
                        rs.deleteRecord(item.getRecordId());
                    }
                }
                catch (Exception e){System.out.println(e);}
            }
        }
    }
    
    public void zerarRegistros(RecordStore rs, String nomeRS){
        try {
              rs.closeRecordStore();
              RecordStore.deleteRecordStore(nomeRS);
              }
        catch (Exception e){
              System.out.println(e);
              }  
      }
}

class ComparadorNome implements RecordComparator {
    public int compare(byte [] reg1, byte [] reg2) {
        try{
            ByteArrayInputStream BAIS = new ByteArrayInputStream(reg1);
            DataInputStream DIS = new DataInputStream(BAIS);
            String nome1 = DIS.readUTF();
            DIS.close();
            BAIS.close();
            ByteArrayInputStream BAIS2 = new ByteArrayInputStream(reg2);
            DataInputStream DIS2 = new DataInputStream(BAIS2);
            String nome2 = DIS2.readUTF();
            DIS2.close();
            BAIS2.close();
            if (nome1.compareTo(nome2) < 0 ){
                return PRECEDES;
            }if (nome1.compareTo(nome2) > 0 ){
                return FOLLOWS;
            }
        }
        catch (Exception e) {
               System.out.println(e);
        }
        return EQUIVALENT;
    }

}

   

Users' Comments  
 

Average user rating

   (0 voto)

 


Adicionar comentário
Apenas utilizadores registados podem comentar um artigo.

Nenhum comentário



mXcomment 1.0.5 © 2007-2010 - visualclinic.fr
License Creative Commons - Some rights reserved
 
< Anterior   Próximo >

Advertisement
2008- Todos os direitos reservados - Profa. Thienne Johnson
Desenvolvido por datamazon