2 import java.util.Vector;
8 public class coordinadorSubastaImpl extends coordinadorSubastaPOA {
9 private clienteSubastas ganador_provisional;
10 private Vector<clienteSubastas> clientes;
12 private String descripcion;
13 // Inscripcion -> Abierta -> Cerrada
14 private String estado;
16 public coordinadorSubastaImpl(float v_inicial, String desc) {
18 estado = "Inscripcion";
19 ganador_provisional=null;
20 clientes = new Vector<clienteSubastas>();
25 synchronized public void abrirSubasta() {
26 if(estado.equals("Inscripcion")){
32 public clienteSubastas[] clientes() {
33 clienteSubastas[] cs = new clienteSubastas[clientes.size()];
34 for (int i=0; i<clientes.size(); i++)
35 cs[i] = clientes.get(i);
39 public String descripcion() {
43 public String estado() {
47 public synchronized clienteSubastas ganador() {
48 //Si la puja esta cerrada devuelve ganador
49 //sino se bloquea hasta que se cierre
51 while(!estado.equals("Cerrada"))
53 } catch (InterruptedException e) {
54 // TODO Auto-generated catch block
57 return ganador_provisional;
60 public clienteSubastas ganador_provisional() {
61 return ganador_provisional;
64 public void inscribirCliente(clienteSubastas cl) {
65 //estaria bien lanzar una excepcion
66 if(estado.equals("Inscripcion"))
71 public synchronized boolean pujar(float cantidad, clienteSubastas cl) {
72 String id = cl.identificacion();
74 while(estado.equals("Inscripcion"))
76 } catch (InterruptedException e) {
77 // TODO Auto-generated catch block
80 if(estado.equals("Cerrada"))
83 if (clientes.contains(cl)){
84 if (cantidad > valor){
86 ganador_provisional = cl;
93 //quizas mejor una excepcion
100 synchronized public void ultimaPuja(clienteSubastas cl) {
101 if (clientes.contains(cl)){
104 if (clientes.size() == 0) {
110 public float valor() {