@SuppressWarnings("unchecked") public static <T> T convert(Class<T> expectedType, Object rawValue) { return (T) convert(expectedType, rawValue, true); }
public T getParsedValue(@NotNull QName typeName, @Nullable Class<T> expectedClass, XNodeProcessorEvaluationMode mode) throws SchemaException { if (!isParsed()) { parseValue(typeName, mode); } if (JavaTypeConverter.isTypeCompliant(value, expectedClass)) { return value; } else { throw new SchemaException("Expected " + expectedClass + " but got " + value.getClass() + " instead. Value is " + value); } }
XMLGregorianCalendar xmlCalType = magicDateTimeParse((String)rawValue); return xmlCalType;
private <T> T getDisableValue(ActivationStatusCapabilityType capActStatus, Class<T> clazz) { //TODO some checks Object value = capActStatus.getDisableValue().iterator().next(); return JavaTypeConverter.convert(clazz, value); }
private <T> T getEnableValue(ActivationStatusCapabilityType capActStatus, Class<T> clazz) { String value = capActStatus.getEnableValue().iterator().next(); return JavaTypeConverter.convert(clazz, value); }
@Override public T parse(QName typeName, XNodeProcessorEvaluationMode mode) throws SchemaException { Class clazz = XsdTypeMapper.toJavaType(typeName); if (clazz == null) { throw new SchemaException("Unsupported type " + typeName); } return (T) JavaTypeConverter.convert(clazz, ""); }
@Test public void testJavaStringToXMLGregorianCalendarWrongFormat() throws Exception { String stringDate = "blah blah blah"; try { // WHEN XMLGregorianCalendar xmlGregorianCalendar = JavaTypeConverter.convert(XMLGregorianCalendar.class, stringDate); AssertJUnit.fail("Unexpected success"); } catch (IllegalArgumentException e) { // This is expected // THEN assertTrue("Wrong exception message: "+e.getMessage(), e.getMessage().contains("Unable to parse the date")); } }
@Test public void testJavaXMLGregorianCalendarToString() throws Exception { XMLGregorianCalendar cal = XmlTypeConverter.createXMLGregorianCalendar(1975, 5, 30, 21, 30, 0); // WHEN String string = JavaTypeConverter.convert(String.class, cal); // THEN PrismAsserts.assertEquals("Wrong java value", "1975-05-30T21:30:00.000Z", string); }
@Test public void testJavaStringToXMLGregorianCalendar() throws Exception { String stringDate = "1975-05-30T21:30:00.000Z"; // WHEN XMLGregorianCalendar xmlGregorianCalendar = JavaTypeConverter.convert(XMLGregorianCalendar.class, stringDate); // THEN XMLGregorianCalendar expectedCal = XmlTypeConverter.createXMLGregorianCalendar(1975, 5, 30, 21, 30, 0); PrismAsserts.assertEquals("Wrong java value", expectedCal, xmlGregorianCalendar); }
@Test public void testJavaXMLGregorianCalendarToLong() throws Exception { XMLGregorianCalendar cal = XmlTypeConverter.createXMLGregorianCalendar(1975, 5, 30, 21, 30, 0); // WHEN Long val = JavaTypeConverter.convert(Long.class, cal); // THEN PrismAsserts.assertEquals("Wrong java value", 170717400000L, val); }
public <T> T getSingleArgumentValue(List<ActionParameterValueType> arguments, String parameterName, boolean required, boolean requiredNonNull, String context, PipelineData input, ExecutionContext executionContext, Class<T> clazz, OperationResult result) throws ScriptExecutionException { ActionParameterValueType paramValue = getArgument(arguments, parameterName, required, requiredNonNull, context); if (paramValue == null) { return null; } PipelineData paramData = evaluateParameter(paramValue, clazz, input, executionContext, result); if (paramData.getData().size() != 1) { throw new ScriptExecutionException("Exactly one item was expected in '" + parameterName + "' parameter. Got " + paramData.getData().size()); } PrismValue prismValue = paramData.getData().get(0).getValue(); if (!(prismValue instanceof PrismPropertyValue)) { throw new ScriptExecutionException("A prism property value was expected in '" + parameterName + "' parameter. Got " + prismValue.getClass().getName() + " instead."); } Object value = ((PrismPropertyValue) prismValue).getValue(); try { return JavaTypeConverter.convert(clazz, value); } catch (Throwable t) { throw new ScriptExecutionException("Couldn't retrieve value of parameter '" + parameterName + "': " + t.getMessage(), t); } } }
public static <T,X> PrismPropertyValue<X> convertPropertyValue(PrismPropertyValue<T> srcVal, PrismPropertyDefinition<T> srcDef, PrismPropertyDefinition<X> targetDef, PrismContext prismContext) { if (targetDef.getTypeName().equals(srcDef.getTypeName())) { return (PrismPropertyValue<X>) srcVal; } else { Class<X> expectedJavaType = XsdTypeMapper.toJavaType(targetDef.getTypeName()); X convertedRealValue = JavaTypeConverter.convert(expectedJavaType, srcVal.getValue()); return prismContext.itemFactory().createPropertyValue(convertedRealValue); } }
public static <T,X> PrismProperty<X> convertProperty(PrismProperty<T> srcProp, PrismPropertyDefinition<X> targetDef, PrismContext prismContext) throws SchemaException { if (targetDef.getTypeName().equals(srcProp.getDefinition().getTypeName())) { return (PrismProperty<X>) srcProp; } else { PrismProperty<X> targetProp = targetDef.instantiate(); Class<X> expectedJavaType = XsdTypeMapper.toJavaType(targetDef.getTypeName()); for (PrismPropertyValue<T> srcPVal: srcProp.getValues()) { X convertedRealValue = JavaTypeConverter.convert(expectedJavaType, srcPVal.getValue()); targetProp.add(prismContext.itemFactory().createPropertyValue(convertedRealValue)); } return targetProp; } }