Skip to content
This repository was archived by the owner on Jul 1, 2025. It is now read-only.

Commit de3f002

Browse files
committed
Merge pull request #48 from jateeter/master
See Individual Commit Comments (XPath Scoping, "Z" formatting, ROOT versions only for Time/ReadingType
2 parents e573855 + e6c930d commit de3f002

29 files changed

Lines changed: 460 additions & 136 deletions

src/main/java/org/energyos/espi/common/domain/ElectricPowerQualitySummary.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,10 @@
9292
@NamedQuery(name = ElectricPowerQualitySummary.QUERY_FIND_ALL_IDS_BY_USAGE_POINT_ID,
9393
query = "SELECT summary.id FROM ElectricPowerQualitySummary summary WHERE summary.usagePoint.id = :usagePointId"),
9494
@NamedQuery(name = ElectricPowerQualitySummary.QUERY_FIND_ALL_IDS,
95-
query = "SELECT electricPowerQualitySummary.id FROM ElectricPowerQualitySummary electricPowerQualitySummary")
95+
query = "SELECT electricPowerQualitySummary.id FROM ElectricPowerQualitySummary electricPowerQualitySummary"),
96+
@NamedQuery(name = ElectricPowerQualitySummary.QUERY_FIND_ALL_IDS_BY_XPATH_2, query = "SELECT e.id FROM UsagePoint u, ElectricPowerQualitySummary e WHERE u.retailCustomer.id = :o1Id AND e.usagePoint.id = :o2Id"),
97+
@NamedQuery(name = ElectricPowerQualitySummary.QUERY_FIND_ID_BY_XPATH, query = "SELECT e.id FROM UsagePoint u, ElectricPowerQualitySummary e WHERE u.retailCustomer.id = :o1Id AND e.usagePoint.id = :o2Id AND e.id = :o3Id")
98+
9699
})
97100
public class ElectricPowerQualitySummary
98101
extends IdentifiedObject
@@ -102,6 +105,8 @@ public class ElectricPowerQualitySummary
102105
public static final String QUERY_FIND_BY_UUID = "ElectricPowerQualitySummary.findByUUID";
103106
public static final String QUERY_FIND_ALL_IDS_BY_USAGE_POINT_ID = "ElectricPowerQualitySummary.findAllIdsByUsagePointId";
104107
public static final String QUERY_FIND_ALL_IDS = "ElectricPowerQualitySummary.findAllIds";
108+
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_2 = "ElectricPowerQualitySummary.findAllIdsByXpath2";
109+
public static final String QUERY_FIND_ID_BY_XPATH = "ElectricPowerQualitySummary.findIdByXpath";
105110

106111
protected Long flickerPlt;
107112
protected Long flickerPst;

src/main/java/org/energyos/espi/common/domain/ElectricPowerUsageSummary.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,9 @@
108108
@NamedQuery(name = ElectricPowerUsageSummary.QUERY_FIND_ALL_IDS_BY_USAGE_POINT_ID,
109109
query = "SELECT summary.id FROM ElectricPowerUsageSummary summary WHERE summary.usagePoint.id = :usagePointId"),
110110
@NamedQuery(name = ElectricPowerUsageSummary.QUERY_FIND_ALL_IDS,
111-
query = "SELECT electricPowerUsageSummary.id FROM ElectricPowerUsageSummary electricPowerUsageSummary")
111+
query = "SELECT electricPowerUsageSummary.id FROM ElectricPowerUsageSummary electricPowerUsageSummary"),
112+
@NamedQuery(name = ElectricPowerUsageSummary.QUERY_FIND_ALL_IDS_BY_XPATH_2, query = "SELECT e.id FROM UsagePoint u, ElectricPowerUsageSummary e WHERE u.retailCustomer.id = :o1Id AND e.usagePoint.id = :o2Id"),
113+
@NamedQuery(name = ElectricPowerUsageSummary.QUERY_FIND_ID_BY_XPATH, query = "SELECT e.id FROM UsagePoint u, ElectricPowerUsageSummary e WHERE u.retailCustomer.id = :o1Id AND e.usagePoint.id = :o2Id AND e.id = :o3Id")
112114

113115
})
114116
public class ElectricPowerUsageSummary
@@ -119,6 +121,8 @@ public class ElectricPowerUsageSummary
119121
public static final String QUERY_FIND_BY_UUID = "ElectricPowerUsageSummary.findByUUID";
120122
public static final String QUERY_FIND_ALL_IDS_BY_USAGE_POINT_ID = "ElectricPowerUsageSummary.findAllIdsByUsagePointId";
121123
public static final String QUERY_FIND_ALL_IDS = "ElectricPowerUsageSummary.findAllIds";
124+
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_2 = "ElectricPowerUsageSummary.findAllIdsByXpath2";
125+
public static final String QUERY_FIND_ID_BY_XPATH = "ElectricPowerUsageSummary.findIdByXpath";
122126

123127
protected Long billLastPeriod;
124128
protected Long billToDate;

src/main/java/org/energyos/espi/common/domain/IntervalBlock.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,8 @@
7575
query = "SELECT block.id FROM IntervalBlock block where block.meterReading.usagePoint.id = :usagePointId"),
7676
@NamedQuery(name = IntervalBlock.QUERY_FIND_ALL_IDS,
7777
query = "SELECT intervalBlock.id FROM IntervalBlock intervalBlock"),
78-
@NamedQuery(name = IntervalBlock.QUERY_FIND_ALL_IDS_BY_XPATH_1, query = "SELECT u.id FROM UsagePoint u WHERE u.retailCustomer.id = :retailCustomerId"),
79-
@NamedQuery(name = IntervalBlock.QUERY_FIND_ALL_IDS_BY_XPATH_2, query = "SELECT m.id FROM UsagePoint u, MeterReading m WHERE u.retailCustomer.id = :retailCustomerId AND m.usagePoint.id = :usagePointId"),
80-
@NamedQuery(name = IntervalBlock.QUERY_FIND_ALL_IDS_BY_XPATH_3, query = "SELECT i.id FROM UsagePoint u, MeterReading m, IntervalBlock i WHERE u.retailCustomer.id = :retailCustomerId AND m.usagePoint.id = :usagePointId AND i.meterReading.id = :meterReadingId")
78+
@NamedQuery(name = IntervalBlock.QUERY_FIND_ALL_IDS_BY_XPATH_3, query = "SELECT DISTINCT i.id FROM UsagePoint u, MeterReading m, IntervalBlock i WHERE u.retailCustomer.id = :o1Id AND m.usagePoint.id = :o2Id AND i.meterReading.id = :o3Id"),
79+
@NamedQuery(name = IntervalBlock.QUERY_FIND_ID_BY_XPATH, query = "SELECT DISTINCT i.id FROM UsagePoint u, MeterReading m, IntervalBlock i WHERE u.retailCustomer.id = :o1Id AND m.usagePoint.id = :o2Id AND i.meterReading.id = :o3Id AND i.id = :o4Id")
8180

8281
})
8382
@XmlRootElement(name = "IntervalBlock")
@@ -93,6 +92,7 @@ public class IntervalBlock
9392
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_1 = "IntervalBlock.findAllIdsByXpath1";
9493
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_2 = "IntervalBlock.findAllIdsByXpath2";
9594
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_3 = "IntervalBlock.findAllIdsByXpath3";
95+
public static final String QUERY_FIND_ID_BY_XPATH = "IntervalBlock.findIdByXpath";
9696

9797
@Embedded
9898
protected DateTimeInterval interval;

src/main/java/org/energyos/espi/common/domain/MeterReading.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,8 @@
7272
query = "SELECT reading.id FROM MeterReading reading WHERE reading.usagePoint.id = :usagePointId"),
7373
@NamedQuery(name = MeterReading.QUERY_FIND_ALL_IDS,
7474
query = "SELECT meterReading.id FROM MeterReading meterReading"),
75-
@NamedQuery(name = MeterReading.QUERY_FIND_ALL_IDS_BY_XPATH_1, query = "SELECT u.id FROM UsagePoint u WHERE u.retailCustomer.id = :retailCustomerId"),
76-
@NamedQuery(name = MeterReading.QUERY_FIND_ALL_IDS_BY_XPATH_2, query = "SELECT m.id FROM UsagePoint u, MeterReading m WHERE u.retailCustomer.id = :retailCustomerId AND m.usagePoint.id = :usagePointId"),
77-
@NamedQuery(name = MeterReading.QUERY_FIND_ALL_IDS_BY_XPATH_3, query = "SELECT i.id FROM UsagePoint u, MeterReading m, IntervalBlock i WHERE u.retailCustomer.id = :retailCustomerId AND m.usagePoint.id = :usagePointId AND i.meterReading.id = :meterReadingId")
75+
@NamedQuery(name = MeterReading.QUERY_FIND_ALL_IDS_BY_XPATH_2, query = "SELECT DISTINCT m.id FROM UsagePoint u, MeterReading m WHERE u.retailCustomer.id = :o1Id AND m.usagePoint.id = :o2Id"),
76+
@NamedQuery(name = MeterReading.QUERY_FIND_ID_BY_XPATH, query = "SELECT DISTINCT m.id FROM UsagePoint u, MeterReading m WHERE u.retailCustomer.id = :o1Id AND m.usagePoint.id = :o2Id AND m.id = :o3Id")
7877

7978
})
8079
public class MeterReading extends IdentifiedObject
@@ -85,10 +84,9 @@ public class MeterReading extends IdentifiedObject
8584
public static final String QUERY_FIND_ALL_RELATED = "MeterReading.findAllRelated";
8685
public static final String QUERY_FIND_ALL_IDS_BY_USAGE_POINT_ID = "MeterReading.findAllIdsByUsagePointId";
8786
public static final String QUERY_FIND_ALL_IDS = "MeterReading.findAllIds";
88-
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_1 = "MeterReading.findAllIdsByXpath1";
8987
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_2 = "MeterReading.findAllIdsByXpath2";
90-
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_3 = "MeterReading.findAllIdsByXpath3";
91-
88+
public static final String QUERY_FIND_ID_BY_XPATH = "MeterReading.findIdByXpath";
89+
9290
@OneToMany(mappedBy = "meterReading", cascade = CascadeType.ALL)
9391
@LazyCollection(LazyCollectionOption.TRUE)
9492
@XmlTransient

src/main/java/org/energyos/espi/common/domain/RetailCustomer.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,9 @@
4848
@NamedQuery(name = RetailCustomer.QUERY_FIND_ALL, query = "SELECT customer FROM RetailCustomer customer"),
4949
@NamedQuery(name = RetailCustomer.QUERY_FIND_BY_USERNAME, query = "SELECT customer FROM RetailCustomer customer WHERE customer.username = :username"),
5050
@NamedQuery(name = RetailCustomer.QUERY_FIND_ALL_IDS, query = "SELECT retailCustomer.id FROM RetailCustomer retailCustomer"),
51-
@NamedQuery(name = RetailCustomer.QUERY_FIND_ALL_IDS_BY_XPATH_1, query = "SELECT u.id FROM UsagePoint u WHERE u.retailCustomer.id = :retailCustomerId"),
52-
@NamedQuery(name = RetailCustomer.QUERY_FIND_ALL_IDS_BY_XPATH_2, query = "SELECT m.id FROM UsagePoint u, MeterReading m WHERE u.retailCustomer.id = :retailCustomerId AND m.usagePoint.id = :usagePointId"),
53-
@NamedQuery(name = RetailCustomer.QUERY_FIND_ALL_IDS_BY_XPATH_3, query = "SELECT i.id FROM UsagePoint u, MeterReading m, IntervalBlock i WHERE u.retailCustomer.id = :retailCustomerId AND m.usagePoint.id = :usagePointId AND i.meterReading.id = :meterReadingId")
51+
@NamedQuery(name = RetailCustomer.QUERY_FIND_ALL_IDS_BY_XPATH_0, query = "SELECT DISTINCT r.id FROM RetailCustomer r"),
52+
@NamedQuery(name = RetailCustomer.QUERY_FIND_ID_BY_XPATH, query = "SELECT DISTINCT r.id FROM RetailCustomer r WHERE r.id = :o1Id")
5453

55-
5654
})
5755

5856
public class RetailCustomer implements UserDetails, Principal{
@@ -61,10 +59,9 @@ public class RetailCustomer implements UserDetails, Principal{
6159
public final static String QUERY_FIND_ALL = "RetailCustomer.findAll";
6260
public final static String QUERY_FIND_BY_USERNAME = "RetailCustomer.findByUsername";
6361
public static final String QUERY_FIND_ALL_IDS = "RetailCustomer.findAllIds";
64-
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_1 = "RetailCustomer.findAllIdsByXpath1";
65-
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_2 = "RetailCustomer.findAllIdsByXpath2";
66-
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_3 = "RetailCustomer.findAllIdsByXpath3";
67-
62+
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_0 = "RetailCustomer.findAllIdsByXpath0";
63+
public static final String QUERY_FIND_ID_BY_XPATH = "RetailCustomer.findIdsByXpath";
64+
6865
public final static String ROLE_USER = "ROLE_USER";
6966
public final static String ROLE_CUSTODIAN = "ROLE_CUSTODIAN";
7067

src/main/java/org/energyos/espi/common/domain/UsagePoint.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2013 EnergyOS.org
2+
* Copyright 2013, 2014 EnergyOS.org
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -89,9 +89,8 @@
8989
@NamedQuery(name = UsagePoint.QUERY_FIND_ALL_IDS_FOR_RETAIL_CUSTOMER,
9090
query = "SELECT point.id from UsagePoint point where point.retailCustomer.id = :retailCustomerId"),
9191
@NamedQuery(name = UsagePoint.QUERY_FIND_ALL_IDS, query = "SELECT point.id from UsagePoint point"),
92-
@NamedQuery(name = UsagePoint.QUERY_FIND_ALL_IDS_BY_XPATH_1, query = "SELECT u.id FROM UsagePoint u WHERE u.retailCustomer.id = :retailCustomerId"),
93-
@NamedQuery(name = UsagePoint.QUERY_FIND_ALL_IDS_BY_XPATH_2, query = "SELECT m.id FROM UsagePoint u, MeterReading m WHERE u.retailCustomer.id = :retailCustomerId AND m.usagePoint.id = :usagePointId"),
94-
@NamedQuery(name = UsagePoint.QUERY_FIND_ALL_IDS_BY_XPATH_3, query = "SELECT i.id FROM UsagePoint u, MeterReading m, IntervalBlock i WHERE u.retailCustomer.id = :retailCustomerId AND m.usagePoint.id = :usagePointId AND i.meterReading.id = :meterReadingId")
92+
@NamedQuery(name = UsagePoint.QUERY_FIND_ALL_IDS_BY_XPATH_1, query = "SELECT DISTINCT u.id FROM UsagePoint u WHERE u.retailCustomer.id = :o1Id"),
93+
@NamedQuery(name = UsagePoint.QUERY_FIND_ID_BY_XPATH, query = "SELECT DISTINCT u.id FROM UsagePoint u WHERE u.retailCustomer.id = :o1Id AND u.id = :o2Id")
9594

9695
})
9796

@@ -109,9 +108,9 @@ public class UsagePoint
109108
public static final String QUERY_FIND_ALL_IDS_FOR_RETAIL_CUSTOMER = "UsagePoint.findAllIdsForRetailCustomer";
110109
public static final String QUERY_FIND_ALL_IDS = "UsagePoint.findAllIds";
111110
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_1 = "UsagePoint.findAllIdsByXpath1";
112-
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_2 = "UsagePoint.findAllIdsByXpath2";
113-
public static final String QUERY_FIND_ALL_IDS_BY_XPATH_3 = "UsagePoint.findAllIdsByXpath3";
111+
public static final String QUERY_FIND_ID_BY_XPATH = "UsagePoint.findIdByXpath";
114112

113+
115114
@XmlElement(type = String.class)
116115
@XmlJavaTypeAdapter(HexBinaryAdapter.class)
117116
protected byte[] roleFlags;

src/main/java/org/energyos/espi/common/models/atom/ContentType.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,12 +572,17 @@ public String buildSelfHref(String hrefFragment) {
572572
+ this.getIntervalBlocks().get(0).getId();
573573
}
574574
if (this.getLocalTimeParameters() != null) {
575+
// here, we assume "result" has got the right mutated hrefFragment ...
576+
return result + "/LocalTimeParameters/" + this.getLocalTimeParameters().getId();
577+
/*
578+
* // if one had a normal structure, one would have ...
575579
UsagePoint usagePoint = this.getLocalTimeParameters()
576580
.getUsagePoint();
577581
RetailCustomer retailCustomer = usagePoint.getRetailCustomer();
578582
return result + "/" + usagePoint.getId()
579583
+ "/LocalTimeParameters/"
580584
+ this.getLocalTimeParameters().getId();
585+
*/
581586
}
582587
if (this.getMeterReading() != null) {
583588
UsagePoint usagePoint = this.getMeterReading().getUsagePoint();
@@ -586,13 +591,19 @@ public String buildSelfHref(String hrefFragment) {
586591
+ this.getMeterReading().getId();
587592
}
588593
if (this.getReadingType() != null) {
594+
// here, we assume "result" has got the right mutated hrefFragment ...
595+
return result + "/ReadingType/" + this.getReadingType().getId();
596+
/*
597+
* // if one had a normal structure, one would have ...
598+
589599
MeterReading meterReading = this.getReadingType()
590600
.getMeterReading();
591601
UsagePoint usagePoint = meterReading.getUsagePoint();
592602
RetailCustomer retailCustomer = usagePoint.getRetailCustomer();
593603
return result + "/" + usagePoint.getId() + "/MeterReading/"
594604
+ meterReading.getId() + "/ReadingType/"
595605
+ this.getReadingType().getId();
606+
*/
596607
}
597608
if (this.getRetailCustomer() != null) {
598609
return result + "/" + this.getRetailCustomer().getId();
@@ -631,6 +642,7 @@ public List<String> buildRelHref(String hrefFragment) {
631642
temp = temp + "/" + usagePoint.getId() + "/MeterReading/" + this.getMeterReading().getId();
632643
}
633644
result.add(temp + "/IntervalBlock");
645+
temp = temp.substring(0, temp.indexOf("/RetailCustomer"));
634646
result.add(temp + "/ReadingType/" + readingType.getId());
635647
}
636648

@@ -646,6 +658,9 @@ public List<String> buildRelHref(String hrefFragment) {
646658
result.add(temp + "/MeterReading");
647659
if (!(qualityList.isEmpty())) result.add(temp + "/ElectricPowerQualitySummary");
648660
if (!(usageList.isEmpty())) result.add(temp + "/ElectricPowerUsageSummary");
661+
// for LocalTimeParameters - maket it a ROOT access
662+
//
663+
temp = temp.substring(0, temp.indexOf("/RetailCustomer"));
649664
result.add(temp + "/LocalTimeParameters/" + timeConfiguration.getId());
650665
}
651666
/*

src/main/java/org/energyos/espi/common/models/atom/adapters/DateTimeAdapter.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.energyos.espi.common.models.atom.adapters;
1818

19+
import java.text.SimpleDateFormat;
20+
1921
import org.energyos.espi.common.models.atom.DateTimeType;
2022
import org.joda.time.DateTime;
2123
import org.joda.time.DateTimeZone;
@@ -32,6 +34,9 @@ public DateTime unmarshal(JAXBElement<DateTimeType> v) throws Exception {
3234

3335
@Override
3436
public JAXBElement<DateTimeType> marshal(DateTime v) throws Exception {
37+
SimpleDateFormat fmt = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" );
38+
39+
String dateFormatted = fmt.format(v.toDate());
3540
return null;
3641
}
3742
}

src/main/java/org/energyos/espi/common/repositories/ResourceRepository.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,15 @@ public interface ResourceRepository {
3232

3333
<T extends IdentifiedObject> List<Long> findAllIdsByXPath(Long id1, Long id2, Long id3, Class<T> clazz);
3434

35+
<T extends IdentifiedObject> List<Long> findAllIdsByXPath(Class<T> clazz);
36+
37+
<T extends IdentifiedObject> Long findIdByXPath(Long id1, Class<T> clazz);
38+
39+
<T extends IdentifiedObject> Long findIdByXPath(Long id1, Long id2, Class<T> clazz);
40+
41+
<T extends IdentifiedObject> Long findIdByXPath(Long id1, Long id2, Long id3, Class<T> clazz);
42+
43+
<T extends IdentifiedObject> Long findIdByXPath(Long id1, Long id2, Long id3, Long id4, Class<T> clazz);
44+
45+
3546
}

0 commit comments

Comments
 (0)