/**
* Checks if the given adapter is applicable to the declared property type.
*/
private boolean isApplicable(XmlJavaTypeAdapter jta, T declaredType ) {
if(jta==null) return false;
T type = reader().getClassValue(jta,"type");
if(nav().isSameType(declaredType, type))
return true; // for types explicitly marked in XmlJavaTypeAdapter.type()
T ad = reader().getClassValue(jta,"value");
T ba = nav().getBaseClass(ad, nav().asDecl(XmlAdapter.class));
if(!nav().isParameterizedType(ba))
return true; // can't check type applicability. assume Object, which means applicable to any.
T inMemType = nav().getTypeArgument(ba, 1);
return nav().isSubClassOf(declaredType,inMemType);
}
java类javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter的实例源码
PropertyInfoImpl.java 文件源码
项目:OpenJSharp
阅读 25
收藏 0
点赞 0
评论 0
PropertyInfoImpl.java 文件源码
项目:openjdk-jdk10
阅读 22
收藏 0
点赞 0
评论 0
/**
* Checks if the given adapter is applicable to the declared property type.
*/
private boolean isApplicable(XmlJavaTypeAdapter jta, T declaredType ) {
if(jta==null) return false;
T type = reader().getClassValue(jta,"type");
if(nav().isSameType(declaredType, type))
return true; // for types explicitly marked in XmlJavaTypeAdapter.type()
T ad = reader().getClassValue(jta,"value");
T ba = nav().getBaseClass(ad, nav().asDecl(XmlAdapter.class));
if(!nav().isParameterizedType(ba))
return true; // can't check type applicability. assume Object, which means applicable to any.
T inMemType = nav().getTypeArgument(ba, 1);
return nav().isSubClassOf(declaredType,inMemType);
}
ObjectFactory.java 文件源码
项目:oscm
阅读 30
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}
*
*/
@XmlElementDecl(namespace = "urn:oasis:names:tc:SAML:2.0:assertion", name = "AssertionIDRef")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createAssertionIDRef(String value) {
return new JAXBElement<String>(_AssertionIDRef_QNAME, String.class,
null, value);
}
PropertyInfoImpl.java 文件源码
项目:OpenJSharp
阅读 31
收藏 0
点赞 0
评论 0
private XmlJavaTypeAdapter getApplicableAdapter(T type) {
XmlJavaTypeAdapter jta = seed.readAnnotation(XmlJavaTypeAdapter.class);
if(jta!=null && isApplicable(jta,type))
return jta;
// check the applicable adapters on the package
XmlJavaTypeAdapters jtas = reader().getPackageAnnotation(XmlJavaTypeAdapters.class, parent.clazz, seed );
if(jtas!=null) {
for (XmlJavaTypeAdapter xjta : jtas.value()) {
if(isApplicable(xjta,type))
return xjta;
}
}
jta = reader().getPackageAnnotation(XmlJavaTypeAdapter.class, parent.clazz, seed );
if(isApplicable(jta,type))
return jta;
// then on the target class
C refType = nav().asDecl(type);
if(refType!=null) {
jta = reader().getClassAnnotation(XmlJavaTypeAdapter.class, refType, seed );
if(jta!=null && isApplicable(jta,type)) // the one on the type always apply.
return jta;
}
return null;
}
Adapter.java 文件源码
项目:OpenJSharp
阅读 27
收藏 0
点赞 0
评论 0
public Adapter(
XmlJavaTypeAdapter spec,
AnnotationReader<TypeT,ClassDeclT,?,?> reader,
Navigator<TypeT,ClassDeclT,?,?> nav) {
this( nav.asDecl(reader.getClassValue(spec,"value")), nav );
}
Ref.java 文件源码
项目:OpenJSharp
阅读 22
收藏 0
点赞 0
评论 0
public Ref(AnnotationReader<T,C,?,?> reader,
Navigator<T,C,?,?> nav,
T type, XmlJavaTypeAdapter xjta, XmlList xl ) {
Adapter<T,C> adapter=null;
if(xjta!=null) {
adapter = new Adapter<T,C>(xjta,reader,nav);
type = adapter.defaultType;
}
this.type = type;
this.adapter = adapter;
this.valueList = xl!=null;
}
JAXBContextImpl.java 文件源码
项目:OpenJSharp
阅读 30
收藏 0
点赞 0
评论 0
private NonElement<Type,Class> getXmlType(RuntimeTypeInfoSet tis, TypeReference tr) {
if(tr==null)
throw new IllegalArgumentException();
XmlJavaTypeAdapter xjta = tr.get(XmlJavaTypeAdapter.class);
XmlList xl = tr.get(XmlList.class);
Ref<Type,Class> ref = new Ref<Type,Class>(annotationReader, tis.getNavigator(), tr.type, xjta, xl );
return tis.getTypeInfo(ref);
}
JavaCompilerImpl.java 文件源码
项目:OpenJSharp
阅读 21
收藏 0
点赞 0
评论 0
public J2SJAXBModel bind(
Collection<Reference> rootClasses,
Map<QName,Reference> additionalElementDecls,
String defaultNamespaceRemap,
ProcessingEnvironment env) {
ModelBuilder<TypeMirror, TypeElement, VariableElement, ExecutableElement> builder =
new ModelBuilder<TypeMirror, TypeElement, VariableElement, ExecutableElement>(
InlineAnnotationReaderImpl.theInstance,
new ApNavigator(env),
Collections.<TypeElement, TypeElement>emptyMap(),
defaultNamespaceRemap );
builder.setErrorHandler(new ErrorHandlerImpl(env.getMessager()));
for ( Reference ref : rootClasses ) {
TypeMirror t = ref.type;
XmlJavaTypeAdapter xjta = ref.annotations.getAnnotation(XmlJavaTypeAdapter.class);
XmlList xl = ref.annotations.getAnnotation(XmlList.class);
builder.getTypeInfo(new Ref<TypeMirror, TypeElement>(builder, t, xjta, xl));
}
TypeInfoSet<TypeMirror, TypeElement, VariableElement, ExecutableElement> r = builder.link();
if(r==null) return null;
if(additionalElementDecls==null)
additionalElementDecls = Collections.emptyMap();
else {
// fool proof check
for (Map.Entry<QName, ? extends Reference> e : additionalElementDecls.entrySet()) {
if(e.getKey()==null)
throw new IllegalArgumentException("nulls in additionalElementDecls");
}
}
return new JAXBModelImpl(r, builder.reader, rootClasses, new HashMap<QName, Reference>(additionalElementDecls));
}
JAXBModelImpl.java 文件源码
项目:OpenJSharp
阅读 24
收藏 0
点赞 0
评论 0
private NonElement<TypeMirror, TypeElement> getXmlType(Reference r) {
if(r==null)
throw new IllegalArgumentException();
XmlJavaTypeAdapter xjta = r.annotations.getAnnotation(XmlJavaTypeAdapter.class);
XmlList xl = r.annotations.getAnnotation(XmlList.class);
Ref<TypeMirror, TypeElement> ref = new Ref<TypeMirror, TypeElement>(
reader,types.getNavigator(),r.type,xjta,xl);
return types.getTypeInfo(ref);
}
JavaCompilerImpl.java 文件源码
项目:openjdk-jdk10
阅读 22
收藏 0
点赞 0
评论 0
public J2SJAXBModel bind(
Collection<Reference> rootClasses,
Map<QName,Reference> additionalElementDecls,
String defaultNamespaceRemap,
ProcessingEnvironment env) {
ModelBuilder<TypeMirror, TypeElement, VariableElement, ExecutableElement> builder =
new ModelBuilder<TypeMirror, TypeElement, VariableElement, ExecutableElement>(
InlineAnnotationReaderImpl.theInstance,
new ApNavigator(env),
Collections.<TypeElement, TypeElement>emptyMap(),
defaultNamespaceRemap );
builder.setErrorHandler(new ErrorHandlerImpl(env.getMessager()));
for ( Reference ref : rootClasses ) {
TypeMirror t = ref.type;
XmlJavaTypeAdapter xjta = ref.annotations.getAnnotation(XmlJavaTypeAdapter.class);
XmlList xl = ref.annotations.getAnnotation(XmlList.class);
builder.getTypeInfo(new Ref<TypeMirror, TypeElement>(builder, t, xjta, xl));
}
TypeInfoSet<TypeMirror, TypeElement, VariableElement, ExecutableElement> r = builder.link();
if(r==null) return null;
if(additionalElementDecls==null)
additionalElementDecls = Collections.emptyMap();
else {
// fool proof check
for (Map.Entry<QName, ? extends Reference> e : additionalElementDecls.entrySet()) {
if(e.getKey()==null)
throw new IllegalArgumentException("nulls in additionalElementDecls");
}
}
return new JAXBModelImpl(r, builder.reader, rootClasses, new HashMap<QName, Reference>(additionalElementDecls));
}
JAXBModelImpl.java 文件源码
项目:openjdk-jdk10
阅读 24
收藏 0
点赞 0
评论 0
private NonElement<TypeMirror, TypeElement> getXmlType(Reference r) {
if(r==null)
throw new IllegalArgumentException();
XmlJavaTypeAdapter xjta = r.annotations.getAnnotation(XmlJavaTypeAdapter.class);
XmlList xl = r.annotations.getAnnotation(XmlList.class);
Ref<TypeMirror, TypeElement> ref = new Ref<TypeMirror, TypeElement>(
reader,types.getNavigator(),r.type,xjta,xl);
return types.getTypeInfo(ref);
}
PropertyInfoImpl.java 文件源码
项目:openjdk-jdk10
阅读 23
收藏 0
点赞 0
评论 0
private XmlJavaTypeAdapter getApplicableAdapter(T type) {
XmlJavaTypeAdapter jta = seed.readAnnotation(XmlJavaTypeAdapter.class);
if(jta!=null && isApplicable(jta,type))
return jta;
// check the applicable adapters on the package
XmlJavaTypeAdapters jtas = reader().getPackageAnnotation(XmlJavaTypeAdapters.class, parent.clazz, seed );
if(jtas!=null) {
for (XmlJavaTypeAdapter xjta : jtas.value()) {
if(isApplicable(xjta,type))
return xjta;
}
}
jta = reader().getPackageAnnotation(XmlJavaTypeAdapter.class, parent.clazz, seed );
if(isApplicable(jta,type))
return jta;
// then on the target class
C refType = nav().asDecl(type);
if(refType!=null) {
jta = reader().getClassAnnotation(XmlJavaTypeAdapter.class, refType, seed );
if(jta!=null && isApplicable(jta,type)) // the one on the type always apply.
return jta;
}
return null;
}
Adapter.java 文件源码
项目:openjdk-jdk10
阅读 24
收藏 0
点赞 0
评论 0
public Adapter(
XmlJavaTypeAdapter spec,
AnnotationReader<TypeT,ClassDeclT,?,?> reader,
Navigator<TypeT,ClassDeclT,?,?> nav) {
this( nav.asDecl(reader.getClassValue(spec,"value")), nav );
}
Ref.java 文件源码
项目:openjdk-jdk10
阅读 26
收藏 0
点赞 0
评论 0
public Ref(AnnotationReader<T,C,?,?> reader,
Navigator<T,C,?,?> nav,
T type, XmlJavaTypeAdapter xjta, XmlList xl ) {
Adapter<T,C> adapter=null;
if(xjta!=null) {
adapter = new Adapter<T,C>(xjta,reader,nav);
type = adapter.defaultType;
}
this.type = type;
this.adapter = adapter;
this.valueList = xl!=null;
}
JAXBContextImpl.java 文件源码
项目:openjdk-jdk10
阅读 30
收藏 0
点赞 0
评论 0
private NonElement<Type,Class> getXmlType(RuntimeTypeInfoSet tis, TypeReference tr) {
if(tr==null)
throw new IllegalArgumentException();
XmlJavaTypeAdapter xjta = tr.get(XmlJavaTypeAdapter.class);
XmlList xl = tr.get(XmlList.class);
Ref<Type,Class> ref = new Ref<Type,Class>(annotationReader, tis.getNavigator(), tr.type, xjta, xl );
return tis.getTypeInfo(ref);
}
SmallSignalSecurityIndex.java 文件源码
项目:powsybl-core
阅读 23
收藏 0
点赞 0
评论 0
@XmlElement(name = "m")
@XmlJavaTypeAdapter(MatrixAdapter.class)
public double[][] getValues() {
return values;
}
ObjectFactory.java 文件源码
项目:sumo
阅读 22
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "ellipsoidName")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createEllipsoidName(String value) {
return new JAXBElement<String>(_EllipsoidName_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 27
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "time")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createTime(String value) {
return new JAXBElement<String>(_Time_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 22
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "productLastLineUtcTime")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createProductLastLineUtcTime(String value) {
return new JAXBElement<String>(_ProductLastLineUtcTime_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 27
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "ascendingNodeTime")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createAscendingNodeTime(String value) {
return new JAXBElement<String>(_AscendingNodeTime_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 25
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "attitudeSource")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createAttitudeSource(String value) {
return new JAXBElement<String>(_AttitudeSource_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 27
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "pgSource")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createPgSource(String value) {
return new JAXBElement<String>(_PgSource_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 21
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "firstLineSensingTime")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createFirstLineSensingTime(String value) {
return new JAXBElement<String>(_FirstLineSensingTime_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 23
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "fineDceAzimuthStopTime")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createFineDceAzimuthStopTime(String value) {
return new JAXBElement<String>(_FineDceAzimuthStopTime_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 27
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "stopTime")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createStopTime(String value) {
return new JAXBElement<String>(_StopTime_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 26
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "pixelValue")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createPixelValue(String value) {
return new JAXBElement<String>(_PixelValue_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 23
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "frame")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createFrame(String value) {
return new JAXBElement<String>(_Frame_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 27
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "applicationLutId")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createApplicationLutId(String value) {
return new JAXBElement<String>(_ApplicationLutId_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 23
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "lastLineSensingTime")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createLastLineSensingTime(String value) {
return new JAXBElement<String>(_LastLineSensingTime_QNAME, String.class, null, value);
}
ObjectFactory.java 文件源码
项目:sumo
阅读 28
收藏 0
点赞 0
评论 0
/**
* Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
*
*/
@XmlElementDecl(namespace = "", name = "fineDceAzimuthStartTime")
@XmlJavaTypeAdapter(CollapsedStringAdapter.class)
public JAXBElement<String> createFineDceAzimuthStartTime(String value) {
return new JAXBElement<String>(_FineDceAzimuthStartTime_QNAME, String.class, null, value);
}