Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
71cbbc1
Projeto de IP sem GUI
Dec 16, 2014
518978d
Mais uma aplicacao exemplo
Dec 16, 2014
f56ddb2
Adiciona informações de configuração do ambiente Java no Linux
Dec 16, 2014
66da3ea
Ajeitando
fulano7 Dec 16, 2014
6b21349
Deletando antiga
fulano7 Dec 16, 2014
7466a6d
Merge remote-tracking branch 'origin'
fulano7 Dec 16, 2014
2b7bdd5
Adicionando JAR do Projeto de IP
fulano7 Dec 16, 2014
bb16309
Adicionando JAR do projeto de GDI
fulano7 Dec 16, 2014
9bb9790
nova aplicacao
ebl4 Dec 16, 2014
913f27c
Comecando testes do proj de IP
fulano7 Dec 17, 2014
fd5c8bd
Merge branch 'master' of https://github.com/fulano7/ProjetoCompiladores
ebl4 Dec 17, 2014
95e3fc1
Correcoes diversas e modificacao da propriedade
fulano7 Dec 17, 2014
88afcf9
Mudanca menor
fulano7 Dec 17, 2014
3eb73d5
Adicionando JAR do projeto PG_projeto_2
ebl4 Dec 17, 2014
8b198f8
Merge branch 'master' of https://github.com/fulano7/ProjetoCompiladores
ebl4 Dec 17, 2014
f62526f
Melhora um pouco o arquivo de READ-ME
Dec 17, 2014
b1e9399
Pequeno engano
Dec 17, 2014
da5e225
Deixa o READ-ME mais fácil para leitura
Dec 17, 2014
7bb539d
Padroniza o arquivo READ-ME
Dec 17, 2014
2079219
Alguns elementos precisam de destaque no READ-ME
Dec 17, 2014
298fc23
Melhora o READ-ME
Dec 17, 2014
2687cae
Colocando diferentes formas do proj de IP
Dec 17, 2014
e929af0
Corrigindo para encontrar subpackages
fulano7 Dec 17, 2014
e5a86f9
Adicionado novo teste para o projeto de IP
fulano7 Dec 17, 2014
15b79a4
Teste mais sofisticado para o projeto de IP
fulano7 Dec 17, 2014
88e5a20
testes com aplicacao projeto_pg
ebl4 Dec 17, 2014
288eacb
Merge branch 'master' of https://github.com/fulano7/ProjetoCompiladores
ebl4 Dec 17, 2014
29bfbb0
Atualizando JAR do projeto de IP de package unico
fulano7 Dec 18, 2014
a9e3359
atualizando JAR do proj de IP
fulano7 Dec 18, 2014
29c2730
Merge remote-tracking branch 'origin'
fulano7 Dec 18, 2014
a9b0dec
Melhora um pouco o READ-ME
Dec 19, 2014
f1e1f24
Adicionando linha ao teste do projeto de PG
fulano7 Dec 19, 2014
f5c4996
Merge remote-tracking branch 'origin'
fulano7 Dec 19, 2014
207a3ce
MElhora testes do projeto de IP e cria arquivos pro proj de GDI
fulano7 Dec 19, 2014
1c2075c
Torna os testes mais rápidos de serem produzidos
Dec 19, 2014
8852522
Corrigindo JAr do proj IP
fulano7 Dec 19, 2014
e63e2a5
Corrige a ramelação que tinha sido cometida na captura de informações da
Dec 19, 2014
aaaea8d
Merge remote-tracking branch 'origin'
fulano7 Dec 19, 2014
eacd03a
Merge remote-tracking branch 'origin'
fulano7 Dec 19, 2014
f28b43e
Adicionando classes à suíte de testes
fulano7 Dec 19, 2014
925c6e8
Corrigindo conflito
fulano7 Dec 19, 2014
12f6eed
Mais testes
Dec 19, 2014
3ce507d
Merge remote-tracking branch 'origin/test_projeto_ip_empacotado'
fulano7 Dec 19, 2014
9747e25
Mais testes
fulano7 Dec 19, 2014
3160464
Adicionando testes para proj de GDI e para proj de IP
fulano7 Dec 19, 2014
15adf90
Adicionando testes do proj de GDI e atualizando jar
fulano7 Dec 19, 2014
10ebad7
Pequenina modificacaozinha
fulano7 Dec 19, 2014
50f61af
Pequenas modificações nos testes do projeto de IP "empacotado"
Dec 19, 2014
fd32aef
RWSets malandrinho
Dec 19, 2014
af31db6
Arrumando
fulano7 Dec 19, 2014
0898706
Merge branch 'master' into temp
fulano7 Dec 19, 2014
0e2a71a
3o teste de GDI
fulano7 Dec 19, 2014
fe6a83b
detalhe
fulano7 Dec 19, 2014
52bf17b
Organizando teste do proj de PG
fulano7 Dec 19, 2014
35c1d9e
Arrumando de novo
fulano7 Dec 19, 2014
498955b
Testes de GDI funcionando
fulano7 Dec 19, 2014
6c8daad
Mais testes de PG
fulano7 Dec 19, 2014
1f69f5f
Atualizando JAR do proj de PG
fulano7 Dec 19, 2014
f12e957
Marotagens em cima da hora
fulano7 Dec 19, 2014
1b9e956
Restoring dat/wala.properties and src/depend/Main.java
fulano7 Dec 21, 2014
a20d6b1
Adding bug reports
fulano7 Dec 21, 2014
f69694e
Improving comments and removing expected exceptions
fulano7 Dec 22, 2014
075ce93
Updating
fulano7 Dec 25, 2014
899ad4b
Updating bugs
fulano7 Dec 25, 2014
238826d
Added Gitter badge
gitter-badger Jan 7, 2015
3cf728e
Merge pull request #4 from gitter-badger/gitter-badge-1
Jan 7, 2015
41ca263
Merge remote-tracking branch 'professor/master' into HEAD
Feb 19, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
Read-Write Sets Implementation
==============================

[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/fulano7/ProjetoCompiladores?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

Directories
-----------

```bin``` - build files (e.g., class files). <br/>
```code``` - instrumentation - ignore. <br/>
```dat``` - resources (e.g., .xml and .txt configuration files). <br/>
```docs``` - some documentation. <br/>
```example-apps``` - sample applications to demo this project. <br/>
```libs``` - java libraries (.jar files). <br/>
```results``` - temporary directory to store execution-generated files. <br/>
```scripts``` - script to use the system. <br/>
```src``` - source of the read-writes set implementation. <br/>
```src-tests``` - source of test cases.

Files modified in this fork
---------------------------

* Added several files under directories ```src-tests/rwsets``` and ```example-apps```. <br/>
* Added file ```rwset_bugs```.
* ```src-tests/rwsets/Helper.java``` - Modified <br/>
* ```src-tests/rwsets/AllTests.java``` - Modified <br/>
* ```README.txt``` - changed to ```README.md``` and added some stuff. <br/>

Apps used in the tests
----------------------

* ```Projeto IP``` - small app that models a delivery management system, featuring very simple classes, interfaces and subpackages. <br/>
* ```Restaurante``` - same as ```Projeto IP```, with all the code in a single package. <br/>
* ```Projeto PG``` - complex app that models graphic processing of surfaces. <br/>
* ```Projeto GDI``` - simple app that connects to an Oracle database and inserts one row into one table.

Configuration
-------------

Please follow configuration instructions in the following files for
your setup.

Please choose either ```Mac OS```, ```Unix``` or ```Windows```, if you want our support. Detailed
setup information can be found at ```docs/CONFIG_MAC```, ```docs/CONFIG_UNIX``` and ```docs/CONFIG_WINDOWS```.

Please use ```JDK 1.7```. We apologize for this inconvenience, we should
address this limitation in the future.

Documentation
-------------

```docs/RWSETS.txt``` - summarized explanation of the read-write sets algorithm. <br/>
```docs/TRY.txt``` - info on how to use the system from the command line.

Known issues
------------

- Unpredictable results for ```JDK``` different than ```1.7```.
- The directory where ```Java Runtime``` libraries are located is hardcoded in ```wala.properties```.
- Doesn't provide support for ```implements``` clause.
- Command-line script only handles ```Unix``` and ```Mac OS``` installations. Run scripts on Windows requires [Cygwin](https://www.cygwin.com) installed.
- ./scripts/runRegressionTests breaks (mab@cin.ufpe.br is working on this).
- 2 tests are ignored (mab@cin.ufpe.br is working on this).

Questions
---------

if688-l@cin.ufpe.br
52 changes: 0 additions & 52 deletions README.txt

This file was deleted.

Binary file added example-apps/PG_Projeto_2.jar
Binary file not shown.
Binary file added example-apps/projetoGDI.jar
Binary file not shown.
Binary file added example-apps/projetoip.jar
Binary file not shown.
Binary file added example-apps/projetoipempacotado.jar
Binary file not shown.
19 changes: 19 additions & 0 deletions example-apps/src/IP/br/ufpe/cin/dados/IRepositorio.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package br.ufpe.cin.dados;

import java.util.Iterator;

import br.ufpe.cin.exception.ClienteJaCadastradoException;
import br.ufpe.cin.exception.ClienteNaoCadastradoException;
import br.ufpe.cin.exception.PedidoNaoExistenteException;
import br.ufpe.cin.exception.ProdutoJaCadastradoException;
import br.ufpe.cin.exception.ProdutoNaoCadastradoException;

public interface IRepositorio<T> {
void inserir(T valor) throws ClienteJaCadastradoException,
ProdutoJaCadastradoException;

void remover(T valor) throws ClienteNaoCadastradoException,
PedidoNaoExistenteException, ProdutoNaoCadastradoException;

Iterator<T> procurar(T valor);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package br.ufpe.cin.dados;

import java.util.Iterator;

import br.ufpe.cin.exception.ClienteJaCadastradoException;
import br.ufpe.cin.exception.ClienteNaoCadastradoException;
import br.ufpe.cin.restaurante.Cliente;

public class RepositorioClientesArray implements IRepositorio<Cliente> {
private Cliente[] clientes;
private int indice;

public RepositorioClientesArray(int tamanhoArray) {
this.clientes = new Cliente[tamanhoArray];
this.indice = 0;
}

public void inserir(Cliente cliente)
throws ClienteJaCadastradoException {
if (this.procurar(cliente.getTelefone()) == null) {
clientes[indice] = cliente;
indice++;
} else {
throw new ClienteJaCadastradoException();
}
}

public void remover(Cliente cliente) throws ClienteNaoCadastradoException {
if (this.procurar(cliente.getTelefone()) == null) {
throw new ClienteNaoCadastradoException();
} else {
clientes[this.getPosicao(cliente)] = clientes[indice - 1];
clientes[indice - 1] = null;
indice--;

}
}

private Cliente procurar(String telefone) {
Cliente retorno = null;
boolean achou = false;
for (int i = 0; i < indice && !achou; i++) {
if (clientes[i].getTelefone().equals(telefone)) {
retorno = clientes[i];
}
}
return retorno;
}

private int getPosicao(Cliente cliente) {
int resposta = 0;
for (int i = 0; i < indice; i++) {
if (clientes[i].getTelefone() == cliente.getTelefone()) {
resposta = i;
}
}
return resposta;
}

@Override
public Iterator<Cliente> procurar(Cliente valor) {
// TODO Auto-generated method stub
return null;
}
}
59 changes: 59 additions & 0 deletions example-apps/src/IP/br/ufpe/cin/dados/RepositorioPedidosArray.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package br.ufpe.cin.dados;

import java.util.Iterator;

import br.ufpe.cin.exception.PedidoNaoExistenteException;
import br.ufpe.cin.restaurante.Pedido;

public class RepositorioPedidosArray {
// implements IRepositorio<Pedido>
private Pedido[] pedidos;
private int indice;

public RepositorioPedidosArray(int tamanhoArray) {
this.pedidos = new Pedido[tamanhoArray];
this.indice = 0;
}

public void inserir(Pedido pedido) {
this.pedidos[indice] = pedido;
this.indice++;
}

public void remover(Pedido pedido)
throws PedidoNaoExistenteException {
if (this.procurar(pedido.getCodigo()) == null) {
throw new PedidoNaoExistenteException();
} else {
pedidos[this.getPosicao(pedido)] = pedidos[indice - 1];
pedidos[indice - 1] = null;
indice--;

}
}

private Pedido procurar(String codigo) {
Pedido retorno = null;
boolean achou = false;
for (int i = 0; i < indice && !achou; i++) {
if (pedidos[i].getCodigo().equals(codigo)) {
retorno = pedidos[i];
}
}
return retorno;
}

private int getPosicao(Pedido pedido) {
int posicao = 0;
for (int i = 0; i < indice; i++) {
if (pedidos[i].getCodigo() == pedido.getCodigo()) {
posicao = i;
}
}
return posicao;
}

public Iterator<Pedido> procurar(Pedido valor) {
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package br.ufpe.cin.dados;

import java.util.Iterator;

import br.ufpe.cin.exception.ProdutoJaCadastradoException;
import br.ufpe.cin.exception.ProdutoNaoCadastradoException;
import br.ufpe.cin.restaurante.Produto;

public class RepositorioProdutosArray implements IRepositorio<Produto>{

private Produto[] produtos;
private int indice;

public RepositorioProdutosArray(int tamanhoArray) {
this.produtos = new Produto[tamanhoArray];
this.indice = 0;
}

public void inserir(Produto produto)
throws ProdutoJaCadastradoException {
if (this.procurar(produto.getCodigo()) == null) {
produtos[indice] = produto;
indice++;
} else {
throw new ProdutoJaCadastradoException();
}
}

public void remover(Produto produto)
throws ProdutoNaoCadastradoException {
if (this.procurar(produto.getCodigo()) == null) {
throw new ProdutoNaoCadastradoException();
} else {
produtos[this.getPosicao(produto)] = produtos[indice - 1];
produtos[indice - 1] = null;
indice--;

}
}

private Produto procurar(String codigo) {
Produto retorno = null;
boolean achou = false;
for (int i = 0; i < indice && !achou; i++) {
if (produtos[i].getCodigo().equals(codigo)) {
retorno = produtos[i];
}
}
return retorno;
}

private int getPosicao(Produto produto) {
int resposta = 0;
for (int i = 0; i < indice; i++) {
if (produtos[i].getCodigo() == produto.getCodigo()) {
resposta = i;
}
}
return resposta;
}

@Override
public Iterator<Produto> procurar(Produto valor) {
// TODO Auto-generated method stub
return null;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package br.ufpe.cin.exception;

public class ClienteJaCadastradoException extends Exception{

/**
*
*/
private static final long serialVersionUID = -6490933969455438764L;

public ClienteJaCadastradoException(){
super("O cliente ja esta cadastrado.");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package br.ufpe.cin.exception;

public class ClienteNaoCadastradoException extends Exception{

/**
*
*/
private static final long serialVersionUID = 4855606300053472516L;

public ClienteNaoCadastradoException(){
super("Cliente nao cadastrado.");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package br.ufpe.cin.exception;

public class PedidoNaoExistenteException extends Exception{

/**
*
*/
private static final long serialVersionUID = 9143022182046227046L;

public PedidoNaoExistenteException(){
super("Pedido nao existente.");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package br.ufpe.cin.exception;

public class ProdutoJaCadastradoException extends Exception {

/**
*
*/
private static final long serialVersionUID = 3967223092703092831L;

public ProdutoJaCadastradoException() {
super("Produto ja cadastrado.");
}
}
Loading