/** @see fabrik.IFactory#getFaultyCars() */ @Override public String[] getFaultyCars() { ArrayList<String> ret = new ArrayList<String>(); try { TransactionReference trans = capi.createTransaction(10000, Config.locationAutos); ContainerReference sammelstelle = capi.lookupContainer(ContainerNames.SAMMELSTELLE, Config.locationAutos, 0, trans); /* * In folgender Liste werden die defekten Autos gespeichert, die Transaktion wird * commitet und im Anschluss werden die zurueckzugebenen Autos in Textform in einem Array gespeichert */ ArrayList<Auto> autos = capi.take( sammelstelle, FifoCoordinator.newSelector(MzsConstants.Selecting.COUNT_ALL), 0, trans); for (Auto auto : autos) { ret.add(auto.toString()); } capi.commitTransaction(trans); } catch (CountNotMetException ce) { ce.printStackTrace(); } catch (MzsCoreException e) { e.printStackTrace(); } return ret.toArray(new String[ret.size()]); }
/** @see fabrik.IFactory#getDeliveredCars() */ @Override public String[] getDeliveredCars() { ArrayList<String> ret = new ArrayList<String>(); try { TransactionReference trans = capi.createTransaction(10000, Config.locationAutos); ContainerReference ausliefern = capi.lookupContainer( ContainerNames.AUSLIEFERN, Config.locationAutos, MzsConstants.RequestTimeout.ZERO, trans); /* * In folgender Liste werden die ausgelieferten Autos gespeichert, die Transaktion wird * commitet und im Anschluss werden die zurueckzugebenen Autos in Textform in einem Array gespeichert */ ArrayList<Auto> autos = capi.take( ausliefern, FifoCoordinator.newSelector(MzsConstants.Selecting.COUNT_ALL), MzsConstants.RequestTimeout.ZERO, trans); capi.commitTransaction(trans); for (Auto auto : autos) { ret.add(auto.toString()); } } catch (CountNotMetException ce) { ce.printStackTrace(); } catch (MzsCoreException e) { e.printStackTrace(); } return ret.toArray(new String[ret.size()]); }
/** @see fabrik.IFactory#getQuantity(String) */ @Override public int getQuantity(String type) { String containerName = ""; /* * Diese if Blöcke definieren, welches Einzelteil verwendet wird und uebergibt es dem * entsprechenden Container */ if (type.equals("einzelteile.Achse")) { containerName = ContainerNames.ACHSEN; } else if (type.equals("einzelteile.Bodenplatte")) { containerName = ContainerNames.PLATTEN; } else if (type.equals("einzelteile.Karosserie")) { containerName = ContainerNames.KAROSSERIE; } else if (type.equals("einzelteile.Lenkrad")) { containerName = ContainerNames.LENKRAD; } else if (type.equals("einzelteile.ReifenPaar")) { containerName = ContainerNames.REIFEN; } else if (type.equals("einzelteile.Sitz")) { containerName = ContainerNames.SITZE; } try { /* * Da man die Anzahl der Einzelteile erhalten hat, wird ueber die test-Methode von Capi * gecheckt, wieviele Einzelteile dieses Typs sich im Space befinden und zurueckgegeben */ int num = 0; TransactionReference trans = capi.createTransaction(MzsConstants.TransactionTimeout.INFINITE, Config.locationET); ContainerReference einzelteil = capi.lookupContainer( containerName, Config.locationET, MzsConstants.RequestTimeout.TRY_ONCE, trans); num = capi.test( einzelteil, FifoCoordinator.newSelector(MzsConstants.Selecting.COUNT_ALL), MzsConstants.RequestTimeout.TRY_ONCE, trans); capi.commitTransaction(trans); return num; } catch (CountNotMetException ce) { ce.printStackTrace(); } catch (MzsCoreException e) { e.printStackTrace(); System.exit(0); } return 0; }