Skip to content

Commit 37d2829

Browse files
author
lexi
committed
Supporting MClassRef as baseTypeInfo.
1 parent 597c476 commit 37d2829

File tree

8 files changed

+54
-49
lines changed

8 files changed

+54
-49
lines changed

basics/trunk/runtime/src/main/java/org/jvnet/jaxb2_commons/xml/bind/model/MClassInfo.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,10 @@
77
import org.jvnet.jaxb2_commons.xml.bind.model.origin.MClassInfoOrigin;
88
import org.jvnet.jaxb2_commons.xml.bind.model.origin.MOriginated;
99

10-
public interface MClassInfo<T, C> extends MPackagedTypeInfo<T, C>,
11-
MOriginated<MClassInfoOrigin>, MContainer {
10+
public interface MClassInfo<T, C> extends MClassTypeInfo<T, C>,
11+
MOriginated<MClassInfoOrigin> {
1212

13-
public C getTargetClass();
14-
15-
public MClassInfo<T, C> getBaseTypeInfo();
16-
17-
public String getName();
18-
19-
public String getLocalName();
13+
public MClassTypeInfo<T, C> getBaseTypeInfo();
2014

2115
public List<MPropertyInfo<T, C>> getProperties();
2216

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,4 @@
11
package org.jvnet.jaxb2_commons.xml.bind.model;
22

3-
4-
public interface MClassRef<T, C> extends MPackagedTypeInfo<T, C>, MContainer /*
5-
* ,
6-
* MOriginated<
7-
* MClassInfoOrigin
8-
* >, MContainer
9-
*/
10-
{
11-
12-
public C getTargetClass();
13-
/*
14-
public MClassRef<T, C> getBaseTypeInfo();
15-
16-
public String getName();
17-
18-
public String getLocalName();
19-
20-
public List<MPropertyInfo<T, C>> getProperties();
21-
22-
public QName getElementName();
23-
24-
public MElementInfo<T, C> createElementInfo(MTypeInfo<T, C> scope,
25-
QName substitutionHead);
26-
27-
public void addProperty(MPropertyInfo<T, C> propertyInfo);
28-
29-
public void removeProperty(MPropertyInfo<T, C> propertyInfo);*/
30-
3+
public interface MClassRef<T, C> extends MClassTypeInfo<T, C> {
314
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.jvnet.jaxb2_commons.xml.bind.model;
2+
3+
public interface MClassTypeInfo<T, C> extends MPackagedTypeInfo<T, C>,
4+
MContainer {
5+
6+
public C getTargetClass();
7+
8+
public <V> V acceptClassTypeInfoVisitor(
9+
MClassTypeInfoVisitor<T, C, V> visitor);
10+
11+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.jvnet.jaxb2_commons.xml.bind.model;
2+
3+
public interface MClassTypeInfoVisitor<T, C, V> {
4+
5+
public V visitClassInfo(MClassInfo<T, C> info);
6+
7+
public V visitClassRef(MClassRef<T, C> info);
8+
9+
}

basics/trunk/runtime/src/main/java/org/jvnet/jaxb2_commons/xml/bind/model/MTypeInfoVisitor.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.jvnet.jaxb2_commons.xml.bind.model;
22

3-
public interface MTypeInfoVisitor<T, C, V> {
3+
public interface MTypeInfoVisitor<T, C, V> extends
4+
MClassTypeInfoVisitor<T, C, V> {
45

56
public V visitList(MList<T, C> info);
67

@@ -16,7 +17,4 @@ public interface MTypeInfoVisitor<T, C, V> {
1617

1718
public V visitWildcardTypeInfo(MWildcardTypeInfo<T, C> info);
1819

19-
public V visitClassInfo(MClassInfo<T, C> info);
20-
21-
public V visitClassRef(MClassRef<T, C> info);
2220
}

basics/trunk/runtime/src/main/java/org/jvnet/jaxb2_commons/xml/bind/model/concrete/CMClassInfo.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
import org.jvnet.jaxb2_commons.lang.Validate;
1010
import org.jvnet.jaxb2_commons.xml.bind.model.MClassInfo;
11+
import org.jvnet.jaxb2_commons.xml.bind.model.MClassTypeInfo;
12+
import org.jvnet.jaxb2_commons.xml.bind.model.MClassTypeInfoVisitor;
1113
import org.jvnet.jaxb2_commons.xml.bind.model.MContainer;
1214
import org.jvnet.jaxb2_commons.xml.bind.model.MCustomizations;
1315
import org.jvnet.jaxb2_commons.xml.bind.model.MElementInfo;
@@ -31,7 +33,7 @@ public class CMClassInfo<T, C extends T> implements MClassInfo<T, C> {
3133
private final String name;
3234
private final String localName;
3335
private final MContainer container;
34-
private final MClassInfo<T, C> baseTypeInfo;
36+
private final MClassTypeInfo<T, C> baseTypeInfo;
3537
private final QName elementName;
3638

3739
private List<MPropertyInfo<T, C>> properties = new ArrayList<MPropertyInfo<T, C>>();
@@ -40,7 +42,7 @@ public class CMClassInfo<T, C extends T> implements MClassInfo<T, C> {
4042

4143
public CMClassInfo(MClassInfoOrigin origin, C targetClass,
4244
MPackageInfo _package, MContainer container, String localName,
43-
MClassInfo<T, C> baseTypeInfo, QName elementName) {
45+
MClassTypeInfo<T, C> baseTypeInfo, QName elementName) {
4446
super();
4547
Validate.notNull(origin);
4648
Validate.notNull(targetClass);
@@ -116,7 +118,7 @@ public MContainer getScope() {
116118
return container;
117119
}
118120

119-
public MClassInfo<T, C> getBaseTypeInfo() {
121+
public MClassTypeInfo<T, C> getBaseTypeInfo() {
120122
return baseTypeInfo;
121123
}
122124

@@ -155,4 +157,10 @@ public String toString() {
155157
public <V> V acceptTypeInfoVisitor(MTypeInfoVisitor<T, C, V> visitor) {
156158
return visitor.visitClassInfo(this);
157159
}
160+
161+
@Override
162+
public <V> V acceptClassTypeInfoVisitor(
163+
MClassTypeInfoVisitor<T, C, V> visitor) {
164+
return visitor.visitClassInfo(this);
165+
}
158166
}

basics/trunk/runtime/src/main/java/org/jvnet/jaxb2_commons/xml/bind/model/concrete/CMClassRef.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.jvnet.jaxb2_commons.lang.Validate;
44
import org.jvnet.jaxb2_commons.xml.bind.model.MClassRef;
5+
import org.jvnet.jaxb2_commons.xml.bind.model.MClassTypeInfoVisitor;
56
import org.jvnet.jaxb2_commons.xml.bind.model.MContainer;
67
import org.jvnet.jaxb2_commons.xml.bind.model.MCustomizations;
78
import org.jvnet.jaxb2_commons.xml.bind.model.MPackageInfo;
@@ -16,10 +17,10 @@ public class CMClassRef<T, C extends T> implements MClassRef<T, C> {
1617
private final String localName;
1718
private final MContainer container;
1819

19-
public CMClassRef(/*MClassInfoOrigin origin, */C targetClass,
20+
public CMClassRef(/* MClassInfoOrigin origin, */C targetClass,
2021
MPackageInfo _package, MContainer container, String localName) {
2122
super();
22-
// Validate.notNull(origin);
23+
// Validate.notNull(origin);
2324
Validate.notNull(targetClass);
2425
Validate.notNull(_package);
2526
Validate.notNull(localName);
@@ -80,4 +81,10 @@ public C getTargetClass() {
8081
return targetClass;
8182
}
8283

84+
@Override
85+
public <V> V acceptClassTypeInfoVisitor(
86+
MClassTypeInfoVisitor<T, C, V> visitor) {
87+
return visitor.visitClassRef(this);
88+
}
89+
8390
}

basics/trunk/runtime/src/main/java/org/jvnet/jaxb2_commons/xml/bind/model/concrete/CMInfoFactory.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.jvnet.jaxb2_commons.lang.Validate;
1414
import org.jvnet.jaxb2_commons.xml.bind.model.MBuiltinLeafInfo;
1515
import org.jvnet.jaxb2_commons.xml.bind.model.MClassInfo;
16+
import org.jvnet.jaxb2_commons.xml.bind.model.MClassTypeInfo;
1617
import org.jvnet.jaxb2_commons.xml.bind.model.MContainer;
1718
import org.jvnet.jaxb2_commons.xml.bind.model.MElementInfo;
1819
import org.jvnet.jaxb2_commons.xml.bind.model.MElementTypeInfo;
@@ -252,12 +253,16 @@ protected MElementInfo<T, C> getElementInfo(EI info) {
252253

253254
protected MClassInfo<T, C> createClassInfo(CI info) {
254255
return new CMClassInfo<T, C>(createClassInfoOrigin(info),
255-
info.getClazz(), getPackage(info), getContainer(info), getLocalName(info),
256-
info.getBaseClass() == null ? null : getTypeInfo((CI) info
257-
.getBaseClass()),
256+
info.getClazz(), getPackage(info), getContainer(info),
257+
getLocalName(info), createBaseTypeInfo(info),
258258
info.isElement() ? info.getElementName() : null);
259259
}
260260

261+
protected MClassTypeInfo<T, C> createBaseTypeInfo(CI info) {
262+
return info.getBaseClass() == null ? null : getTypeInfo((CI) info
263+
.getBaseClass());
264+
}
265+
261266
private MPropertyInfo<T, C> createPropertyInfo(
262267
final MClassInfo<T, C> classInfo, PI p) {
263268

0 commit comments

Comments
 (0)