com.evolveum.midpoint.prism.xml.XsdTypeMapper类的使用及代码示例

x33g5p2x  于2022-02-03 转载在 其他  
字(10.3k)|赞(0)|评价(0)|浏览(169)

本文整理了Java中com.evolveum.midpoint.prism.xml.XsdTypeMapper类的一些代码示例,展示了XsdTypeMapper类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XsdTypeMapper类的具体详情如下:
包路径:com.evolveum.midpoint.prism.xml.XsdTypeMapper
类名称:XsdTypeMapper

XsdTypeMapper介绍

[英]Maintains mapping of XSD types (qnames) and Java types (classes)
[中]维护XSD类型(QName)和Java类型(类)的映射

代码示例

代码示例来源:origin: Evolveum/midpoint

  1. public static <T> Class<T> toJavaTypeIfKnownExt(@NotNull QName xsdType) {
  2. Class<T> cls = toJavaType(xsdToJavaTypeMap, xsdType, false);
  3. if (cls != null) {
  4. return cls;
  5. } else {
  6. return toJavaType(xsdToJavaTypeMapExt, xsdType, false);
  7. }
  8. }

代码示例来源:origin: Evolveum/midpoint

  1. public static QName icfTypeToXsdType(Class<?> type, boolean isConfidential) {
  2. // For arrays we are only interested in the component type
  3. if (isMultivaluedType(type)) {
  4. type = type.getComponentType();
  5. }
  6. QName propXsdType = null;
  7. if (GuardedString.class.equals(type) ||
  8. (String.class.equals(type) && isConfidential)) {
  9. // GuardedString is a special case. It is a ICF-specific
  10. // type
  11. // implementing Potemkin-like security. Use a temporary
  12. // "nonsense" type for now, so this will fail in tests and
  13. // will be fixed later
  14. // propXsdType = SchemaConstants.T_PROTECTED_STRING_TYPE;
  15. propXsdType = ProtectedStringType.COMPLEX_TYPE;
  16. } else if (GuardedByteArray.class.equals(type) ||
  17. (Byte.class.equals(type) && isConfidential)) {
  18. // GuardedString is a special case. It is a ICF-specific
  19. // type
  20. // implementing Potemkin-like security. Use a temporary
  21. // "nonsense" type for now, so this will fail in tests and
  22. // will be fixed later
  23. // propXsdType = SchemaConstants.T_PROTECTED_BYTE_ARRAY_TYPE;
  24. propXsdType = ProtectedByteArrayType.COMPLEX_TYPE;
  25. } else {
  26. propXsdType = XsdTypeMapper.toXsdType(type);
  27. }
  28. return propXsdType;
  29. }

代码示例来源:origin: Evolveum/midpoint

  1. @Deprecated // do NOT use form the outside of prism
  2. public static boolean canConvert(Class<?> clazz) {
  3. return (XsdTypeMapper.getJavaToXsdMapping(clazz) != null);
  4. }

代码示例来源:origin: Evolveum/midpoint

  1. private static void initTypeMap() throws IOException, ClassNotFoundException {
  2. addMapping(String.class, DOMUtil.XSD_STRING, true);
  3. addMapping(char.class, DOMUtil.XSD_STRING, false);
  4. addMapping(File.class, DOMUtil.XSD_STRING, false);
  5. addMapping(int.class, DOMUtil.XSD_INT, true);
  6. addMapping(Integer.class, DOMUtil.XSD_INT, false);
  7. addMapping(BigInteger.class, DOMUtil.XSD_INTEGER, true);
  8. addMapping(BigDecimal.class, DOMUtil.XSD_DECIMAL, true);
  9. addMapping(double.class, DOMUtil.XSD_DOUBLE, true);
  10. addMapping(Double.class, DOMUtil.XSD_DOUBLE, false);
  11. addMapping(float.class, DOMUtil.XSD_FLOAT, true);
  12. addMapping(Float.class, DOMUtil.XSD_FLOAT, false);
  13. addMapping(long.class, DOMUtil.XSD_LONG, true);
  14. addMapping(Long.class, DOMUtil.XSD_LONG, false);
  15. addMapping(short.class, DOMUtil.XSD_SHORT, true);
  16. addMapping(Short.class, DOMUtil.XSD_SHORT, false);
  17. addMapping(byte.class, DOMUtil.XSD_BYTE, true);
  18. addMapping(Byte.class, DOMUtil.XSD_BYTE, false);
  19. addMapping(boolean.class, DOMUtil.XSD_BOOLEAN, true);
  20. addMapping(Boolean.class, DOMUtil.XSD_BOOLEAN, false);
  21. addMapping(byte[].class, DOMUtil.XSD_BASE64BINARY, true);
  22. addMapping(GregorianCalendar.class, DOMUtil.XSD_DATETIME, false);
  23. addMapping(XMLGregorianCalendar.class, DOMUtil.XSD_DATETIME, true);
  24. addMapping(ZonedDateTime.class, DOMUtil.XSD_DATETIME, false);
  25. addMapping(Duration.class, DOMUtil.XSD_DURATION, true);
  26. addMapping(ItemPathType.class, ItemPathType.COMPLEX_TYPE, true);
  27. addMapping(UniformItemPath.class, ItemPathType.COMPLEX_TYPE, false);

代码示例来源:origin: Evolveum/midpoint

  1. @Test
  2. public void testXmlDateTimeType() throws Exception {
  3. assertEquals("Wrong datetime class", XMLGregorianCalendar.class, XsdTypeMapper.toJavaType(DOMUtil.XSD_DATETIME));
  4. assertEquals("Wrong datetime class", DOMUtil.XSD_DATETIME, XsdTypeMapper.toXsdType(XMLGregorianCalendar.class));
  5. }

代码示例来源:origin: Evolveum/midpoint

  1. private int getMinOccurs() {
  2. if (credentialPolicy == null) {
  3. return 0;
  4. }
  5. String minOccursPhrase = credentialPolicy.getMinOccurs();
  6. if (minOccursPhrase == null && valuePolicy != null) {
  7. minOccursPhrase = valuePolicy.getMinOccurs(); // deprecated but let's consider it
  8. }
  9. Integer minOccurs = XsdTypeMapper.multiplicityToInteger(minOccursPhrase);
  10. return defaultIfNull(minOccurs, 0);
  11. }

代码示例来源:origin: Evolveum/midpoint

  1. Object v = xprim.getValue();
  2. if (v != null) {
  3. typeQName = XsdTypeMapper.toXsdType(v.getClass());
  4. typeQName = XsdTypeMapper.determineQNameWithNs(typeQName);

代码示例来源:origin: Evolveum/midpoint

  1. private static boolean isMatchingConstraint(OrderConstraintsType orderConstraint, EvaluationOrder evaluationOrder) {
  2. int evaluationOrderInt = evaluationOrder.getMatchingRelationOrder(orderConstraint.getRelation());
  3. if (orderConstraint.getOrder() != null) {
  4. return orderConstraint.getOrder() == evaluationOrderInt;
  5. } else {
  6. int orderMin = 1;
  7. int orderMax = 1;
  8. if (orderConstraint.getOrderMin() != null) {
  9. orderMin = XsdTypeMapper.multiplicityToInteger(orderConstraint.getOrderMin());
  10. }
  11. if (orderConstraint.getOrderMax() != null) {
  12. orderMax = XsdTypeMapper.multiplicityToInteger(orderConstraint.getOrderMax());
  13. }
  14. return XsdTypeMapper.isMatchingMultiplicity(evaluationOrderInt, orderMin, orderMax);
  15. }
  16. }

代码示例来源:origin: Evolveum/midpoint

  1. /**
  2. * Returns the class in the type mapping.
  3. * The class supplied by the caller may be a subclass of what we have in the map.
  4. * This returns the class that in the mapping.
  5. */
  6. public static Class<?> getTypeFromClass(Class<?> clazz) {
  7. if (javaToXsdTypeMap.containsKey(clazz)) {
  8. return clazz;
  9. }
  10. Class<?> superClazz = clazz.getSuperclass();
  11. if (superClazz != null) {
  12. return getTypeFromClass(superClazz);
  13. }
  14. return null;
  15. }

代码示例来源:origin: Evolveum/midpoint

  1. autzOrderMin = XsdTypeMapper.multiplicityToInteger(autzOrderConstraints.getOrderMin());
  2. if (autzOrderMin == null) {
  3. if (autzOrder == null) {
  4. autzOrderMax = XsdTypeMapper.multiplicityToInteger(autzOrderConstraints.getOrderMax());
  5. if (autzOrderMax == null) {
  6. if (autzOrder == null) {
  7. Integer paramOrderMin = XsdTypeMapper.multiplicityToInteger(paramOrderConstraint.getOrderMin());
  8. if (paramOrderMin == null) {
  9. paramOrderMin = paramOrder;
  10. Integer paramOrderMax = XsdTypeMapper.multiplicityToInteger(paramOrderConstraint.getOrderMax());
  11. if (paramOrderMax == null) {
  12. paramOrderMax = paramOrder;

代码示例来源:origin: Evolveum/midpoint

  1. public boolean canProcess(@NotNull Class<?> clazz) {
  2. return !Containerable.class.isAssignableFrom(clazz) &&
  3. (RawType.class.equals(clazz) || clazz.getAnnotation(XmlType.class) != null || XsdTypeMapper.getTypeFromClass(clazz) != null);
  4. }

代码示例来源:origin: Evolveum/midpoint

  1. @Nullable
  2. public static <T> Class<T> toJavaType(@NotNull QName xsdType) {
  3. //noinspection ConstantConditions
  4. return toJavaType(xsdToJavaTypeMap, xsdType, true);
  5. }

代码示例来源:origin: Evolveum/midpoint

  1. private ItemDefinition<?> createPropertyDefinition(MutablePrismContainerDefinition<?> configurationContainerDef,
  2. PropertyDescriptor prop) {
  3. String propName = prop.getName();
  4. Class<?> propertyType = prop.getPropertyType();
  5. Class<?> baseType = propertyType;
  6. int minOccurs = 1;
  7. int maxOccurs = 1;
  8. if (propertyType.isArray()) {
  9. maxOccurs = -1;
  10. baseType = propertyType.getComponentType();
  11. }
  12. // TODO: minOccurs: define which properties are optional/mandatory
  13. // TODO: display names, ordering, help texts
  14. QName propType = XsdTypeMapper.toXsdType(baseType);
  15. return configurationContainerDef.createPropertyDefinition(new QName(configurationContainerDef.getName().getNamespaceURI(), propName),
  16. propType, minOccurs, maxOccurs);
  17. }

代码示例来源:origin: Evolveum/midpoint

  1. private void setMultiplicity(MutableItemDefinition itemDef, XSParticle particle, XSAnnotation annotation,
  2. boolean topLevel) {
  3. if (topLevel || particle == null) {
  4. itemDef.setMinOccurs(0);
  5. Element maxOccursAnnotation = SchemaProcessorUtil.getAnnotationElement(annotation, A_MAX_OCCURS);
  6. if (maxOccursAnnotation != null) {
  7. String maxOccursString = maxOccursAnnotation.getTextContent();
  8. int maxOccurs = XsdTypeMapper.multiplicityToInteger(maxOccursString);
  9. itemDef.setMaxOccurs(maxOccurs);
  10. } else {
  11. itemDef.setMaxOccurs(-1);
  12. }
  13. } else {
  14. // itemDef.setMinOccurs(particle.getMinOccurs());
  15. // itemDef.setMaxOccurs(particle.getMaxOccurs());
  16. itemDef.setMinOccurs(particle.getMinOccurs().intValue());
  17. itemDef.setMaxOccurs(particle.getMaxOccurs().intValue());
  18. }
  19. }

代码示例来源:origin: Evolveum/midpoint

  1. public static QName toXsdType(Class javaClass) {
  2. QName xsdType = getJavaToXsdMapping(javaClass);
  3. if (xsdType == null) {
  4. throw new IllegalArgumentException("No XSD mapping for Java type " + javaClass.getCanonicalName());
  5. }
  6. return xsdType;
  7. }

代码示例来源:origin: Evolveum/midpoint

  1. /**
  2. * @param val
  3. * @param elementName
  4. * @param doc
  5. * @param recordType
  6. * @return created element
  7. * @throws SchemaException
  8. */
  9. public static Element toXsdElement(Object val, QName elementName, Document doc, boolean recordType) throws SchemaException {
  10. if (val == null) {
  11. // if no value is specified, do not create element
  12. return null;
  13. }
  14. Class type = XsdTypeMapper.getTypeFromClass(val.getClass());
  15. if (type == null) {
  16. throw new IllegalArgumentException("No type mapping for conversion: " + val.getClass() + "(element " + elementName + ")");
  17. }
  18. if (doc == null) {
  19. doc = DOMUtil.getDocument();
  20. }
  21. Element element = doc.createElementNS(elementName.getNamespaceURI(), elementName.getLocalPart());
  22. //TODO: switch to global namespace prefixes map
  23. // element.setPrefix(MidPointNamespacePrefixMapper.getPreferredPrefix(elementName.getNamespaceURI()));
  24. toXsdElement(val, element, recordType);
  25. return element;
  26. }

代码示例来源:origin: Evolveum/midpoint

  1. @Nullable
  2. public static <T> Class<T> toJavaTypeIfKnown(@NotNull QName xsdType) {
  3. return toJavaType(xsdToJavaTypeMap, xsdType, false);
  4. }

代码示例来源:origin: Evolveum/midpoint

  1. /**
  2. * For cases when XSD complex type has a simple content. In that case the resulting class has @XmlValue annotation.
  3. */
  4. private <T> PrimitiveXNodeImpl<T> marshallBeanToPrimitive(Object bean, SerializationContext ctx, Field valueField) throws SchemaException {
  5. if (!valueField.isAccessible()) {
  6. valueField.setAccessible(true);
  7. }
  8. T value;
  9. try {
  10. value = (T) valueField.get(bean);
  11. } catch (IllegalArgumentException | IllegalAccessException e) {
  12. throw new SchemaException("Cannot get primitive value from field " + valueField.getName() + " of bean " + bean + ": "+e.getMessage(), e);
  13. }
  14. PrimitiveXNodeImpl<T> xnode = new PrimitiveXNodeImpl<>(value);
  15. Class<?> fieldType = valueField.getType();
  16. QName xsdType = XsdTypeMapper.toXsdType(fieldType);
  17. xnode.setTypeQName(xsdType);
  18. return xnode;
  19. }

代码示例来源:origin: Evolveum/midpoint

  1. Integer requiredMultiplicity = XsdTypeMapper.multiplicityToInteger(constraint.getValue().getMultiplicity());
  2. if (requiredMultiplicity == null) {
  3. return null;
  4. Integer requiredMultiplicity = XsdTypeMapper.multiplicityToInteger(constraint.getValue().getMultiplicity());
  5. if (requiredMultiplicity == null) {
  6. return null;

代码示例来源:origin: Evolveum/midpoint

  1. public static QName getJavaToXsdMapping(Class<?> type) {
  2. if (javaToXsdTypeMap.containsKey(type)) {
  3. return javaToXsdTypeMap.get(type);
  4. }
  5. Class<?> superType = type.getSuperclass();
  6. if (superType != null) {
  7. return getJavaToXsdMapping(superType);
  8. }
  9. return null;
  10. }

相关文章