Implementados todos los sirvientes...
[pcd.git] / src / subastas / gestorSubastasImpl.java
index a14080e..0c5aa8c 100644 (file)
@@ -1,46 +1,84 @@
-/**
- * 
- */
 package subastas;
 
+import java.util.Vector;
+
+import org.omg.CORBA.*;
+import org.omg.CORBA.ORBPackage.InvalidName;
+import org.omg.PortableServer.POA;
+import org.omg.PortableServer.POAHelper;
+import org.omg.PortableServer.POAManagerPackage.AdapterInactive;
+import org.omg.PortableServer.POAPackage.ServantNotActive;
+import org.omg.PortableServer.POAPackage.WrongPolicy;
+
+
+
 /**
  * @author danigm
  *
  */
 public class gestorSubastasImpl extends gestorSubastasPOA {
 
-       /**
-        * 
-        */
+    private Vector<coordinadorSubasta> subastas;
+    private ORB orb;
+    private POA poa;
        public gestorSubastasImpl() {
-               // TODO Auto-generated constructor stub
+        super();
+        subastas = new Vector<coordinadorSubasta>();
+
+        //inicializacion del orb
+        orb = ORB.init();
+
+        //creacion del poa raiz
+        try {
+                       poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
+               } catch (InvalidName e) {
+                       // TODO Auto-generated catch block
+                       e.printStackTrace();
+               }
+
+        //crear y activar sirvientes
+        try {
+                       poa.the_POAManager().activate();
+               } catch (AdapterInactive e) {
+                       // TODO Auto-generated catch block
+                       e.printStackTrace();
+               }
+
        }
 
-       /* (non-Javadoc)
-        * @see subastas.gestorSubastasOperations#crearSubasta(float, java.lang.String)
-        */
-       @Override
        public coordinadorSubasta crearSubasta(float valor, String desc) {
-               // TODO Auto-generated method stub
-               return null;
+               coordinadorSubasta c = null;
+        coordinadorSubastaImpl coord = new coordinadorSubastaImpl(valor, desc);
+        org.omg.CORBA.Object obj;
+               try {
+                       obj = poa.servant_to_reference(coord);
+                       c = coordinadorSubastaHelper.narrow(obj);
+                       subastas.add(c);
+               } catch (ServantNotActive e) {
+                       // TODO Auto-generated catch block
+                       e.printStackTrace();
+               } catch (WrongPolicy e) {
+                       // TODO Auto-generated catch block
+                       e.printStackTrace();
+               }
+               
+        return c;
        }
 
-       /* (non-Javadoc)
-        * @see subastas.gestorSubastasOperations#destruirSubasta(subastas.coordinadorSubasta)
-        */
-       @Override
        public void destruirSubasta(coordinadorSubasta cs) {
-               // TODO Auto-generated method stub
-
+        if (cs.estado().equals("Cerrada")){
+            subastas.remove(cs);
+        }
        }
 
-       /* (non-Javadoc)
-        * @see subastas.gestorSubastasOperations#localizarSubasta(java.lang.String)
-        */
-       @Override
        public coordinadorSubasta[] localizarSubasta(String palabra) {
-               // TODO Auto-generated method stub
-               return null;
+        Vector<coordinadorSubasta> encontradas = new Vector<coordinadorSubasta>();
+        for(int i=0; i<subastas.size(); i++){
+            if (subastas.get(i).descripcion().contains(palabra)){
+                encontradas.add(subastas.get(i));
+            }
+        }
+               return (coordinadorSubasta[])encontradas.toArray();
        }
 
 }