List of usage examples for org.joda.time LocalDate toDate
@SuppressWarnings("deprecation") public Date toDate()
java.util.Date
. From source file:energy.usef.mdc.repository.AggregatorConnectionRepository.java
License:Apache License
/** * Finds the active {@link AggregatorConnection} for the given connection at a given time. * * @param connectionEntityAddress {@link java.lang.String} entity address of the connection. * @param date {@link org.joda.time.LocalDate} validity date (will be evaluated as current date if <code>null</code> * ).//w ww .ja v a 2s . c o m * @return a unique {@link AggregatorConnection} or <code>null</code> if not in the database. */ public AggregatorConnection findActiveAggregatorConnectionForConnection(String connectionEntityAddress, LocalDate date) { StringBuilder sql = new StringBuilder(); sql.append("SELECT ac FROM AggregatorConnection ac "); sql.append("WHERE ac.connection.entityAddress = :connectionEntityAddress "); sql.append(" AND ac.validFrom <= :date "); sql.append(" AND (ac.validUntil is null OR ac.validUntil > :date) "); List<AggregatorConnection> resultList = getEntityManager() .createQuery(sql.toString(), AggregatorConnection.class) .setParameter("connectionEntityAddress", connectionEntityAddress) .setParameter("date", date == null ? DateTimeUtil.getCurrentDate().toDateMidnight().toDate() : date.toDateMidnight().toDate(), TemporalType.DATE) .getResultList(); if (resultList == null || resultList.isEmpty()) { return null; } return resultList.get(0); }
From source file:energy.usef.mdc.repository.AggregatorConnectionRepository.java
License:Apache License
/** * Finds the list of {@link AggregatorConnection} for the give Common Reference Operator domain. * * @param croDomain {@link java.lang.String} domain name of the Common Reference Operator. * @param date {@link org.joda.time.LocalDate} validity date (will be evaluated as current date if <code>null</code> * )./*from w w w . ja va 2 s .c om*/ * @return a {@link java.util.List} of {@link AggregatorConnection}. */ public List<AggregatorConnection> findActiveAggregatorConnectionsForCommonReferenceOperator(String croDomain, LocalDate date) { StringBuilder sql = new StringBuilder(); sql.append("SELECT ac FROM AggregatorConnection ac "); sql.append("WHERE ac.commonReferenceOperator.domain = :croDomain "); sql.append(" AND ac.validFrom <= :date "); sql.append(" AND (ac.validUntil is null OR ac.validUntil > :date) "); return getEntityManager().createQuery(sql.toString(), AggregatorConnection.class) .setParameter("croDomain", croDomain) .setParameter("date", date == null ? DateTimeUtil.getCurrentDate().toDateMidnight().toDate() : date.toDateMidnight().toDate(), TemporalType.DATE) .getResultList(); }
From source file:energy.usef.mdc.repository.AggregatorConnectionRepository.java
License:Apache License
/** * Find the list of aggregator entity addresses and domains valid on a given date for a list of connections. * * @param date//from w w w .j a v a 2 s . c o m * @param connectionEntityAddressList * @return */ @SuppressWarnings("unchecked") public Map<String, String> findAggregatorForEachConnection(LocalDate date, List<String> connectionEntityAddressList) { StringBuilder sql = new StringBuilder(); sql.append("SELECT ac.connection.entityAddress, ac.aggregator.domain "); sql.append(" FROM AggregatorConnection ac "); sql.append("WHERE ac.connection.entityAddress IN (:connectionEntityAddressList) "); sql.append(" AND ac.validFrom <= :date "); sql.append(" AND (ac.validUntil is null OR ac.validUntil > :date) "); Query query = getEntityManager().createQuery(sql.toString()); query.setParameter("date", date.toDateMidnight().toDate()); query.setParameter("connectionEntityAddressList", connectionEntityAddressList); return ((List<Object[]>) query.getResultList()).stream() .collect(Collectors.toMap(record -> (String) record[0], record -> (String) record[1])); }
From source file:energy.usef.mdc.repository.AggregatorConnectionRepository.java
License:Apache License
/** * Delete all {@link AggregatorConnection}s for a given period. * * @param period//from w w w .j a v a2 s. c o m * @return the number of {@link AggregatorConnection}s deleted. */ public int cleanup(LocalDate period) { StringBuilder sql = new StringBuilder(); sql.append("DELETE FROM AggregatorConnection ac WHERE ac.validUntil = :validUntil"); return entityManager.createQuery(sql.toString()) .setParameter("validUntil", period.toDateMidnight().toDate()).executeUpdate(); }
From source file:energy.usef.mdc.repository.CommonReferenceQueryStateRepository.java
License:Apache License
/** * Delete all {@link CommonReferenceQueryState}s for a certain date. * * @param period//from w w w .ja v a2 s. co m * @return the number of {@link CommonReferenceQueryState}s deleted. */ public int cleanup(LocalDate period) { StringBuilder sql = new StringBuilder(); sql.append("DELETE FROM CommonReferenceQueryState crqs WHERE crqs.period = :period"); return entityManager.createQuery(sql.toString()).setParameter("period", period.toDateMidnight().toDate()) .executeUpdate(); }
From source file:energy.usef.mdc.workflow.altstep.MdcMeterDataQueryStubFail.java
License:Apache License
private List<ConnectionMeterEventDto> generateConnectionMeterEventDto(String entityAddress, LocalDate day) { List<ConnectionMeterEventDto> result = new ArrayList<>(); ConnectionMeterEventDto connectionMeterEventDto1 = new ConnectionMeterEventDto(); connectionMeterEventDto1.setEntityAddress(entityAddress); LocalDateTime eventDateTime1 = new LocalDateTime(day.toDateMidnight().toDate()) .plusMinutes(RANDOM.nextInt(MINUTES_PER_HOUR)); connectionMeterEventDto1.setEventDateTime(eventDateTime1); result.add(connectionMeterEventDto1); ConnectionMeterEventDto connectionMeterEventDto2 = new ConnectionMeterEventDto(); connectionMeterEventDto2.setEntityAddress(entityAddress); LocalDateTime eventDateTime2 = new LocalDateTime(day.toDateMidnight().toDate()) .plusMinutes(MINUTES_PER_HOUR + 1 + RANDOM.nextInt(MINUTES_PER_HOUR)); connectionMeterEventDto2.setEventDateTime(eventDateTime2); int randomInt = 1; if (randomInt == 0) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CAPACITY_MANAGEMENT); BigInteger eventData = BigInteger.valueOf(generateRandomNumber(-500, 500)); connectionMeterEventDto1.setEventData(eventData); connectionMeterEventDto2.setEventType(MeterEventTypeDto.CAPACITY_MANAGEMENT); result.add(connectionMeterEventDto2); } else if (randomInt == 1) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CONNECTION_INTERRUPTION); connectionMeterEventDto2.setEventType(MeterEventTypeDto.CONNECTION_RESUMPTION); result.add(connectionMeterEventDto2); } else if (randomInt == 2) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CAPACITY_MANAGEMENT); if (RANDOM.nextBoolean()) { BigInteger eventData = BigInteger.valueOf(generateRandomNumber(-500, 500)); connectionMeterEventDto1.setEventData(eventData); }/*w ww . j a v a 2s . co m*/ } else if (randomInt == 3) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CONNECTION_INTERRUPTION); } else { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CONNECTION_RESUMPTION); } return result; }
From source file:energy.usef.mdc.workflow.altstep.MdcMeterDataQueryStubFixedActual.java
License:Apache License
private List<ConnectionMeterEventDto> generateConnectionMeterEventDto(String entityAddress, LocalDate day) { List<ConnectionMeterEventDto> result = new ArrayList<>(); ConnectionMeterEventDto connectionMeterEventDto1 = new ConnectionMeterEventDto(); connectionMeterEventDto1.setEntityAddress(entityAddress); LocalDateTime eventDateTime1 = new LocalDateTime(day.toDateMidnight().toDate()) .plusMinutes(RANDOM.nextInt(MINUTES_PER_HOUR)); connectionMeterEventDto1.setEventDateTime(eventDateTime1); result.add(connectionMeterEventDto1); ConnectionMeterEventDto connectionMeterEventDto2 = new ConnectionMeterEventDto(); connectionMeterEventDto2.setEntityAddress(entityAddress); LocalDateTime eventDateTime2 = new LocalDateTime(day.toDateMidnight().toDate()) .plusMinutes(MINUTES_PER_HOUR + 1 + RANDOM.nextInt(MINUTES_PER_HOUR)); connectionMeterEventDto2.setEventDateTime(eventDateTime2); int randomInt = RANDOM.nextInt(FLIP_THE_COIN_SIDES); if (randomInt == 0) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CAPACITY_MANAGEMENT); BigInteger eventData = BigInteger.valueOf(generateRandomNumber(-500, 500)); connectionMeterEventDto1.setEventData(eventData); connectionMeterEventDto2.setEventType(MeterEventTypeDto.CAPACITY_MANAGEMENT); result.add(connectionMeterEventDto2); } else if (randomInt == 1) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CONNECTION_INTERRUPTION); connectionMeterEventDto2.setEventType(MeterEventTypeDto.CONNECTION_RESUMPTION); result.add(connectionMeterEventDto2); } else if (randomInt == 2) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CAPACITY_MANAGEMENT); if (RANDOM.nextBoolean()) { BigInteger eventData = BigInteger.valueOf(generateRandomNumber(-500, 500)); connectionMeterEventDto1.setEventData(eventData); }/* w w w . j a va 2 s .c o m*/ } else if (randomInt == 3) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CONNECTION_INTERRUPTION); } else { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CONNECTION_RESUMPTION); } return result; }
From source file:energy.usef.mdc.workflow.altstep.MdcMeterDataQueryStubSuccess.java
License:Apache License
private List<ConnectionMeterEventDto> generateConnectionMeterEventDto(String entityAddress, LocalDate day) { List<ConnectionMeterEventDto> result = new ArrayList<>(); ConnectionMeterEventDto connectionMeterEventDto1 = new ConnectionMeterEventDto(); connectionMeterEventDto1.setEntityAddress(entityAddress); LocalDateTime eventDateTime1 = new LocalDateTime(day.toDateMidnight().toDate()) .plusMinutes(RANDOM.nextInt(MINUTES_PER_HOUR)); connectionMeterEventDto1.setEventDateTime(eventDateTime1); result.add(connectionMeterEventDto1); ConnectionMeterEventDto connectionMeterEventDto2 = new ConnectionMeterEventDto(); connectionMeterEventDto2.setEntityAddress(entityAddress); LocalDateTime eventDateTime2 = new LocalDateTime(day.toDateMidnight().toDate()) .plusMinutes(MINUTES_PER_HOUR + 1 + RANDOM.nextInt(MINUTES_PER_HOUR)); connectionMeterEventDto2.setEventDateTime(eventDateTime2); int randomInt = 0; if (randomInt == 0) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CAPACITY_MANAGEMENT); BigInteger eventData = BigInteger.valueOf(generateRandomNumber(-500, 500)); connectionMeterEventDto1.setEventData(eventData); connectionMeterEventDto2.setEventType(MeterEventTypeDto.CAPACITY_MANAGEMENT); result.add(connectionMeterEventDto2); } else if (randomInt == 1) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CONNECTION_INTERRUPTION); connectionMeterEventDto2.setEventType(MeterEventTypeDto.CONNECTION_RESUMPTION); result.add(connectionMeterEventDto2); } else if (randomInt == 2) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CAPACITY_MANAGEMENT); if (RANDOM.nextBoolean()) { BigInteger eventData = BigInteger.valueOf(generateRandomNumber(-500, 500)); connectionMeterEventDto1.setEventData(eventData); }// www . jav a2 s .co m } else if (randomInt == 3) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CONNECTION_INTERRUPTION); } else { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CONNECTION_RESUMPTION); } return result; }
From source file:energy.usef.mdc.workflow.step.MdcMeterDataQueryStub.java
License:Apache License
private List<ConnectionMeterEventDto> generateConnectionMeterEventDto(String entityAddress, LocalDate day) { List<ConnectionMeterEventDto> result = new ArrayList<>(); ConnectionMeterEventDto connectionMeterEventDto1 = new ConnectionMeterEventDto(); connectionMeterEventDto1.setEntityAddress(entityAddress); LocalDateTime eventDateTime1 = new LocalDateTime(day.toDateMidnight().toDate()) .plusMinutes(RANDOM.nextInt(MINUTES_PER_HOUR)); connectionMeterEventDto1.setEventDateTime(eventDateTime1); result.add(connectionMeterEventDto1); ConnectionMeterEventDto connectionMeterEventDto2 = new ConnectionMeterEventDto(); connectionMeterEventDto2.setEntityAddress(entityAddress); LocalDateTime eventDateTime2 = new LocalDateTime(day.toDateMidnight().toDate()) .plusMinutes(MINUTES_PER_HOUR + 1 + RANDOM.nextInt(MINUTES_PER_HOUR)); connectionMeterEventDto2.setEventDateTime(eventDateTime2); int randomInt = RANDOM.nextInt(EVENT_TYPE_CASES_AMOUNT); if (randomInt == CAPACITY_MANAGEMENT_ONLY) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CAPACITY_MANAGEMENT); BigInteger eventData = BigInteger .valueOf(generateRandomNumber(MIN_UNCONTROLLED_LOAD, MAX_UNCONTROLLED_LOAD)); connectionMeterEventDto1.setEventData(eventData); connectionMeterEventDto2.setEventType(MeterEventTypeDto.CAPACITY_MANAGEMENT); result.add(connectionMeterEventDto2); } else if (randomInt == CONNECTION_INTERRUPTION_AND_RESUMPTION) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CONNECTION_INTERRUPTION); connectionMeterEventDto2.setEventType(MeterEventTypeDto.CONNECTION_RESUMPTION); result.add(connectionMeterEventDto2); } else if (randomInt == CAPACITY_MANAGEMENT_WITH_RANDOM) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CAPACITY_MANAGEMENT); if (RANDOM.nextBoolean()) { BigInteger eventData = BigInteger.valueOf(generateRandomNumber(MIN_POWER, MAX_POWER)); connectionMeterEventDto1.setEventData(eventData); }/*from www. j a v a2 s. c o m*/ } else if (randomInt == CONNECTION_INTERRUPTION_ONLY) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CONNECTION_INTERRUPTION); } else if (randomInt == CONNECTION_RESUMPTION_ONLY) { connectionMeterEventDto1.setEventType(MeterEventTypeDto.CONNECTION_RESUMPTION); } return result; }
From source file:energy.usef.pbcfeeder.PbcFeeder.java
License:Apache License
/** * @param date/*from w w w . j a v a 2s .c om*/ * @param startPtuIndex of the list starting from 1 till 96 (PTU_PER_DAY). * @param amount * @return */ public List<PbcStubDataDto> getStubRowInputList(LocalDate date, int startPtuIndex, int amount) { if (startPtuIndex > PTU_PER_DAY) { date = date.plusDays((int) Math.floor(startPtuIndex / PTU_PER_DAY)); startPtuIndex = startPtuIndex % PTU_PER_DAY; } // Match PTU-index with requested startIndex and date from ExcelSheet. LocalDate epochDate = new LocalDate("1970-01-01"); int daysDif = Days.daysBetween(epochDate, date).getDays(); int ptuOffset = (daysDif % DAYS_IN_SPREADSHEET) * PTU_PER_DAY + startPtuIndex - 1; List<PbcStubDataDto> pbcStubDataDtoList = new ArrayList<>(); // Loop over stubRowInputList, if necessary, to get requested amount of ptus. do { int toIndex = 0; if (ptuOffset + amount > stubRowInputList.size()) { toIndex = stubRowInputList.size(); } else { toIndex = ptuOffset + amount; } amount -= (toIndex - ptuOffset); pbcStubDataDtoList.addAll(stubRowInputList.subList(ptuOffset, toIndex)); ptuOffset = 0; } while (amount > 0); // Create and set PtuContainer for pbcStubDataDto. int lastPtuIndex = 0; for (PbcStubDataDto pbcStubDataDto : pbcStubDataDtoList) { int ptuIndex = pbcStubDataDto.getIndex() % PTU_PER_DAY; if (ptuIndex == 0) { ptuIndex = PTU_PER_DAY; } if (ptuIndex < lastPtuIndex) { date = date.plusDays(1); } PbcPtuContainerDto ptuContainerDto = new PbcPtuContainerDto(date.toDateMidnight().toDate(), ptuIndex); pbcStubDataDto.setPtuContainer(ptuContainerDto); lastPtuIndex = ptuIndex; } return pbcStubDataDtoList; }