PrismBeanInspector.java 文件源码

java
阅读 34 收藏 0 点赞 0 评论 0

项目:midpoint 作者:
private QName findTypeNameUncached(Field field, Class contentClass, String schemaNamespace) {
    if (RawType.class.equals(contentClass)) {
        // RawType is a meta-type. We do not really want to use field types of RawType class.
        return null;
    }
      if (field != null) {
    XmlSchemaType xmlSchemaType = field.getAnnotation(XmlSchemaType.class);
          if (xmlSchemaType != null) {
              return new QName(xmlSchemaType.namespace(), xmlSchemaType.name());
          }
      }
      QName typeName = XsdTypeMapper.getJavaToXsdMapping(contentClass);
      if (typeName != null) {
        return typeName;
}
// TODO the following code is similar to determineTypeForClass
XmlType xmlType = (XmlType) contentClass.getAnnotation(XmlType.class);
if (xmlType != null) {
    String propTypeLocalPart = xmlType.name();
    String propTypeNamespace = xmlType.namespace();
    if (propTypeNamespace.equals(BeanMarshaller.DEFAULT_PLACEHOLDER)) {
        PrismSchema schema = prismContext.getSchemaRegistry().findSchemaByCompileTimeClass(contentClass);
        if (schema != null && schema.getNamespace() != null) {
            propTypeNamespace = schema.getNamespace();      // should be non-null for properly initialized schemas
        } else {
            // schemaNamespace is only a poor indicator of required namespace (consider e.g. having c:UserType in apit:ObjectListType)
            // so we use it only if we couldn't find anything else
            propTypeNamespace = schemaNamespace;
        }
    }
    return new QName(propTypeNamespace, propTypeLocalPart);
}
return null;
  }
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号