Ejemplo n.º 1
0
  /** @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()]);
  }
Ejemplo n.º 2
0
  /** @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()]);
  }
Ejemplo n.º 3
0
  /** @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;
  }