Example usage for org.hibernate.criterion Restrictions between

List of usage examples for org.hibernate.criterion Restrictions between

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions between.

Prototype

public static Criterion between(String propertyName, Object low, Object high) 

Source Link

Document

Apply a "between" constraint to the named property

Usage

From source file:ru.apertum.qsky.web.Dashboard.java

@Command("showBranchSituation")
@NotifyChange(value = { "pieChart", "dialChart", "servicesCustList" })
public synchronized void showBranchSituation() {
    if (selectedBranch == null) {
        return;// w  w w .  j  a  va 2  s  . c om
    }
    final Session ses = getHib().openSession();
    final List<Customer> custs;
    try {
        ses.beginTransaction();
        final GregorianCalendar day = new GregorianCalendar();
        day.set(GregorianCalendar.HOUR_OF_DAY, 0);
        day.set(GregorianCalendar.MINUTE, 0);
        final Date today_m = day.getTime();
        day.set(GregorianCalendar.HOUR_OF_DAY, 23);
        day.set(GregorianCalendar.MINUTE, 59);

        custs = ses.createCriteria(Customer.class)
                .add(Restrictions.eq("branchId", selectedBranch.getBranchId()))
                .add(Restrictions.between("visitTime", today_m, day.getTime())).list();
    } catch (Exception ex) {
        throw new RuntimeException("Not loaded a list of customers. " + ex);
    } finally {
        ses.getTransaction().rollback();
        ses.close();
    }

    final Predicate<? super Customer> filter = (cust) -> {
        return cust.getState() != 0 && cust.getState() != 10;
    };

    final HashMap<Long, Integer> cnt = new HashMap<>();
    Stream<Customer> scu = custs.stream().filter(filter);

    final long clntsCnt = custs.stream().filter(filter).count();
    scu.forEach((cust) -> {
        Integer serv = cnt.get(cust.getServiceId());
        if (serv != null) {
            cnt.put(cust.getServiceId(), ++serv);
        } else {
            cnt.put(cust.getServiceId(), 1);
        }
    });
    scu = custs.stream().filter(filter);

    final Optional<Customer> mw = scu.max((cust1, cust2) -> {
        return (cust1.getWaiting() == 0 ? (new Long(new Date().getTime() - cust1.getVisitTime().getTime()))
                : cust1.getWaiting()).compareTo(
                        cust2.getWaiting() == 0 ? (new Date().getTime() - cust2.getVisitTime().getTime())
                                : cust2.getWaiting());
    });
    long maxWaiting = mw.isPresent()
            ? (mw.get().getWaiting() == 0 ? (new Date().getTime() - mw.get().getVisitTime().getTime())
                    : mw.get().getWaiting())
            : 0;

    int i = 0;
    long avg = 0;
    for (Customer cust : custs) {
        if (cust.getState() != 0 && cust.getWaiting() != null) {
            avg = avg + (cust.getWaiting() == 0 ? (new Date().getTime() - cust.getVisitTime().getTime())
                    : cust.getWaiting());
            i++;
        }
    }

    final List<Pair> ls = new ArrayList<>();
    cnt.keySet().stream().forEach((l) -> {
        ls.add(new Pair(l, cnt.get(l)));
    });
    final PieModel model = new SimplePieModel();
    ls.sort((Pair o1, Pair o2) -> {
        return Integer.compare(o2.i, o1.i);
    });
    ls.stream().limit(10).forEach((Pair p) -> {
        final String name = Dicts.getInstance().getServiceName(selectedBranch.getBranchId(), p.l);
        model.setValue((name.length() > 30 ? name.substring(0, 30) + "..." : name) + "(" + p.i + ")", p.i);
    });
    servicesCustList.clear();
    ls.stream().forEach((Pair p) -> {
        final String name = Dicts.getInstance().getServiceName(selectedBranch.getBranchId(), p.l);
        servicesCustList.add(new Pair(name, p.i));
    });
    pieChart.setModel(model);

    dialChart.averageModel.setValue(0, i == 0 ? 0 : avg / i / 1000 / 60);
    dialChart.customersModel.setValue(0, clntsCnt);
    dialChart.waitingModel.setValue(0,
            maxWaiting < 1000 * 60 ? (clntsCnt == 0 ? 0 : 1) : maxWaiting / 1000 / 60);
}

From source file:ru.apertum.qsky.web.Dashboard.java

@Command("downloadBranchStatistic")
public synchronized void downloadBranchStatistic() {
    if (selectedBranch == null) {
        return;/*from  w w w. j  av a2 s . c o m*/
    }
    final Session ses = getHib().openSession();
    final List<Customer> custs;
    try {
        ses.beginTransaction();
        final GregorianCalendar day = new GregorianCalendar();
        day.setTime(statVM.getStart());
        day.set(GregorianCalendar.HOUR_OF_DAY, 0);
        day.set(GregorianCalendar.MINUTE, 0);
        final Date today_m = day.getTime();
        day.setTime(statVM.getFinish());
        day.set(GregorianCalendar.HOUR_OF_DAY, 23);
        day.set(GregorianCalendar.MINUTE, 59);

        custs = ses.createCriteria(Customer.class)
                .add(Restrictions.eq("branchId", selectedBranch.getBranchId()))
                .add(Restrictions.between("visitTime", today_m, day.getTime())).list();
    } catch (Exception ex) {
        throw new RuntimeException("Not loaded a list of customers. " + ex);
    } finally {
        ses.getTransaction().rollback();
        ses.close();
    }
    final StringBuffer sb;
    sb = new StringBuffer(l("captions_csv") + "\n");
    int nom = 0;
    for (Customer cust : custs) {
        Step step = cust.getFirstStep();
        while (step != null) {
            sb.append(++nom).append(";");
            sb.append(selectedBranch.getName()).append(";");
            sb.append(Dicts.getInstance().getServiceName(selectedBranch.getBranchId(), step.getServiceId()))
                    .append(";");
            sb.append(Dicts.getInstance().getEmployeeName(selectedBranch.getBranchId(), step.getEmployeeId()))
                    .append(";");
            sb.append(cust.getPrefix()).append(cust.getNumber()).append(";");
            sb.append(SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT)
                    .format(step.getStandTime())).append(";");
            if (step.getFinishState() == null || step.getFinishState() == 0) {
                sb.append(";;;;");
            } else {
                sb.append(SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT)
                        .format(step.getStartTime())).append(";");
                sb.append(SimpleDateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT)
                        .format(step.getFinishTime())).append(";");
                sb.append(step.getWaiting() / 1000 / 60).append(";");
                sb.append(step.getWorking() / 1000 / 60).append(";");
            }
            sb.append(step.getStartState()).append(";");
            sb.append(step.getFinishState() == null ? "" : step.getFinishState()).append(";");
            step = step.getAfter();
            sb.append("\n");
        }
    }
    Filedownload.save(sb.toString().getBytes(), "text/csv",
            "qstat_" + SimpleDateFormat.getDateInstance().format(statVM.getStart()) + "-"
                    + SimpleDateFormat.getDateInstance().format(statVM.getFinish()) + ".csv");
    sb.setLength(0);
}

From source file:ru.apertum.qsystem.server.model.QService.java

License:Open Source License

/**
 *  ?  ? ? ? ?  /*  w  ww . ja  va  2 s.c om*/
 *
 * @param date  ?   ? ? 
 * @param strictStart false - ? ? ?  ? , true - ? ?  ?  ? ?  date
 * @return ? ? 
 */
public int getAdvancedCount(Date date, boolean strictStart) {
    final GregorianCalendar forDay = new GregorianCalendar();
    forDay.setTime(date);

    final GregorianCalendar today = new GregorianCalendar();
    if (!strictStart && forDay.get(GregorianCalendar.DAY_OF_YEAR) == today.get(GregorianCalendar.DAY_OF_YEAR)
            && day_y != today.get(GregorianCalendar.DAY_OF_YEAR)) {
        day_y = today.get(GregorianCalendar.DAY_OF_YEAR);
        dayAdvs = -100;
    }
    if (!strictStart && forDay.get(GregorianCalendar.DAY_OF_YEAR) == today.get(GregorianCalendar.DAY_OF_YEAR)
            && dayAdvs >= 0) {
        return dayAdvs;
    }

    final DetachedCriteria dc = DetachedCriteria.forClass(QAdvanceCustomer.class);
    dc.setProjection(Projections.rowCount());
    if (!strictStart) {
        forDay.set(GregorianCalendar.HOUR_OF_DAY, 0);
        forDay.set(GregorianCalendar.MINUTE, 0);
    }
    final Date today_m = forDay.getTime();
    forDay.set(GregorianCalendar.HOUR_OF_DAY, 23);
    forDay.set(GregorianCalendar.MINUTE, 59);
    dc.add(Restrictions.between("advanceTime", today_m, forDay.getTime()));
    dc.add(Restrictions.eq("service", this));
    final Long cnt = (Long) (Spring.getInstance().getHt().findByCriteria(dc).get(0));
    final int i = cnt.intValue();

    forDay.setTime(date);
    if (!strictStart && forDay.get(GregorianCalendar.DAY_OF_YEAR) == today.get(GregorianCalendar.DAY_OF_YEAR)) {
        dayAdvs = i;
    }

    QLog.l().logger()
            .trace("? ?  ??  "
                    + getName() + ".  " + i);
    return i;
}

From source file:ru.sincore.db.dao.ClientCountDAOImpl.java

License:Open Source License

@Override
public List<ClientCountPOJO> getEntriesInDateRange(Date start, Date end) {
    Session session = HibernateUtils.getSessionFactory().openSession();
    Transaction tx = session.getTransaction();

    List<ClientCountPOJO> result = null;

    try {/*from ww  w  .  j  a  v a2 s .  c  o  m*/
        tx.begin();

        Criteria criteria = session.createCriteria(ClientCountPOJO.class);
        criteria.add(Restrictions.between("timestamp", start, end));

        result = (List<ClientCountPOJO>) criteria.list();

        tx.commit();
    } catch (HibernateException e) {
        log.error(e.toString());
        tx.rollback();
        return null;
    }

    return result;
}

From source file:ru.sincore.db.dao.ShareSizeDAOImpl.java

License:Open Source License

@Override
public List<ShareSizePOJO> getShareSizeInDateRange(Date start, Date end) {
    Session session = HibernateUtils.getSessionFactory().openSession();
    Transaction tx = session.getTransaction();

    List<ShareSizePOJO> result = null;

    try {//from   w w  w  .j  av a 2  s  .  c om
        tx.begin();

        Criteria criteria = session.createCriteria(ShareSizePOJO.class);
        criteria.add(Restrictions.between("timestamp", start, end));

        result = (List<ShareSizePOJO>) criteria.list();

        tx.commit();
    } catch (HibernateException e) {
        log.error(e.toString());
        tx.rollback();
        return null;
    }

    return result;
}

From source file:sk.cagani.stuba.bpbp.api.DeviceAPI.java

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
    // S.println("[POST]");
    //   System.out.println("\n\n" + DatabaseConnector.getStatistics() + "\n\n");
    response.setContentType("text/json; charset=UTF-8");
    Map<String, Object> jwConfig = new HashMap<>();
    jwConfig.put(JsonGenerator.PRETTY_PRINTING, true);
    JsonWriter jw = Json.createWriterFactory(jwConfig).createWriter(response.getOutputStream(),
            Charset.forName("UTF-8"));
    logger.info("[req URI]: " + request.getRequestURI());
    logger.info(request.getParameterMap().toString());
    if (!request.getParameterMap().isEmpty()) {
        switch (request.getParameter("requestContent")) {
        case "CurrentStop": {
            logger.debug("[CurrentStop]");
            if (request.getParameter("stopName") != null) {
                String requestStopName = request.getParameter("stopName");

                List<RouteData> routeList;
                List<RouteData> routeListTomorrow;

                Session session = DatabaseConnector.getSession();
                Transaction tx = null;//from   w  w  w  . j  a v a 2 s . co m
                tx = session.beginTransaction(); //open the transaction
                int routeCountRequest = 15;
                if (request.getParameter("count") != null) {
                    routeCountRequest = Integer.parseInt(request.getParameter("count"));
                }
                int secondsSinceMidnight = Utils.getSecondsFromMidnight();
                List<GtfsStops> stopList = session.createCriteria(GtfsStops.class)
                        .add(Restrictions.eq("name", requestStopName)).list();
                routeList = getRouteData(Utils.getActualServiceId(), secondsSinceMidnight, stopList, session,
                        request);

                //        logger.debug(routeList.size() + " velkost routeListu");
                //    logger.debug("size route list " + routeList.size());
                if (routeList.isEmpty() || (routeList.size() <= routeCountRequest)) {
                    //             logger.debug("route List je empty vchadzam do dalsieho citania");
                    routeListTomorrow = getRouteData(Utils.getTomorrowServiceId(), 3600, stopList, session,
                            request);
                    //              logger.debug("naslo sa " + routeListTomorrow.size() + " zaznamov");
                    Collections.sort(routeListTomorrow, new CustomComparator());

                    routeList.addAll(routeListTomorrow);
                    //             logger.debug("spolu je to " + routeList.size());

                } else {
                    Collections.sort(routeList, new CustomComparator());
                }
                JsonArrayBuilder routesJAB = Json.createArrayBuilder();
                int routeIndex = 0;

                for (RouteData route : routeList) {
                    if (routeIndex < routeCountRequest) {
                        JsonObjectBuilder routeJOB = Json.createObjectBuilder();
                        routeJOB.add("vehicleId", route.getGtfsTrip().getId().getId());
                        routeJOB.add("vehicleShortName", route.getRoute().getShortName());
                        routeJOB.add("stopHeadSign", route.getGtfsTrip().getTripHeadsign());
                        routeJOB.add("routeType", route.getRoute().getType());
                        if (route.getTripPositions() != null) {
                            routeJOB.add("delay", route.getTripPositions().getDelay());
                        } else {
                            routeJOB.add("delay", "notStarted");
                        }
                        routeJOB.add("arrivalTime", secsToHMS(route.getStopTime().getArrivalTime()));
                        routesJAB.add(routeJOB);
                    }
                    routeIndex++;
                }
                tx.commit();

                session.close();

                JsonArray routesJA = routesJAB.build();
                //           logger.info(routesJA.toString());
                jw.writeArray(routesJA);
            }
            break;
        }
        case "currentVehicleDetail": {
            logger.debug("[currentVehicleDetail]");
            //    logger.debug("in api call currentVehicleDetail " + request.getRequestURI() + " " + request.getRequestURL());
            Session session = DatabaseConnector.getSession();
            Transaction tx = session.beginTransaction();
            String vehicleId = request.getParameter("vehicleId");
            //    logger.debug("vehicleID" + vehicleId);
            GtfsTripsId tripId = new GtfsTripsId("01", vehicleId);
            GtfsTrips currentTrip = (GtfsTrips) session.get(GtfsTrips.class, tripId);
            List<TripPositions> currentVehicleDetailList = session.createCriteria(TripPositions.class)
                    .add(Restrictions.eq("gtfsTrips", currentTrip)).add(Restrictions.eq("state", "a")).list();
            JsonArrayBuilder vehicleJAB = Json.createArrayBuilder();
            //     System.out.println(currentVehicleDetailList.size());

            if (!currentVehicleDetailList.isEmpty()) {
                for (TripPositions currentVehicleDetail : currentVehicleDetailList) {
                    //           logger.debug((Utils.getSecondsFromMidnight(currentVehicleDetail.getModifiedAt()) - currentVehicleDetail.getDelay()) + " next stop arrival time " + currentVehicleDetail.getGtfsTrips().getId().getId());
                    List<GtfsStopTimes> nextStopTime = session.createCriteria(GtfsStopTimes.class, "stopTimes")
                            .add(Restrictions.eq("stopTimes.gtfsTrips", currentVehicleDetail.getGtfsTrips()))
                            .addOrder(Order.asc("arrivalTime")).list();
                    GtfsTrips trip = currentVehicleDetail.getGtfsTrips();
                    GtfsRoutes route = trip.getGtfsRoutes();
                    JsonObjectBuilder vehicleJOB = Json.createObjectBuilder();
                    vehicleJOB.add("id", trip.getId().getId());
                    vehicleJOB.add("shortName", route.getShortName());
                    vehicleJOB.add("vehicleType", route.getType());
                    vehicleJOB.add("lon", currentVehicleDetail.getLon());
                    vehicleJOB.add("lat", currentVehicleDetail.getLat());
                    vehicleJOB.add("headingTo", trip.getTripHeadsign());
                    vehicleJOB.add("delay", currentVehicleDetail.getDelay());
                    vehicleJOB.add("speed", currentVehicleDetail.getSpeed());
                    if (nextStopTime.isEmpty()) {
                        vehicleJOB.add("lastStop", "Not supported");
                        vehicleJOB.add("nextStop", "Not supported");
                        vehicleJOB.add("arrivalTime", "Not supported");

                    } else {
                        if (currentVehicleDetail.getNextStopNumber() == 0) {
                            vehicleJOB.add("lastStop", "Vehicle is at start");
                            vehicleJOB.add("nextStop",
                                    nextStopTime.get(currentVehicleDetail.getNextStopNumber() + 1)
                                            .getGtfsStops().getName());
                            vehicleJOB.add("arrivalTime", Utils.secsToHMS(nextStopTime
                                    .get(currentVehicleDetail.getNextStopNumber() + 1).getArrivalTime()));
                        } else {
                            vehicleJOB.add("lastStop",
                                    nextStopTime.get(currentVehicleDetail.getNextStopNumber() - 1)
                                            .getGtfsStops().getName());
                            vehicleJOB.add("nextStop", nextStopTime
                                    .get(currentVehicleDetail.getNextStopNumber()).getGtfsStops().getName());
                            vehicleJOB.add("arrivalTime", Utils.secsToHMS(nextStopTime
                                    .get(currentVehicleDetail.getNextStopNumber()).getArrivalTime()));
                        }
                    }

                    vehicleJAB.add(vehicleJOB);
                }
            } else {
                List<GtfsStopTimes> nextStopTime = session.createCriteria(GtfsStopTimes.class, "stopTimes")
                        .add(Restrictions.eq("stopTimes.gtfsTrips", currentTrip))
                        .addOrder(Order.asc("arrivalTime")).list();
                JsonObjectBuilder vehicleJOB = Json.createObjectBuilder();
                vehicleJOB.add("id", currentTrip.getId().getId());
                vehicleJOB.add("shortName", currentTrip.getGtfsRoutes().getShortName());
                vehicleJOB.add("vehicleType", currentTrip.getGtfsRoutes().getType());
                vehicleJOB.add("lon", "0");
                vehicleJOB.add("lat", "0");
                vehicleJOB.add("headingTo", currentTrip.getTripHeadsign());
                vehicleJOB.add("delay", "notStarted");
                vehicleJOB.add("speed", "0");

                vehicleJOB.add("lastStop", "not started Yet");
                vehicleJOB.add("nextStop", nextStopTime.get(1).getGtfsStops().getName());
                vehicleJOB.add("arrivalTime", Utils.secsToHMS(nextStopTime.get(1).getArrivalTime()));

                vehicleJAB.add(vehicleJOB);
            }

            tx.commit();
            session.close();
            JsonArray vehicleJA = vehicleJAB.build();
            //     System.out.println(vehicleJA.toString());
            jw.writeArray(vehicleJA);
            break;
        }
        case "vehiclesPositions": {
            logger.debug("[vehiclesPositions]");
            logger.debug(
                    "in api call vehiclePositions " + request.getRequestURI() + " " + request.getRequestURL());
            Session session = DatabaseConnector.getSession();
            Transaction tx = session.beginTransaction();
            double northLon = Double.parseDouble(request.getParameter("northLon"));
            double eastLat = Double.parseDouble(request.getParameter("eastLat"));
            double westLat = Double.parseDouble(request.getParameter("westLat"));
            double southLon = Double.parseDouble(request.getParameter("southLon"));
            JsonArrayBuilder vehicleJAB = Json.createArrayBuilder();
            //   System.out.println("lat " + (westLat) + " " + (eastLat) + " lon " + (northLon) + " " + (southLon));
            List<TripPositions> tripPositionsList = session.createCriteria(TripPositions.class)
                    .add(Restrictions.between("lat", westLat, eastLat))
                    .add(Restrictions.between("lon", southLon, northLon)).add(Restrictions.eq("state", "a"))
                    .list();
            for (TripPositions tripPosition : tripPositionsList) {
                List<GtfsStopTimes> nextStopTime = session.createCriteria(GtfsStopTimes.class, "stopTimes")
                        .add(Restrictions.eq("stopTimes.gtfsTrips", tripPosition.getGtfsTrips()))
                        .addOrder(Order.asc("arrivalTime")).list();

                GtfsTrips trip = tripPosition.getGtfsTrips();
                //   GtfsStopTimes stopTime = session.createCriteria(GtfsStopTimes.class).add(Restrictions.eq("gtfsTrips", trip)).list().get(0);
                GtfsRoutes route = trip.getGtfsRoutes();
                JsonObjectBuilder vehicleJOB = Json.createObjectBuilder();
                vehicleJOB.add("id", trip.getId().getId());
                vehicleJOB.add("shortName", route.getShortName());
                vehicleJOB.add("vehicleType", route.getType());
                vehicleJOB.add("lon", tripPosition.getLon());
                vehicleJOB.add("lat", tripPosition.getLat());
                vehicleJOB.add("headingTo", trip.getTripHeadsign());
                vehicleJOB.add("delay", tripPosition.getDelay());
                vehicleJOB.add("speed", tripPosition.getSpeed());

                if (nextStopTime.isEmpty()) {
                    vehicleJOB.add("lastStop", "Not supported");
                    vehicleJOB.add("nextStop", "Not supported");
                    vehicleJOB.add("arrivalTime", "Not supported");

                } else {
                    if (tripPosition.getNextStopNumber() == 0) {
                        vehicleJOB.add("lastStop", "Vehicle is at start");
                        vehicleJOB.add("nextStop", nextStopTime.get(tripPosition.getNextStopNumber() + 1)
                                .getGtfsStops().getName());
                        vehicleJOB.add("arrivalTime", Utils.secsToHMS(
                                nextStopTime.get(tripPosition.getNextStopNumber() + 1).getArrivalTime()));
                    } else {
                        vehicleJOB.add("lastStop", nextStopTime.get(tripPosition.getNextStopNumber() - 1)
                                .getGtfsStops().getName());
                        vehicleJOB.add("nextStop",
                                nextStopTime.get(tripPosition.getNextStopNumber()).getGtfsStops().getName());
                        vehicleJOB.add("arrivalTime", Utils.secsToHMS(
                                nextStopTime.get(tripPosition.getNextStopNumber()).getArrivalTime()));
                    }
                }
                vehicleJAB.add(vehicleJOB);
            }

            tx.commit();
            session.close();
            JsonArray vehicleJA = vehicleJAB.build();
            //System.out.println(vehicleJA.toString());
            jw.writeArray(vehicleJA);
            break;
        }
        case "allStops": {
            //       logger.debug("in api call allStops " + request.getRequestURI() + " " + request.getRequestURL());
            Session session = DatabaseConnector.getSession();
            List<GtfsStops> stopsList = session.createCriteria(GtfsStops.class).list();
            session.getTransaction().commit(); //closes transaction
            session.close();
            JsonArrayBuilder stopsJAB = Json.createArrayBuilder();
            for (GtfsStops stop : stopsList) {
                if (stop.getId().getId().endsWith("1")) {
                    JsonObjectBuilder stopJOB = Json.createObjectBuilder();
                    stopJOB.add(stop.getId().getClass().getSimpleName(), stop.getId().getId());
                    stopJOB.add("name", stop.getName());
                    stopJOB.add("lat", stop.getLat());
                    stopJOB.add("lon", stop.getLon());
                    stopsJAB.add(stopJOB);
                }
            }
            JsonObjectBuilder stopsJOB = Json.createObjectBuilder();
            stopsJOB.add("stops", stopsJAB);
            JsonObject stopsJO = stopsJOB.build();
            //    System.out.println(stopsJO.toString());
            jw.writeObject(stopsJO);

            break;
        }

        default: {
            response.getOutputStream().write(("invalid call " + request.getRequestURI()).getBytes());
        }
        }
    } else {
        response.getOutputStream().write(("invalid call EMPTY PARAM" + request.getRequestURI()).getBytes());
    }

    response.setStatus(HttpServletResponse.SC_OK);

}

From source file:sk.cagani.stuba.bpbp.api.VehicleAPI.java

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
    System.out.println("[POST] request length: " + request.getContentLength() + " B   "
            + Long.parseLong(request.getHeader("Content-Length")) + " B\n" + request.toString());
    //   System.out.println("\n\n" + DatabaseConnector.getStatistics() + "\n\n");
    //      System.out.print("[POST]  ");
    response.setContentType("text/json");
    Map<String, Boolean> jwConfig = new HashMap<>();
    jwConfig.put(JsonGenerator.PRETTY_PRINTING, Boolean.TRUE);
    JsonWriter jw = Json.createWriterFactory(jwConfig).createWriter(response.getOutputStream());

    switch (request.getRequestURI()) {
    case "/api/vehicle/init":
        System.out.println(/*from w w w  .  j  a  v  a 2 s .  co m*/
                "[Init] position: " + request.getParameter("lat") + "  " + request.getParameter("lon"));
        Session sessionInit = DatabaseConnector.getSession();
        Transaction transactionInit = null;
        try {
            transactionInit = sessionInit.beginTransaction();

            Double lat = Double.parseDouble(request.getParameter("lat"));
            Double lon = Double.parseDouble(request.getParameter("lon"));
            Integer time = Integer.parseInt(request.getParameter("time"));
            String routeNumber = request.getParameter("routeNum");

            List<GtfsStops> gtfsStops = sessionInit.createCriteria(GtfsStops.class)
                    .add(Restrictions.between("lat", lat - 0.0025, lat + 0.0025))
                    .add(Restrictions.between("lon", lon - 0.0025, lon + 0.0025)).list();

            JsonArrayBuilder tripsJAB = Json.createArrayBuilder();
            for (GtfsStops stop : gtfsStops) {
                for (GtfsStopTimes stopTime : (List<GtfsStopTimes>) sessionInit
                        .createCriteria(GtfsStopTimes.class).add(Restrictions.eq("gtfsStops", stop))
                        .addOrder(Order.asc("departureTime")).list()) {
                    if (stopTime.getGtfsTrips().getGtfsRoutes().getShortName().equals(routeNumber)) {
                        if (stopTime.getDepartureTime() > time - 1200
                                && stopTime.getDepartureTime() < time + 1200) {
                            if (stopTime.getGtfsTrips().getServiceIdId().equals(Utils.getActualServiceId())) {
                                if (!stop.getName().equals(stopTime.getGtfsTrips().getTripHeadsign())) {
                                    JsonObjectBuilder tripJOB = Json.createObjectBuilder();
                                    tripJOB.add("routeName",
                                            stopTime.getGtfsTrips().getGtfsRoutes().getShortName());
                                    tripJOB.add("routeType", stopTime.getGtfsTrips().getGtfsRoutes().getType());
                                    tripJOB.add("tripId", stopTime.getGtfsTrips().getId().getId());
                                    tripJOB.add("departureTime", stopTime.getDepartureTime());
                                    tripJOB.add("headSign", stopTime.getGtfsTrips().getTripHeadsign());
                                    tripJOB.add("foundStop", stop.getName());
                                    tripsJAB.add(tripJOB);
                                }
                            }
                        }
                    }
                }
            }
            transactionInit.commit();

            JsonObjectBuilder possibleTripJOB = Json.createObjectBuilder();
            possibleTripJOB.add("possibleTripList", tripsJAB);
            JsonObject possibleTripJO = possibleTripJOB.build();
            jw.writeObject(possibleTripJO);
        } catch (HibernateException | NumberFormatException e) {
            if (transactionInit != null) {
                transactionInit.rollback();
                throw e;
            }
        } finally {
            sessionInit.close();
        }
        break;
    case "/api/vehicle/updateLocation":
        Session sessionUpdateLocation = DatabaseConnector.getSession();
        Transaction transactionUpdateLocation = null;
        try {
            transactionUpdateLocation = sessionUpdateLocation.beginTransaction();

            GtfsTrips trip = (GtfsTrips) sessionUpdateLocation.get(GtfsTrips.class,
                    new GtfsTripsId(agencyId, request.getParameter("tripId")));
            TripPositions tripPosition = (TripPositions) sessionUpdateLocation
                    .createCriteria(TripPositions.class).add(Restrictions.eq("gtfsTrips", trip)).uniqueResult();

            if (tripPosition == null) {
                tripPosition = new TripPositions(trip, Double.parseDouble(request.getParameter("lat")),
                        Double.parseDouble(request.getParameter("lon")),
                        Double.parseDouble(request.getParameter("spd")),
                        Integer.parseInt(request.getParameter("nsn")),
                        Integer.parseInt(request.getParameter("delay")), request.getParameter("state"));
            } else {
                tripPosition.setLat(Double.parseDouble(request.getParameter("lat")));
                tripPosition.setLon(Double.parseDouble(request.getParameter("lon")));
                tripPosition.setDelay(Integer.parseInt(request.getParameter("delay")));
                tripPosition.setSpeed(Double.parseDouble(request.getParameter("spd")));
                tripPosition.setNextStopNumber(Integer.parseInt(request.getParameter("nsn")));
                tripPosition.setState(request.getParameter("state"));
                tripPosition.setModifiedAt(null);
            }

            sessionUpdateLocation.saveOrUpdate(tripPosition);
            transactionUpdateLocation.commit();

        } catch (HibernateException | NumberFormatException e) {
            if (transactionUpdateLocation != null) {
                transactionUpdateLocation.rollback();
                throw e;
            }
        } finally {
            sessionUpdateLocation.close();
        }
        break;
    case "/api/vehicle/getStopsAndPoi":
        System.out.println("[Get stops and poi] tripId: " + request.getParameter("tripId"));
        Session sessionGetStopsAndPoi = DatabaseConnector.getSession();
        Transaction transactionGetStopsAndPoi = null;
        try {
            transactionGetStopsAndPoi = sessionGetStopsAndPoi.beginTransaction();
            /*
             get all POI
             */
            GtfsTrips gtfsTrip = (GtfsTrips) sessionGetStopsAndPoi.get(GtfsTrips.class,
                    new GtfsTripsId(agencyId, request.getParameter("tripId")));

            JsonArrayBuilder poiJAB = Json.createArrayBuilder();
            for (PoisInRoutes pir : (Set<PoisInRoutes>) gtfsTrip.getGtfsRoutes().getPoisInRouteses()) {
                JsonObjectBuilder poiJOB = Json.createObjectBuilder();
                poiJOB.add("title", pir.getPoi().getTitle());
                poiJOB.add("lat", pir.getPoi().getLat());
                poiJOB.add("lon", pir.getPoi().getLon());
                poiJOB.add("radius", pir.getPoi().getRadius());
                poiJOB.add("filePath", pir.getPoi().getFilePath());

                poiJAB.add(poiJOB);
            }
            /*
             get all stops
             */
            List<GtfsStopTimes> stopTimesList = sessionGetStopsAndPoi.createCriteria(GtfsStopTimes.class)
                    .add(Restrictions.eq("gtfsTrips", gtfsTrip)).addOrder(Order.asc("stopSequence")).list();
            JsonArrayBuilder stopsJAB = Json.createArrayBuilder();
            for (GtfsStopTimes gst : stopTimesList) {
                JsonObjectBuilder stopsJOB = Json.createObjectBuilder();
                stopsJOB.add("name", gst.getGtfsStops().getName());
                stopsJOB.add("lat", gst.getGtfsStops().getLat());
                stopsJOB.add("lon", gst.getGtfsStops().getLon());
                stopsJOB.add("zoneId", gst.getGtfsStops().getZoneId());
                stopsJOB.add("arrivalTime", gst.getArrivalTime());
                stopsJOB.add("stopTimeId", gst.getId());
                stopsJOB.add("isOnRequest", gst.getPickupType().equals(3) ? "true" : "false");

                stopsJAB.add(stopsJOB);
            }

            transactionGetStopsAndPoi.commit();

            JsonObjectBuilder tripInfoJOB = Json.createObjectBuilder();
            tripInfoJOB.add("poiList", poiJAB);
            tripInfoJOB.add("stopsList", stopsJAB);
            JsonObject tripInfoJO = tripInfoJOB.build();
            jw.writeObject(tripInfoJO);
        } catch (HibernateException | NumberFormatException e) {
            if (transactionGetStopsAndPoi != null) {
                transactionGetStopsAndPoi.rollback();
                throw e;
            }
        } finally {
            sessionGetStopsAndPoi.close();
        }
        break;
    case "/api/vehicle/realStopTime":
        Session sessionRealStopTime = DatabaseConnector.getSession();
        Transaction transactionRealStopTime = null;
        try {
            transactionRealStopTime = sessionRealStopTime.beginTransaction();

            GtfsStopTimes stopTime = (GtfsStopTimes) sessionRealStopTime.get(GtfsStopTimes.class,
                    Integer.parseInt(request.getParameter("stopTimeId")));
            sessionRealStopTime.save(new StopRealTimesHistory(stopTime,
                    Integer.parseInt(request.getParameter("realArrivalTime")),
                    Integer.parseInt(request.getParameter("realDepartureTime"))));
            transactionRealStopTime.commit();
        } catch (HibernateException | NumberFormatException e) {
            if (transactionRealStopTime != null) {
                transactionRealStopTime.rollback();
                throw e;
            }
        } finally {
            sessionRealStopTime.close();
        }
        break;

    case "/api/vehicle/savePoi":
        System.out.println(request.getParameterMap().toString());
        System.out.println("poi " + request.getParameter("poiTitle"));
        System.out.println("\n" + request.toString());

        Session savePoi = DatabaseConnector.getSession();
        Transaction transactionSavePoi = null;
        try {
            transactionSavePoi = savePoi.beginTransaction();
            transactionSavePoi.commit();
        } catch (HibernateException | NumberFormatException e) {
            if (transactionSavePoi != null) {
                transactionSavePoi.rollback();
                throw e;
            }
        } finally {
            savePoi.close();
        }

        break;
    }
    response.setStatus(HttpServletResponse.SC_OK);
}

From source file:sk.cagani.stuba.bpbp.serverApp.DatabaseConnector.java

public void testConnection() throws Exception {
    System.out.println("IDEM TESTUVAC");
    Session session = getSession();/*from  w w  w.j  av  a  2s.c  o m*/
    Calendar c = Calendar.getInstance();
    c.setTime(new Date());
    c.set(Calendar.HOUR_OF_DAY, 0);
    c.set(Calendar.MINUTE, 0);
    c.set(Calendar.SECOND, 0);
    c.set(Calendar.MILLISECOND, 0);

    System.out.println(c.getTimeInMillis());
    Long timeSinceMidnight = new Date().getTime() - (c.getTimeInMillis());
    Long secondsSinceMidnight = timeSinceMidnight / 1000;
    System.out.println(secondsSinceMidnight.intValue() + " since midnight ");
    Date date1 = new Date();
    /*
     List<GtfsTrips> tripList = session.createCriteria(GtfsTrips.class).add(Restrictions.eq("serviceIdId", "Prac.dny_0")).list();
     System.out.println("pocet tripov pre prac dny " + tripList.size());
            
     for (GtfsTrips trip : tripList) {
     List<GtfsStopTimes> stopTimesList = (List<GtfsStopTimes>) session.createCriteria(GtfsStopTimes.class).add(Restrictions.eq("gtfsTrips", trip)).add(Restrictions.between("arrivalTime", secondsSinceMidnight, secondsSinceMidnight + 1200)).list();
     for (GtfsStopTimes stopTime : stopTimesList) {
     //for (GtfsStops stop : (List<GtfsStops>) session.createCriteria(GtfsStops.class).add(Restrictions.eq("name", "Zochova")).list()) {
     if (stopTime.getGtfsStops().getName().equalsIgnoreCase("Zochova")) {
     System.out.println("VOZIDLO ROZJEBANE cislo: " + trip.getGtfsRoutes().getShortName() + " sa prave dojebalo na zastafku -> " + stopTime.getGtfsStops().getName() + " KURVA KONECNE DOSLO O prichod " + secsToHMS(stopTime.getArrivalTime()));
     }
     }
     }
     */
    List<GtfsStops> stopList = session.createCriteria(GtfsStops.class).add(Restrictions.eq("name", "Zochova"))
            .list();
    for (GtfsStops stop : stopList) {
        List<GtfsStopTimes> stopTimesList = session.createCriteria(GtfsStopTimes.class)
                .add(Restrictions.eq("gtfsStops", stop)).add(Restrictions.between("arrivalTime",
                        secondsSinceMidnight.intValue(), secondsSinceMidnight.intValue() + 1200))
                .addOrder(Order.asc("arrivalTime")).list();
        for (GtfsStopTimes stopTimes : stopTimesList) {
            if (stopTimes.getGtfsTrips().getServiceIdId().equals("Prac.dny_0")) {
                System.out.println(stopTimes.getGtfsTrips().getGtfsRoutes().getShortName() + " "
                        + stop.getName() + " " + stopTimes.getGtfsTrips().getTripHeadsign() + " "
                        + Utils.secsToHMS(stopTimes.getArrivalTime()));
            }
        }
    }
    System.out.println((new Date().getTime() - date1.getTime()));

}

From source file:to.etc.domui.hibernate.model.CriteriaCreatingVisitor.java

License:Open Source License

@Override
public void visitBetween(final QBetweenNode n) throws Exception {
    if (n.getA().getOperation() != QOperation.LITERAL || n.getB().getOperation() != QOperation.LITERAL)
        throw new IllegalStateException("Expecting literals as 2nd and 3rd between parameter");
    QLiteral a = (QLiteral) n.getA();/*from  w  w w. j  a v a2 s.  c om*/
    QLiteral b = (QLiteral) n.getB();

    //-- If prop refers to some relation (dotted pair):
    String name = n.getProp();
    name = parseSubcriteria(name);
    m_last = Restrictions.between(name, a.getValue(), b.getValue()); // jal 20101228 was p.getProp() instead of name, which seems to be wrong.
}

From source file:top.sj.dao.impl.ArticlesDaoImpl.java

License:Open Source License

/**
 * ??// w ww .  j a  v  a  2s  .c  o m
 */
@Override
public Integer getArticlesAccordingToCreateDateSOfGetAllCountSplitPage(final String datetimePartion) {
    Integer totalCount = 0;

    // ??
    final Date startDate = CalendarTool.getFirstDateTimeFromStringDateResourceAtThisMonth(datetimePartion);

    // ???
    final Date endDate = CalendarTool.getLastDateTimeFromStringDateResourceAtThisMonth(datetimePartion);

    try {
        totalCount = super.getHibernateTemplate().execute(new HibernateCallback<Integer>() {
            public Integer doInHibernate(Session session) {

                return new Integer(session.createCriteria(SjArticles.class).setCacheable(true)
                        .add(Restrictions.between("ACreatedate", startDate, endDate))
                        .setProjection(Projections.rowCount()).uniqueResult().toString());
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
        System.err.println(e.getMessage());
    }
    return totalCount;
}