if (returnTypeDef == null) { returnTypeDef = (D) prismContext.definitionFactory().createPropertyDefinition(SchemaConstantsGenerated.C_VALUE, returnType); returnTypeDef.toMutable().setMaxOccurs(functionToExecute.getReturnMultiplicity() != null && functionToExecute.getReturnMultiplicity() == ExpressionReturnMultiplicityType.SINGLE ? 1 : -1);
@Test public void testExtensionEnum() throws Exception { Session session = getFactory().openSession(); QName valueName = new QName(NS_P, "enumType"); ItemDefinition def = getDefinition(GenericObjectType.class, ItemPath.create(ObjectType.F_EXTENSION, valueName)); AssertJUnit.assertNotNull(def); PrismProperty item = (PrismProperty) def.instantiate(); item.setRealValue(BeforeAfterType.AFTER); def.toMutable().setName(valueName); RAnyConverter converter = new RAnyConverter(prismContext, extItemDictionary); Set<RAnyValue<?>> values; try { values = converter.convertToRValue(item, false, RObjectExtensionType.EXTENSION); AssertJUnit.fail("Should have throw serialization related exception after creating ext item"); } catch (DtoTranslationException ex) { AssertJUnit.assertTrue(SerializationRelatedException.class.equals(ex.getCause().getClass())); } values = converter.convertToRValue(item, false, RObjectExtensionType.EXTENSION); AssertJUnit.assertEquals("Expected only one enum value, but was " + values.size(), 1, values.size()); RAnyValue value = values.iterator().next(); AssertJUnit.assertEquals("after", value.getValue()); session.close(); }
private void changeDefinition(QName piracyShip, QName piracyShipBroken) { PrismObjectDefinition<UserType> userDef = prismContext.getSchemaRegistry() .findObjectDefinitionByCompileTimeClass(UserType.class); PrismContainerDefinition<?> extensionDefinition = userDef.getExtensionDefinition(); List<? extends ItemDefinition> extensionDefs = extensionDefinition.getComplexTypeDefinition().getDefinitions(); for (ItemDefinition itemDefinition : extensionDefs) { if (itemDefinition.getName().equals(piracyShip)) { //iterator.remove(); // not possible as the collection is unmodifiable itemDefinition.toMutable().setName(piracyShipBroken); } } }
itemDefinition.toMutable().setMaxOccurs(-1);
MutableItemDefinition<?> mutableDef = itemDef.toMutable();