示例#1
0
  private boolean verificarRetiradaPortaProduto(
      Prateleira pr, SimProcessCliente simProcessCliente, List<Point> ptList) {
    for (Point pt : ptList) {
      for (SimProcessCliente cl : Modelo.listaClientes) {
        Point pos = new Point();
        if (cl.getCliente().getPortaProduto() instanceof Carrinho) {
          pos = ((Carrinho) cl.getCliente().getPortaProduto()).getPosicao();
        } else {
          pos = cl.getPosicao();
        }

        if (pos.equals(pt)) {
          if (!cl.getCliente()
              .getPortaProduto()
              .equals(simProcessCliente.getCliente().getPortaProduto())) {
            return false;
          } else {
            return true;
          }
        }
      }
    }
    // Se chegou até aqui não conseguiu detectar nada
    return false;
  }
示例#2
0
  public boolean verificarRetirada(
      Prateleira pr, SimProcessCliente simProcessCliente, int tipoSensor) {

    Point ptBase = pr.getPontoFrente();

    List<Point> ptList = ptBase.calcularAdjacentes(raio);

    switch (tipoSensor) {
      case StatisticsData.CLIENTE_COM_SENSOR:
        {
          return verificarRetiradaCliente(pr, simProcessCliente, ptList);
        }
      case StatisticsData.PORTA_PRODUTO_COM_SENSOR:
        {
          return verificarRetiradaPortaProduto(pr, simProcessCliente, ptList);
        }
      case StatisticsData.AMBOS_COM_SENSOR:
        {
          if (!verificarRetiradaCliente(pr, simProcessCliente, ptList)) {
            return verificarRetiradaPortaProduto(pr, simProcessCliente, ptList);
          }
          return true;
        }
    }
    // Se chegou até aqui é porque houve algo errado e não conseguiu
    // detectar nada
    return false;
  }