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 return (clienteSubastas[])clientes.toArray();
36 public String descripcion() {
40 public String estado() {
44 public synchronized clienteSubastas ganador() {
45 //Si la puja esta cerrada devuelve ganador
46 //sino se bloquea hasta que se cierre
48 while(!estado.equals("Cerrada"))
50 } catch (InterruptedException e) {
51 // TODO Auto-generated catch block
54 return ganador_provisional;
57 public clienteSubastas ganador_provisional() {
58 return ganador_provisional;
61 public void inscribirCliente(clienteSubastas cl) {
62 //estaria bien lanzar una excepcion
63 if(estado.equals("Inscripcion"))
68 public synchronized boolean pujar(float cantidad, clienteSubastas cl) {
70 while(estado.equals("Inscripcion"))
72 } catch (InterruptedException e) {
73 // TODO Auto-generated catch block
76 if(estado.equals("Cerrada"))
79 if (clientes.contains(cl)){
80 if (cantidad > valor){
82 ganador_provisional = cl;
89 //quizas mejor una excepcion
96 synchronized public void ultimaPuja(clienteSubastas cl) {
97 if (clientes.contains(cl)){
100 if (clientes.size() == 0) {
106 public float valor() {