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 public void abrirSubasta() {
26 if(estado.equals("Inscripcion"))
30 public clienteSubastas[] clientes() {
31 return (clienteSubastas[])clientes.toArray();
34 public String descripcion() {
38 public String estado() {
42 public synchronized clienteSubastas ganador() {
43 //Si la puja esta cerrada devuelve ganador
44 //sino se bloquea hasta que se cierre
46 while(!estado.equals("Cerrada"))
48 } catch (InterruptedException e) {
49 // TODO Auto-generated catch block
52 return ganador_provisional;
55 public clienteSubastas ganador_provisional() {
56 return ganador_provisional;
59 public void inscribirCliente(clienteSubastas cl) {
60 //estaria bien lanzar una excepcion
61 if(estado.equals("Inscripcion"))
66 public synchronized boolean pujar(float cantidad, clienteSubastas cl) {
68 while(estado.equals("Inscripcion"))
70 } catch (InterruptedException e) {
71 // TODO Auto-generated catch block
74 if(estado.equals("Cerrada"))
77 if (clientes.contains(cl)){
78 if (cantidad > valor){
80 ganador_provisional = cl;
87 //quizas mejor una excepcion
94 public void ultimaPuja(clienteSubastas cl) {
95 if (clientes.contains(cl)){
98 if (clientes.size() == 0) {
103 public float valor() {