Implementados todos los sirvientes...
[pcd.git] / src / subastas / gestorSubastasImpl.java
1 package subastas;
2
3 import java.util.Vector;
4
5 import org.omg.CORBA.*;
6 import org.omg.CORBA.ORBPackage.InvalidName;
7 import org.omg.PortableServer.POA;
8 import org.omg.PortableServer.POAHelper;
9 import org.omg.PortableServer.POAManagerPackage.AdapterInactive;
10 import org.omg.PortableServer.POAPackage.ServantNotActive;
11 import org.omg.PortableServer.POAPackage.WrongPolicy;
12
13
14
15 /**
16  * @author danigm
17  *
18  */
19 public class gestorSubastasImpl extends gestorSubastasPOA {
20
21     private Vector<coordinadorSubasta> subastas;
22     private ORB orb;
23     private POA poa;
24         public gestorSubastasImpl() {
25         super();
26         subastas = new Vector<coordinadorSubasta>();
27
28         //inicializacion del orb
29         orb = ORB.init();
30
31         //creacion del poa raiz
32         try {
33                         poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
34                 } catch (InvalidName e) {
35                         // TODO Auto-generated catch block
36                         e.printStackTrace();
37                 }
38
39         //crear y activar sirvientes
40         try {
41                         poa.the_POAManager().activate();
42                 } catch (AdapterInactive e) {
43                         // TODO Auto-generated catch block
44                         e.printStackTrace();
45                 }
46
47         }
48
49         public coordinadorSubasta crearSubasta(float valor, String desc) {
50                 coordinadorSubasta c = null;
51         coordinadorSubastaImpl coord = new coordinadorSubastaImpl(valor, desc);
52         org.omg.CORBA.Object obj;
53                 try {
54                         obj = poa.servant_to_reference(coord);
55                         c = coordinadorSubastaHelper.narrow(obj);
56                         subastas.add(c);
57                 } catch (ServantNotActive e) {
58                         // TODO Auto-generated catch block
59                         e.printStackTrace();
60                 } catch (WrongPolicy e) {
61                         // TODO Auto-generated catch block
62                         e.printStackTrace();
63                 }
64                 
65         return c;
66         }
67
68         public void destruirSubasta(coordinadorSubasta cs) {
69         if (cs.estado().equals("Cerrada")){
70             subastas.remove(cs);
71         }
72         }
73
74         public coordinadorSubasta[] localizarSubasta(String palabra) {
75         Vector<coordinadorSubasta> encontradas = new Vector<coordinadorSubasta>();
76         for(int i=0; i<subastas.size(); i++){
77             if (subastas.get(i).descripcion().contains(palabra)){
78                 encontradas.add(subastas.get(i));
79             }
80         }
81                 return (coordinadorSubasta[])encontradas.toArray();
82         }
83
84 }