@Override public String toString() { // we don't delegate to PrismObject, because various exceptions during that process could in turn call this method StringBuilder sb = new StringBuilder(); sb.append("POV:"); if (getParent() != null) { sb.append(getParent().getElementName().getLocalPart()).append(":"); } else if (getComplexTypeDefinition() != null) { sb.append(getComplexTypeDefinition().getTypeName().getLocalPart()).append(":"); } sb.append(oid).append("("); PrismProperty nameProperty = findProperty(new ItemName(PrismConstants.NAME_LOCAL_NAME)); sb.append(nameProperty != null ? nameProperty.getRealValue() : null); sb.append(")"); return sb.toString(); }
private C asContainerableInternal(Class<C> clazz) { if (clazz == null) { String elementName = getParent() != null ? String.valueOf(getParent().getElementName()) : String.valueOf(this); throw new SystemException("Unknown compile time class of container value of '" + elementName + "'."); } if (Modifier.isAbstract(clazz.getModifiers())) { throw new SystemException("Can't create instance of class '" + clazz.getSimpleName() + "', it's abstract."); } try { if (prismContext != null) { containerable = clazz.getConstructor(PrismContext.class).newInstance(prismContext); } else { containerable = clazz.newInstance(); } containerable.setupContainerValue(this); return containerable; } catch (SystemException ex) { throw ex; } catch (Exception ex) { throw new SystemException("Couldn't create jaxb object instance of '" + clazz + "': "+ex.getMessage(), ex); } }
private <IV extends PrismValue,ID extends ItemDefinition> Item<IV,ID> findItemByQName(QName subName) throws SchemaException { if (items == null) { return null; } Item<IV,ID> matching = null; for (Item<?,?> item : items) { if (QNameUtil.match(subName, item.getElementName())) { if (matching != null) { String containerName = getParent() != null ? DebugUtil.formatElementName(getParent().getElementName()) : ""; throw new SchemaException("More than one items matching " + subName + " in container " + containerName); } else { matching = (Item<IV, ID>) item; } } } return matching; }