public EventStrategy getEvent(int idStrategy) { // ArrayList<EventStrategy> tempEvents = new ArrayList<EventStrategy>(arrPriorityQueueEvents); for (EventStrategy tempEvent : arrEvents) { if (tempEvent.getIdStrategy() == idStrategy) { return tempEvent; } } return null; }
@Override public int compare(EventStrategy a, EventStrategy b) { if (a.getPriorityQueue() > b.getPriorityQueue()) { return 1; } else if (a.getPriorityQueue() < b.getPriorityQueue()) { return -1; } else { return 0; } }
private void serial_method() { for (EventStrategy tempEvent : arrEvents) { final TOKEN token = new TOKEN(); token.setAttribute(0, tempEvent.getIdStrategy()); token.setAttribute(1, gameEngine.getLayerScreenController().getTimeFactor()); double timeEvent = tempEvent.execute(); if (timeEvent >= 0) { if (tempEvent.getType().equals(TypeActivity.Purchase.toString())) { token.setAttribute(2, Params.simpackPurchase); } Sim.schedule(new SimEvent(Sim.time() + timeEvent, Params.endEvent, -1, token)); // System.out.println(" - New event, current time:" + Sim.time() + " - // FutureTime:" + (Sim.time() + timeEvent) + " - Time:" + timeEvent + " - Strategy:" + // tempEvent.getIdStrategy() + "-" + tempEvent.getType() + " - token:" + token); tempEvent.addWorkCounter(); } if (arrEventsInstances.containsKey(tempEvent.getIdActivity()) && tempEvent.getStateMachine().getStateIndex() > 0) { arrEventsInstances .get(tempEvent.getIdActivity()) .setFirst(arrEventsInstances.get(tempEvent.getIdActivity()).getFirst() + 1); } } // System.out.println("####### FIN ########"); // for (int i=0; i<arrEventsInstances.size(); i++){ // if (arrEventsInstances.containsKey(arrEvents.get(i).getIdActivity())){ // if (arrEventsInstances.get(arrEvents.get(i).getIdActivity()).getFirst() == // arrEventsInstances.get(arrEvents.get(i).getIdActivity()).getSecond()){ // // arrEventsInstances.get(arrEvents.get(i).getIdActivity()).setSecond(arrEventsInstances.get(arrEvents.get(i).getIdActivity()).getSecond() + 1); // if (arrEvents.get(i).getType().equals(TypeActivity.Operation.toString())){ // addEvent(new // OperationStrategy(arrEvents.size(),(E_Operation)arrEvents.get(i).getData(),gameEngine)); // }else // if (arrEvents.get(i).getType().equals(TypeActivity.Transport.toString())){ // addEvent(new // TransportStrategy(arrEvents.size(),(E_TransportStore)arrEvents.get(i).getData(),gameEngine)); // }else // if (arrEvents.get(i).getType().equals(TypeActivity.Store.toString())){ // addEvent(new // StoreStrategy(arrEvents.size(),(E_TransportStore)arrEvents.get(i).getData(),gameEngine)); // } // if (arrEvents.get(i).getType().equals(TypeActivity.Ship.toString())){ // addEvent(new // ShipStrategy(arrEvents.size(),(E_Ship)arrEvents.get(i).getData(),gameEngine)); // } // } // arrEventsInstances.get(arrEvents.get(i).getIdActivity()).setFirst(0); // } // } for (Integer tempIdActivity : arrIdActivities) { Pair<Integer, Integer> pairEventInstance = arrEventsInstances.get(tempIdActivity); if (pairEventInstance.getFirst() == pairEventInstance.getSecond()) { pairEventInstance.setSecond(pairEventInstance.getSecond() + 1); if (getEventByActivity(tempIdActivity) .getType() .equals(TypeActivity.Operation.toString())) { arrEvents.add( new OperationStrategy( arrEvents.size(), (E_Operation) getEventByActivity(tempIdActivity).getData(), gameEngine)); } else if (getEventByActivity(tempIdActivity) .getType() .equals(TypeActivity.Transport.toString())) { arrEvents.add( new TransportStrategy( arrEvents.size(), (E_TransportStore) getEventByActivity(tempIdActivity).getData(), gameEngine)); } else if (getEventByActivity(tempIdActivity) .getType() .equals(TypeActivity.Store.toString())) { arrEvents.add( new StoreStrategy( arrEvents.size(), (E_TransportStore) getEventByActivity(tempIdActivity).getData(), gameEngine)); } if (getEventByActivity(tempIdActivity).getType().equals(TypeActivity.Ship.toString())) { arrEvents.add( new ShipStrategy( arrEvents.size(), (E_Ship) getEventByActivity(tempIdActivity).getData(), gameEngine)); } updateEvents_OrderByPriority(); } arrEventsInstances.get(tempIdActivity).setFirst(0); } }