本文整理了Java中com.evolveum.midpoint.prism.xml.XsdTypeMapper
类的一些代码示例,展示了XsdTypeMapper
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XsdTypeMapper
类的具体详情如下:
包路径:com.evolveum.midpoint.prism.xml.XsdTypeMapper
类名称:XsdTypeMapper
[英]Maintains mapping of XSD types (qnames) and Java types (classes)
[中]维护XSD类型(QName)和Java类型(类)的映射
代码示例来源:origin: Evolveum/midpoint
public static <T> Class<T> toJavaTypeIfKnownExt(@NotNull QName xsdType) {
Class<T> cls = toJavaType(xsdToJavaTypeMap, xsdType, false);
if (cls != null) {
return cls;
} else {
return toJavaType(xsdToJavaTypeMapExt, xsdType, false);
}
}
代码示例来源:origin: Evolveum/midpoint
public static QName icfTypeToXsdType(Class<?> type, boolean isConfidential) {
// For arrays we are only interested in the component type
if (isMultivaluedType(type)) {
type = type.getComponentType();
}
QName propXsdType = null;
if (GuardedString.class.equals(type) ||
(String.class.equals(type) && isConfidential)) {
// GuardedString is a special case. It is a ICF-specific
// type
// implementing Potemkin-like security. Use a temporary
// "nonsense" type for now, so this will fail in tests and
// will be fixed later
// propXsdType = SchemaConstants.T_PROTECTED_STRING_TYPE;
propXsdType = ProtectedStringType.COMPLEX_TYPE;
} else if (GuardedByteArray.class.equals(type) ||
(Byte.class.equals(type) && isConfidential)) {
// GuardedString is a special case. It is a ICF-specific
// type
// implementing Potemkin-like security. Use a temporary
// "nonsense" type for now, so this will fail in tests and
// will be fixed later
// propXsdType = SchemaConstants.T_PROTECTED_BYTE_ARRAY_TYPE;
propXsdType = ProtectedByteArrayType.COMPLEX_TYPE;
} else {
propXsdType = XsdTypeMapper.toXsdType(type);
}
return propXsdType;
}
代码示例来源:origin: Evolveum/midpoint
@Deprecated // do NOT use form the outside of prism
public static boolean canConvert(Class<?> clazz) {
return (XsdTypeMapper.getJavaToXsdMapping(clazz) != null);
}
代码示例来源:origin: Evolveum/midpoint
private static void initTypeMap() throws IOException, ClassNotFoundException {
addMapping(String.class, DOMUtil.XSD_STRING, true);
addMapping(char.class, DOMUtil.XSD_STRING, false);
addMapping(File.class, DOMUtil.XSD_STRING, false);
addMapping(int.class, DOMUtil.XSD_INT, true);
addMapping(Integer.class, DOMUtil.XSD_INT, false);
addMapping(BigInteger.class, DOMUtil.XSD_INTEGER, true);
addMapping(BigDecimal.class, DOMUtil.XSD_DECIMAL, true);
addMapping(double.class, DOMUtil.XSD_DOUBLE, true);
addMapping(Double.class, DOMUtil.XSD_DOUBLE, false);
addMapping(float.class, DOMUtil.XSD_FLOAT, true);
addMapping(Float.class, DOMUtil.XSD_FLOAT, false);
addMapping(long.class, DOMUtil.XSD_LONG, true);
addMapping(Long.class, DOMUtil.XSD_LONG, false);
addMapping(short.class, DOMUtil.XSD_SHORT, true);
addMapping(Short.class, DOMUtil.XSD_SHORT, false);
addMapping(byte.class, DOMUtil.XSD_BYTE, true);
addMapping(Byte.class, DOMUtil.XSD_BYTE, false);
addMapping(boolean.class, DOMUtil.XSD_BOOLEAN, true);
addMapping(Boolean.class, DOMUtil.XSD_BOOLEAN, false);
addMapping(byte[].class, DOMUtil.XSD_BASE64BINARY, true);
addMapping(GregorianCalendar.class, DOMUtil.XSD_DATETIME, false);
addMapping(XMLGregorianCalendar.class, DOMUtil.XSD_DATETIME, true);
addMapping(ZonedDateTime.class, DOMUtil.XSD_DATETIME, false);
addMapping(Duration.class, DOMUtil.XSD_DURATION, true);
addMapping(ItemPathType.class, ItemPathType.COMPLEX_TYPE, true);
addMapping(UniformItemPath.class, ItemPathType.COMPLEX_TYPE, false);
代码示例来源:origin: Evolveum/midpoint
@Test
public void testXmlDateTimeType() throws Exception {
assertEquals("Wrong datetime class", XMLGregorianCalendar.class, XsdTypeMapper.toJavaType(DOMUtil.XSD_DATETIME));
assertEquals("Wrong datetime class", DOMUtil.XSD_DATETIME, XsdTypeMapper.toXsdType(XMLGregorianCalendar.class));
}
代码示例来源:origin: Evolveum/midpoint
private int getMinOccurs() {
if (credentialPolicy == null) {
return 0;
}
String minOccursPhrase = credentialPolicy.getMinOccurs();
if (minOccursPhrase == null && valuePolicy != null) {
minOccursPhrase = valuePolicy.getMinOccurs(); // deprecated but let's consider it
}
Integer minOccurs = XsdTypeMapper.multiplicityToInteger(minOccursPhrase);
return defaultIfNull(minOccurs, 0);
}
代码示例来源:origin: Evolveum/midpoint
Object v = xprim.getValue();
if (v != null) {
typeQName = XsdTypeMapper.toXsdType(v.getClass());
typeQName = XsdTypeMapper.determineQNameWithNs(typeQName);
代码示例来源:origin: Evolveum/midpoint
private static boolean isMatchingConstraint(OrderConstraintsType orderConstraint, EvaluationOrder evaluationOrder) {
int evaluationOrderInt = evaluationOrder.getMatchingRelationOrder(orderConstraint.getRelation());
if (orderConstraint.getOrder() != null) {
return orderConstraint.getOrder() == evaluationOrderInt;
} else {
int orderMin = 1;
int orderMax = 1;
if (orderConstraint.getOrderMin() != null) {
orderMin = XsdTypeMapper.multiplicityToInteger(orderConstraint.getOrderMin());
}
if (orderConstraint.getOrderMax() != null) {
orderMax = XsdTypeMapper.multiplicityToInteger(orderConstraint.getOrderMax());
}
return XsdTypeMapper.isMatchingMultiplicity(evaluationOrderInt, orderMin, orderMax);
}
}
代码示例来源:origin: Evolveum/midpoint
/**
* Returns the class in the type mapping.
* The class supplied by the caller may be a subclass of what we have in the map.
* This returns the class that in the mapping.
*/
public static Class<?> getTypeFromClass(Class<?> clazz) {
if (javaToXsdTypeMap.containsKey(clazz)) {
return clazz;
}
Class<?> superClazz = clazz.getSuperclass();
if (superClazz != null) {
return getTypeFromClass(superClazz);
}
return null;
}
代码示例来源:origin: Evolveum/midpoint
autzOrderMin = XsdTypeMapper.multiplicityToInteger(autzOrderConstraints.getOrderMin());
if (autzOrderMin == null) {
if (autzOrder == null) {
autzOrderMax = XsdTypeMapper.multiplicityToInteger(autzOrderConstraints.getOrderMax());
if (autzOrderMax == null) {
if (autzOrder == null) {
Integer paramOrderMin = XsdTypeMapper.multiplicityToInteger(paramOrderConstraint.getOrderMin());
if (paramOrderMin == null) {
paramOrderMin = paramOrder;
Integer paramOrderMax = XsdTypeMapper.multiplicityToInteger(paramOrderConstraint.getOrderMax());
if (paramOrderMax == null) {
paramOrderMax = paramOrder;
代码示例来源:origin: Evolveum/midpoint
public boolean canProcess(@NotNull Class<?> clazz) {
return !Containerable.class.isAssignableFrom(clazz) &&
(RawType.class.equals(clazz) || clazz.getAnnotation(XmlType.class) != null || XsdTypeMapper.getTypeFromClass(clazz) != null);
}
代码示例来源:origin: Evolveum/midpoint
@Nullable
public static <T> Class<T> toJavaType(@NotNull QName xsdType) {
//noinspection ConstantConditions
return toJavaType(xsdToJavaTypeMap, xsdType, true);
}
代码示例来源:origin: Evolveum/midpoint
private ItemDefinition<?> createPropertyDefinition(MutablePrismContainerDefinition<?> configurationContainerDef,
PropertyDescriptor prop) {
String propName = prop.getName();
Class<?> propertyType = prop.getPropertyType();
Class<?> baseType = propertyType;
int minOccurs = 1;
int maxOccurs = 1;
if (propertyType.isArray()) {
maxOccurs = -1;
baseType = propertyType.getComponentType();
}
// TODO: minOccurs: define which properties are optional/mandatory
// TODO: display names, ordering, help texts
QName propType = XsdTypeMapper.toXsdType(baseType);
return configurationContainerDef.createPropertyDefinition(new QName(configurationContainerDef.getName().getNamespaceURI(), propName),
propType, minOccurs, maxOccurs);
}
代码示例来源:origin: Evolveum/midpoint
private void setMultiplicity(MutableItemDefinition itemDef, XSParticle particle, XSAnnotation annotation,
boolean topLevel) {
if (topLevel || particle == null) {
itemDef.setMinOccurs(0);
Element maxOccursAnnotation = SchemaProcessorUtil.getAnnotationElement(annotation, A_MAX_OCCURS);
if (maxOccursAnnotation != null) {
String maxOccursString = maxOccursAnnotation.getTextContent();
int maxOccurs = XsdTypeMapper.multiplicityToInteger(maxOccursString);
itemDef.setMaxOccurs(maxOccurs);
} else {
itemDef.setMaxOccurs(-1);
}
} else {
// itemDef.setMinOccurs(particle.getMinOccurs());
// itemDef.setMaxOccurs(particle.getMaxOccurs());
itemDef.setMinOccurs(particle.getMinOccurs().intValue());
itemDef.setMaxOccurs(particle.getMaxOccurs().intValue());
}
}
代码示例来源:origin: Evolveum/midpoint
public static QName toXsdType(Class javaClass) {
QName xsdType = getJavaToXsdMapping(javaClass);
if (xsdType == null) {
throw new IllegalArgumentException("No XSD mapping for Java type " + javaClass.getCanonicalName());
}
return xsdType;
}
代码示例来源:origin: Evolveum/midpoint
/**
* @param val
* @param elementName
* @param doc
* @param recordType
* @return created element
* @throws SchemaException
*/
public static Element toXsdElement(Object val, QName elementName, Document doc, boolean recordType) throws SchemaException {
if (val == null) {
// if no value is specified, do not create element
return null;
}
Class type = XsdTypeMapper.getTypeFromClass(val.getClass());
if (type == null) {
throw new IllegalArgumentException("No type mapping for conversion: " + val.getClass() + "(element " + elementName + ")");
}
if (doc == null) {
doc = DOMUtil.getDocument();
}
Element element = doc.createElementNS(elementName.getNamespaceURI(), elementName.getLocalPart());
//TODO: switch to global namespace prefixes map
// element.setPrefix(MidPointNamespacePrefixMapper.getPreferredPrefix(elementName.getNamespaceURI()));
toXsdElement(val, element, recordType);
return element;
}
代码示例来源:origin: Evolveum/midpoint
@Nullable
public static <T> Class<T> toJavaTypeIfKnown(@NotNull QName xsdType) {
return toJavaType(xsdToJavaTypeMap, xsdType, false);
}
代码示例来源:origin: Evolveum/midpoint
/**
* For cases when XSD complex type has a simple content. In that case the resulting class has @XmlValue annotation.
*/
private <T> PrimitiveXNodeImpl<T> marshallBeanToPrimitive(Object bean, SerializationContext ctx, Field valueField) throws SchemaException {
if (!valueField.isAccessible()) {
valueField.setAccessible(true);
}
T value;
try {
value = (T) valueField.get(bean);
} catch (IllegalArgumentException | IllegalAccessException e) {
throw new SchemaException("Cannot get primitive value from field " + valueField.getName() + " of bean " + bean + ": "+e.getMessage(), e);
}
PrimitiveXNodeImpl<T> xnode = new PrimitiveXNodeImpl<>(value);
Class<?> fieldType = valueField.getType();
QName xsdType = XsdTypeMapper.toXsdType(fieldType);
xnode.setTypeQName(xsdType);
return xnode;
}
代码示例来源:origin: Evolveum/midpoint
Integer requiredMultiplicity = XsdTypeMapper.multiplicityToInteger(constraint.getValue().getMultiplicity());
if (requiredMultiplicity == null) {
return null;
Integer requiredMultiplicity = XsdTypeMapper.multiplicityToInteger(constraint.getValue().getMultiplicity());
if (requiredMultiplicity == null) {
return null;
代码示例来源:origin: Evolveum/midpoint
public static QName getJavaToXsdMapping(Class<?> type) {
if (javaToXsdTypeMap.containsKey(type)) {
return javaToXsdTypeMap.get(type);
}
Class<?> superType = type.getSuperclass();
if (superType != null) {
return getJavaToXsdMapping(superType);
}
return null;
}
内容来源于网络,如有侵权,请联系作者删除!