Skip to content

Commit 7144715

Browse files
committed
Issue #3, #4, #5, #6.
1 parent 99de930 commit 7144715

File tree

19 files changed

+331
-202
lines changed

19 files changed

+331
-202
lines changed

basic/src/main/java/org/jvnet/jaxb2_commons/plugin/simplify/SimplifyPlugin.java

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,7 @@ public void setIgnoring(Ignoring ignoring) {
6262
@Override
6363
public Collection<QName> getCustomizationElementNames() {
6464
return Arrays
65-
.asList(
66-
org.jvnet.jaxb2_commons.plugin.simplify.Customizations.PROPERTY_ELEMENT_NAME,
65+
.asList(org.jvnet.jaxb2_commons.plugin.simplify.Customizations.PROPERTY_ELEMENT_NAME,
6766
org.jvnet.jaxb2_commons.plugin.simplify.Customizations.AS_ELEMENT_PROPERTY_ELEMENT_NAME,
6867
org.jvnet.jaxb2_commons.plugin.simplify.Customizations.AS_REFERENCE_PROPERTY_ELEMENT_NAME,
6968
org.jvnet.jaxb2_commons.plugin.simplify.Customizations.IGNORED_ELEMENT_NAME,
@@ -211,8 +210,13 @@ private void simplifyReferencePropertyInfoAsElementPropertyInfo(
211210
property, element, (CClassInfo) element);
212211

213212
} else if (element instanceof CClassRef) {
214-
elementPropertyInfo = createElementPropertyInfo(model,
215-
property, element, (CClassRef) element);
213+
logger.error(MessageFormat
214+
.format("Element reference property [{0}] contains a class reference type [{1}] and therefore cannot be fully simplified as element property.",
215+
property.getName(false),
216+
((CClassRef) element).fullName()));
217+
elementPropertyInfo = null;
218+
// createElementPropertyInfo(model,
219+
// property, element, (CClassRef) element);
216220
} else {
217221
// TODO WARN
218222
elementPropertyInfo = null;
@@ -264,22 +268,22 @@ private CElementPropertyInfo createElementPropertyInfo(final Model model,
264268
return elementPropertyInfo;
265269
}
266270

267-
private CElementPropertyInfo createElementPropertyInfo(final Model model,
268-
CReferencePropertyInfo property, CElement element,
269-
final CClassRef classInfo) {
270-
final CElementPropertyInfo elementPropertyInfo;
271-
final String propertyName = createPropertyName(model, element);
272-
elementPropertyInfo = new CElementPropertyInfo(propertyName,
273-
property.isCollection() ? CollectionMode.REPEATED_ELEMENT
274-
: CollectionMode.NOT_REPEATED, ID.NONE, null,
275-
element.getSchemaComponent(), element.getCustomizations(),
276-
element.getLocator(), false);
277-
elementPropertyInfo.getTypes().add(
278-
new CTypeRef(classInfo, element.getElementName(), classInfo
279-
.getTypeName(), false, null));
280-
return elementPropertyInfo;
281-
}
282-
271+
// private CElementPropertyInfo createElementPropertyInfo(final Model model,
272+
// CReferencePropertyInfo property, CElement element,
273+
// final CClassRef classInfo) {
274+
// final CElementPropertyInfo elementPropertyInfo;
275+
// final String propertyName = createPropertyName(model, element);
276+
// elementPropertyInfo = new CElementPropertyInfo(propertyName,
277+
// property.isCollection() ? CollectionMode.REPEATED_ELEMENT
278+
// : CollectionMode.NOT_REPEATED, ID.NONE, null,
279+
// element.getSchemaComponent(), element.getCustomizations(),
280+
// element.getLocator(), false);
281+
// elementPropertyInfo.getTypes().add(
282+
// new CTypeRef(classInfo, element.getElementName(), classInfo
283+
// .getTypeName(), false, null));
284+
// return elementPropertyInfo;
285+
// }
286+
//
283287
private CReferencePropertyInfo createReferencePropertyInfo(
284288
final Model model, CReferencePropertyInfo property, CElement element) {
285289
final String propertyName = createPropertyName(model, element);
@@ -295,7 +299,7 @@ private CReferencePropertyInfo createReferencePropertyInfo(
295299

296300
private CReferencePropertyInfo createContentReferencePropertyInfo(
297301
final Model model, CReferencePropertyInfo property) {
298-
final String propertyName = "content";
302+
final String propertyName = "Mixed" + property.getName(true);
299303
final CReferencePropertyInfo referencePropertyInfo = new CReferencePropertyInfo(
300304
propertyName, /* collection */true, /* required */false, /* mixed */
301305
true, property.getSchemaComponent(),
@@ -320,8 +324,16 @@ private CElementPropertyInfo createElementPropertyInfo(final Model model,
320324
}
321325

322326
private String createPropertyName(final Model model, CElement element) {
327+
final String localPart;
328+
if (element instanceof CClassRef) {
329+
final CClassRef classRef = (CClassRef) element;
330+
final String fullName = classRef.fullName();
331+
localPart = fullName.substring(fullName.lastIndexOf('.') + 1);
332+
} else {
333+
localPart = element.getElementName().getLocalPart();
334+
}
323335
final String propertyName = model.getNameConverter().toPropertyName(
324-
element.getElementName().getLocalPart());
336+
localPart);
325337
return propertyName;
326338
}
327339

tests/issues/pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
<arg>-XautoInheritance-xmlRootElementsImplement=org.jvnet.jaxb2_commons.tests.issues.IssueJIIB14BaseInterfaceTwo</arg>
4949
<arg>-XautoInheritance-jaxbElementsImplement=org.jvnet.jaxb2_commons.tests.issues.IssueJIIB14BaseInterfaceThree</arg>
5050
<arg>-XautoInheritance-jaxbElementsImplement=org.jvnet.jaxb2_commons.tests.issues.IssueJIIB14BaseInterfaceFour</arg>
51-
<arg>-Xsimplify</arg>
5251
<arg>-XenumValue</arg>
5352
</args>
5453
<plugins>

tests/issues/src/main/resources/schema.xsd

Lines changed: 1 addition & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@
99
xmlns:toString="http://jaxb2-commons.dev.java.net/basic/toString"
1010
xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
1111
xmlns:wildcard="http://jaxb2-commons.dev.java.net/basic/wildcard"
12-
xmlns:simplify="http://jaxb2-commons.dev.java.net/basic/simplify"
1312
jaxb:version="2.1"
14-
jaxb:extensionBindingPrefixes="basic copyable equals hashCode mergeable toString inheritance wildcard simplify">
13+
jaxb:extensionBindingPrefixes="basic copyable equals hashCode mergeable toString inheritance wildcard">
1514

1615
<xs:annotation>
1716
<xs:appinfo>
@@ -231,68 +230,6 @@
231230
</xs:sequence>
232231
</xs:complexType>
233232

234-
<xs:element name="issueJIIB44ReferencesPropertyAsElementProperty" type="issueJIIB44ReferencesPropertyAsElementPropertyType"/>
235-
<xs:element name="issueJIIB44ReferencesPropertyAsReferenceProperty" type="issueJIIB44ReferencesPropertyAsReferencePropertyType"/>
236-
<xs:element name="issueJIIB44ElementsPropertyAsElementProperty" type="issueJIIB44ElementsPropertyAsElementPropertyType"/>
237-
238-
<xs:complexType name="issueJIIB44ReferencesPropertyAsElementPropertyType">
239-
<xs:choice maxOccurs="unbounded">
240-
<xs:element name="issueJIIB44DummyElementInfo" type="issueJIIB44DummyType">
241-
<xs:annotation>
242-
<xs:appinfo>
243-
<simplify:as-element-property/>
244-
</xs:appinfo>
245-
</xs:annotation>
246-
</xs:element>
247-
<xs:element ref="issueJIIB44DummyClassInfo"/>
248-
<!--xs:element ref="issueJIIB44DummyClassRef"/-->
249-
</xs:choice>
250-
</xs:complexType>
251-
252-
<xs:complexType name="issueJIIB44ReferencesPropertyAsReferencePropertyType">
253-
<xs:choice maxOccurs="unbounded">
254-
<xs:element name="issueJIIB44DummyElementInfo" type="issueJIIB44DummyType">
255-
<xs:annotation>
256-
<xs:appinfo>
257-
<simplify:as-reference-property/>
258-
</xs:appinfo>
259-
</xs:annotation>
260-
</xs:element>
261-
<xs:element ref="issueJIIB44DummyClassInfo"/>
262-
<!--xs:element ref="issueJIIB44DummyClassRef"/-->
263-
</xs:choice>
264-
</xs:complexType>
265-
266-
<xs:complexType name="issueJIIB44ElementsPropertyAsElementPropertyType">
267-
<xs:choice maxOccurs="unbounded">
268-
<xs:annotation>
269-
<xs:appinfo>
270-
<simplify:as-element-property/>
271-
</xs:appinfo>
272-
</xs:annotation>
273-
<xs:element name="int" type="xs:int"/>
274-
<xs:element name="string" type="xs:string"/>
275-
</xs:choice>
276-
</xs:complexType>
277-
278-
<xs:element name="issueJIIB44DummyClassInfo" type="issueJIIB44DummyType">
279-
<xs:annotation>
280-
<xs:appinfo>
281-
<jaxb:class name="IssueJIIB44DummyClassInfo"/>
282-
</xs:appinfo>
283-
</xs:annotation>
284-
</xs:element>
285-
286-
<xs:element name="issueJIIB44DummyClassRef" type="issueJIIB44DummyType">
287-
<xs:annotation>
288-
<xs:appinfo>
289-
<jaxb:class ref="org.jvnet.jaxb2_commons.tests.issues.IssueJIIB44DummyClassRef"/>
290-
</xs:appinfo>
291-
</xs:annotation>
292-
</xs:element>
293-
294-
<xs:complexType name="issueJIIB44DummyType"/>
295-
296233
<xs:complexType name="issueJIIB48Type">
297234
<xs:annotation>
298235
<xs:appinfo>
@@ -332,18 +269,4 @@
332269
</xs:sequence>
333270
</xs:complexType>
334271

335-
<xs:complexType name="gh1" mixed="true">
336-
<xs:sequence>
337-
<xs:element name="a" type="xs:string">
338-
<xs:annotation>
339-
<xs:appinfo>
340-
<simplify:as-element-property/>
341-
</xs:appinfo>
342-
</xs:annotation>
343-
</xs:element>
344-
<xs:element name="b" type="xs:int"/>
345-
</xs:sequence>
346-
</xs:complexType>
347-
348-
349272
</xs:schema>

tests/issues/src/test/java/org/jvnet/jaxb2_commons/tests/issues/JIIB44Test.java

Lines changed: 0 additions & 51 deletions
This file was deleted.

tests/issues/src/test/java/org/jvnet/jaxb2_commons/tests/issues/RunIssuesPlugin.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public List<String> getArgs() {
3535
args.add("-XautoInheritance-jaxbElementsImplement=org.jvnet.jaxb2_commons.tests.issues.IssueJIIB14BaseInterfaceThree");
3636
args.add("-XautoInheritance-jaxbElementsImplement=org.jvnet.jaxb2_commons.tests.issues.IssueJIIB14BaseInterfaceFour");
3737
args.add("-Xannotate");
38-
args.add("-Xsimplify");
3938
return args;
4039
}
4140

tests/issues/src/test/resources/org/jvnet/jaxb2_commons/tests/issues/issueJIIB44_0.xml

Lines changed: 0 additions & 8 deletions
This file was deleted.

tests/issues/src/test/resources/org/jvnet/jaxb2_commons/tests/issues/issueJIIB44_1.xml

Lines changed: 0 additions & 8 deletions
This file was deleted.

tests/issues/src/test/resources/org/jvnet/jaxb2_commons/tests/issues/issueJIIB44_2.xml

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.jvnet.jaxb2_commons.plugin.simplify.tests01;
2+
3+
import javax.xml.bind.JAXBElement;
4+
import javax.xml.namespace.QName;
5+
6+
public class BaseElementRef
7+
extends JAXBElement<BaseType>
8+
{
9+
10+
protected final static QName NAME = new QName("urn:test", "baseElement");
11+
12+
public BaseElementRef(BaseType value) {
13+
super(NAME, ((Class) BaseType.class), null, value);
14+
}
15+
16+
public BaseElementRef() {
17+
super(NAME, ((Class) BaseType.class), null, null);
18+
}
19+
20+
}

tests/simplify-01/src/main/resources/binding.xjb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
<jaxb:schemaBindings>
1212
<jaxb:package name="org.jvnet.jaxb2_commons.plugin.simplify.tests01"/>
1313
</jaxb:schemaBindings>
14-
<jaxb:bindings node="xs:complexType[@name='ParentsType']/xs:sequence/xs:element/xs:complexType">
15-
<simplify:property name="type2OrType3">
14+
<jaxb:bindings node="xs:complexType[@name='gh2']">
15+
<simplify:property name="bOrC">
1616
<simplify:as-element-property/>
1717
</simplify:property>
1818
</jaxb:bindings>

0 commit comments

Comments
 (0)