@Nullable private <IV extends PrismValue> IV getSingleParentlessValue(Item<IV, ?> item) { if (item.size() == 0) { return null; } else if (item.size() == 1) { IV value = item.getValues().get(0); value.setParent(null); return value; } else { throw new IllegalStateException("Expected one item value, got " + item.getValues().size() + " while parsing " + item); } }
private V getSingleValue(Item<V, D> item) { if (item == null || item.isEmpty()) { return null; } else if (item.size() == 1) { return item.getAnyValue(); } else { throw new IllegalStateException("Multiple values where single one was expected: " + item); } }
private void formatPrismReference(StringBuilder sb, String prefix, Item item, boolean mightBeRemoved) { sb.append(prefix); sb.append(" - "); sb.append(getItemLabel(item)); sb.append(": "); if (item.size() > 1) { for (PrismReferenceValue referenceValue : ((PrismReference) item).getValues()) { sb.append("\n"); sb.append(prefix).append(" - "); sb.append(formatReferenceValue(referenceValue, mightBeRemoved)); } } else if (item.size() == 1) { sb.append(formatReferenceValue(((PrismReference) item).getAnyValue(), mightBeRemoved)); } sb.append("\n"); }
private void formatPrismProperty(StringBuilder sb, String prefix, Item item) { sb.append(prefix); sb.append(" - "); sb.append(getItemLabel(item)); sb.append(": "); if (item.size() > 1) { for (PrismPropertyValue propertyValue : ((PrismProperty<?>) item).getValues()) { sb.append("\n"); sb.append(prefix).append(" - "); sb.append(ValueDisplayUtil.toStringValue(propertyValue)); } } else if (item.size() == 1) { sb.append(ValueDisplayUtil.toStringValue(((PrismProperty<?>) item).getAnyValue())); } sb.append("\n"); }
public static <IV extends PrismValue,ID extends ItemDefinition> List<JAXBElement<RawType>> serializeValueElements(Item<IV,ID> item, String contextDescription) throws SchemaException { if (item == null) { return null; } List<JAXBElement<RawType>> elements = new ArrayList<>(item.size()); for (PrismValue value : item.getValues()) { RootXNode xnode = item.getPrismContext().xnodeSerializer().serialize(value); RawType rawType = new RawType(xnode.getSubnode(), item.getPrismContext()); JAXBElement<RawType> jaxbElement = new JAXBElement<>(SchemaConstants.C_VALUE, RawType.class, rawType); elements.add(jaxbElement); } return elements; }
public static Object getItemRealValue(PrismContainerValue containerValue, String itemName) { Item item = containerValue.findItem(new ItemName(itemName)); if (item == null || item.size() == 0) { return null; } if (item.size() > 1) { throw new IllegalStateException("More than one value in item " + item); } PrismValue value = item.getAnyValue(); if (value == null) { return null; } if (value instanceof PrismPropertyValue) { return ((PrismPropertyValue) value).getValue(); } else if (value instanceof PrismReferenceValue) { ObjectReferenceType ort = new ObjectReferenceType(); ort.setupReferenceValue((PrismReferenceValue) value); return ort; } else if (value instanceof PrismContainerValue) { return ((PrismContainerValue) value).asContainerable(); // questionable } else { throw new IllegalStateException("Unknown PrismValue: " + value); } }
/** * Marshals everything from the item except for the root node. * Separated from marshalItemAsRoot in order to be reusable. */ @NotNull private XNodeImpl marshalItemContent(@NotNull Item<?, ?> item, ItemDefinition itemDefinition, SerializationContext context) throws SchemaException { if (item.size() == 1) { return marshalItemValue(item.getAnyValue(), itemDefinition, null, context); } else { ListXNodeImpl xlist = new ListXNodeImpl(); for (PrismValue val : item.getValues()) { xlist.add(marshalItemValue(val, itemDefinition, null, context)); } return xlist; } }