Skip to content

Commit f2c5235

Browse files
Ecf4 WSDL Split (#333)
A huge PR with little initial benefit, but has several long term benefits: * aligns how ECF 4 WSDL, XSD, and Java files are stored with how the Tyler EFM WSDLs are stored (by Tyler version) (i.e. what happened in #217. * re-combines faux-ECF 5 stuff into the same ECF 4 package, to indicate that it should be considered separate from a real ECF 5 implementation. * Actually lets us start the ECF5 package without conflicts [^1] Just given the size, PR review won't really be too useful; will want to merge and test this quite a bit and with different jurisdictions before releasing. Shouldn't sit on it too long though. Fix #282. [^1]: Similar to what's described in #217, CXF and it's XML binding library, JAXB, don't like it when a Java object differs at all from what's described in the SOAP schema. Because Tyler used a pre-release version of ECF 5 hacked onto of Illinois's ECF 4 APIs to support Court scheduling, the ECF 5 code generated is just a little bit different than the final version of the ECF 5 schema that they are using elsewhere. So we have to completely change the Java generated object for the actual ECF 5 schema, and be able to simultaneously refer to both sets of Java objects at the same time (i.e. different namespaces). This PR puts the existing pre-release ECF 5 objects into a distinct namespace, opening up us to generate the current ECF 5 code, which will make the ECF 5 features a little more available.
1 parent 70cb7fa commit f2c5235

3,571 files changed

Lines changed: 449236 additions & 146352 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Dockerfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ LABEL git-commit=$CI_COMMIT_SHA
66
COPY pom.xml /app/
77
COPY EfspCommons /app/EfspCommons/
88
COPY TylerEcf4 /app/TylerEcf4/
9-
COPY TylerEcf5 /app/TylerEcf5/
109
COPY TylerEfmClient /app/TylerEfmClient/
1110
COPY proxyserver/pom.xml proxyserver/enunciate.xml /app/proxyserver/
1211
# Install all of the maven packages, so we don't have to every time we change code

EfspCommons/src/main/java/edu/suffolk/litlab/efsp/Jurisdiction.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ public enum Jurisdiction {
1818
TEXAS("texas", Api.ECF_4, Vendor.TYLER),
1919
VERMONT("vermont", Api.ECF_4, Vendor.TYLER);
2020

21-
private enum Api {
21+
public enum Api {
2222
JEFFNET,
2323
ECF_4,
2424
// Illinois uses a custom Tyler ECF4 version, which includes a pre-release ECF 5
2525
// version of the Court Scheduling MDE.
2626
ECF_4_Schedule;
2727
}
2828

29-
private enum Vendor {
29+
public enum Vendor {
3030
JEFFERSON_PARISH,
3131
TYLER;
3232
}
@@ -49,6 +49,10 @@ public Vendor getVendor() {
4949
return vendor;
5050
}
5151

52+
public Api getApi() {
53+
return api;
54+
}
55+
5256
public static Jurisdiction parse(String value) {
5357
for (var jurisdiction : Jurisdiction.values()) {
5458
if (value.equalsIgnoreCase(jurisdiction.getName())) {

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,5 +73,4 @@ different modules for better defined interfaces. Those modules include:
7373
* [TylerEfmClient](TylerEfmClient/README.md)
7474
* [Ecf4](Ecf4/README.md)
7575
* [Ecf5](Ecf5/README.md)
76-
* [TylerEcf4](TylerEcf4/README.md)
77-
* [TylerEcf5](TylerEcf5/README.md)
76+
* [TylerEcf4](TylerEcf4/README.md)

TylerEcf4/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
<description>Generated Java files for Tyler Technologies's ECF 4 Schemas</description>
1414

1515
<dependencies>
16+
<dependency>
17+
<groupId>edu.suffolk.litlab</groupId>
18+
<artifactId>tyler-efm-client</artifactId>
19+
</dependency>
1620
<dependency>
1721
<groupId>org.apache.commons</groupId>
1822
<artifactId>commons-lang3</artifactId>
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
2+
package ecf4.latest.gov.niem.niem.ansi_d20._2;
3+
4+
import java.util.ArrayList;
5+
import java.util.List;
6+
import jakarta.xml.bind.annotation.XmlAccessType;
7+
import jakarta.xml.bind.annotation.XmlAccessorType;
8+
import jakarta.xml.bind.annotation.XmlAttribute;
9+
import jakarta.xml.bind.annotation.XmlID;
10+
import jakarta.xml.bind.annotation.XmlIDREF;
11+
import jakarta.xml.bind.annotation.XmlSchemaType;
12+
import jakarta.xml.bind.annotation.XmlType;
13+
import jakarta.xml.bind.annotation.XmlValue;
14+
import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter;
15+
import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
16+
import org.apache.commons.lang3.builder.ToStringBuilder;
17+
import org.apache.cxf.xjc.runtime.JAXBToStringStyle;
18+
19+
20+
/**
21+
* <p>Java class for AccidentSeverityCodeType complex type.
22+
*
23+
* <p>The following schema fragment specifies the expected content contained within this class.
24+
*
25+
* <pre>
26+
* &lt;complexType name="AccidentSeverityCodeType"&gt;
27+
* &lt;simpleContent&gt;
28+
* &lt;extension base="&lt;http://niem.gov/niem/ansi_d20/2.0&gt;AccidentSeverityCodeSimpleType"&gt;
29+
* &lt;attGroup ref="{http://niem.gov/niem/structures/2.0}SimpleObjectAttributeGroup"/&gt;
30+
* &lt;/extension&gt;
31+
* &lt;/simpleContent&gt;
32+
* &lt;/complexType&gt;
33+
* </pre>
34+
*
35+
*
36+
*/
37+
@XmlAccessorType(XmlAccessType.FIELD)
38+
@XmlType(name = "AccidentSeverityCodeType", propOrder = {
39+
"value"
40+
})
41+
public class AccidentSeverityCodeType {
42+
43+
@XmlValue
44+
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
45+
protected String value;
46+
@XmlAttribute(name = "id", namespace = "http://niem.gov/niem/structures/2.0")
47+
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
48+
@XmlID
49+
@XmlSchemaType(name = "ID")
50+
protected String id;
51+
@XmlAttribute(name = "metadata", namespace = "http://niem.gov/niem/structures/2.0")
52+
@XmlIDREF
53+
@XmlSchemaType(name = "IDREFS")
54+
protected List<Object> metadata;
55+
@XmlAttribute(name = "linkMetadata", namespace = "http://niem.gov/niem/structures/2.0")
56+
@XmlIDREF
57+
@XmlSchemaType(name = "IDREFS")
58+
protected List<Object> linkMetadata;
59+
60+
/**
61+
* Gets the value of the value property.
62+
*
63+
* @return
64+
* possible object is
65+
* {@link String }
66+
*
67+
*/
68+
public String getValue() {
69+
return value;
70+
}
71+
72+
/**
73+
* Sets the value of the value property.
74+
*
75+
* @param value
76+
* allowed object is
77+
* {@link String }
78+
*
79+
*/
80+
public void setValue(String value) {
81+
this.value = value;
82+
}
83+
84+
/**
85+
* Gets the value of the id property.
86+
*
87+
* @return
88+
* possible object is
89+
* {@link String }
90+
*
91+
*/
92+
public String getId() {
93+
return id;
94+
}
95+
96+
/**
97+
* Sets the value of the id property.
98+
*
99+
* @param value
100+
* allowed object is
101+
* {@link String }
102+
*
103+
*/
104+
public void setId(String value) {
105+
this.id = value;
106+
}
107+
108+
/**
109+
* Gets the value of the metadata property.
110+
*
111+
* <p>
112+
* This accessor method returns a reference to the live list,
113+
* not a snapshot. Therefore any modification you make to the
114+
* returned list will be present inside the Jakarta XML Binding object.
115+
* This is why there is not a <CODE>set</CODE> method for the metadata property.
116+
*
117+
* <p>
118+
* For example, to add a new item, do as follows:
119+
* <pre>
120+
* getMetadata().add(newItem);
121+
* </pre>
122+
*
123+
*
124+
* <p>
125+
* Objects of the following type(s) are allowed in the list
126+
* {@link Object }
127+
*
128+
*
129+
*/
130+
public List<Object> getMetadata() {
131+
if (metadata == null) {
132+
metadata = new ArrayList<Object>();
133+
}
134+
return this.metadata;
135+
}
136+
137+
/**
138+
* Gets the value of the linkMetadata property.
139+
*
140+
* <p>
141+
* This accessor method returns a reference to the live list,
142+
* not a snapshot. Therefore any modification you make to the
143+
* returned list will be present inside the Jakarta XML Binding object.
144+
* This is why there is not a <CODE>set</CODE> method for the linkMetadata property.
145+
*
146+
* <p>
147+
* For example, to add a new item, do as follows:
148+
* <pre>
149+
* getLinkMetadata().add(newItem);
150+
* </pre>
151+
*
152+
*
153+
* <p>
154+
* Objects of the following type(s) are allowed in the list
155+
* {@link Object }
156+
*
157+
*
158+
*/
159+
public List<Object> getLinkMetadata() {
160+
if (linkMetadata == null) {
161+
linkMetadata = new ArrayList<Object>();
162+
}
163+
return this.linkMetadata;
164+
}
165+
166+
/**
167+
* Generates a String representation of the contents of this type.
168+
* This is an extension method, produced by the 'ts' xjc plugin
169+
*
170+
*/
171+
@Override
172+
public String toString() {
173+
return ToStringBuilder.reflectionToString(this, JAXBToStringStyle.DEFAULT_STYLE);
174+
}
175+
176+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
2+
package ecf4.latest.gov.niem.niem.ansi_d20._2;
3+
4+
import jakarta.xml.bind.annotation.XmlEnum;
5+
import jakarta.xml.bind.annotation.XmlType;
6+
7+
8+
/**
9+
* <p>Java class for DriverLicenseClassCodeSimpleType.
10+
*
11+
* <p>The following schema fragment specifies the expected content contained within this class.
12+
* <pre>
13+
* &lt;simpleType name="DriverLicenseClassCodeSimpleType"&gt;
14+
* &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token"&gt;
15+
* &lt;enumeration value="M"/&gt;
16+
* &lt;enumeration value="B"/&gt;
17+
* &lt;enumeration value="C"/&gt;
18+
* &lt;enumeration value="A"/&gt;
19+
* &lt;/restriction&gt;
20+
* &lt;/simpleType&gt;
21+
* </pre>
22+
*
23+
*/
24+
@XmlType(name = "DriverLicenseClassCodeSimpleType")
25+
@XmlEnum
26+
public enum DriverLicenseClassCodeSimpleType {
27+
28+
29+
/**
30+
* Class "M" vehicles - Motorcycles, Mopeds, Motor-driven Cycles.
31+
*
32+
*/
33+
M,
34+
35+
/**
36+
* Class "B" vehicles - any single vehicle with a GVWR of 26,001 or more pounds, or any such vehicle towing a vehicle not in excess of 10,000 pounds GVWR [49 CFR 383.91(a)(2)]. (Holders of a Class B license may, with the appropriate endorsement, operate all Class C vehicles).
37+
*
38+
*/
39+
B,
40+
41+
/**
42+
* Class "C" vehicles - any single vehicle, or combination of vehicles, that meets neither the definition of Group A nor that of Group B, but that either is designed to transport 16 or more passengers including the driver, or is used in the transportation of materials found to be hazardous for the purposes of the Hazardous Materials Transportation Act and which require the motor vehicle to be placarded under the Hazardous Materials Regulations (49 CFR part 172, subpart F) [49 CFR 383.91(a)(3)].
43+
*
44+
*/
45+
C,
46+
47+
/**
48+
* Class "A" vehicles - any combination of vehicles with a GCWR of 26,001 or more pounds, provided the GVWR of the vehicle(s) being towed is in excess of 10,000 pounds [49 CFR 383.91(a)(1)]. (Holders of a Class A license may, with the appropriate endorsement, operate all Class B &amp; C vehicles).
49+
*
50+
*/
51+
A;
52+
53+
public String value() {
54+
return name();
55+
}
56+
57+
public static DriverLicenseClassCodeSimpleType fromValue(String v) {
58+
return valueOf(v);
59+
}
60+
61+
}

0 commit comments

Comments
 (0)