default String debugDump(int indent, IdentityHashMap<Definition,Object> seen) { return debugDump(indent); }
private String getTypeBaseName(Definition def) { return def.getTypeName().getLocalPart(); }
private void addCommonDefinitionAnnotations(Definition definition, Element appinfoElement) { if (definition.getProcessing() != null) { addAnnotation(A_PROCESSING, definition.getProcessing().getValue(), appinfoElement); } if ((definition instanceof ItemDefinition) && ((ItemDefinition)definition).isOperational()) { addAnnotation(A_OPERATIONAL, "true", appinfoElement); } if (definition.getDisplayName() != null) { addAnnotation(A_DISPLAY_NAME, definition.getDisplayName(), appinfoElement); } if (definition.getDisplayOrder() != null) { addAnnotation(A_DISPLAY_ORDER, definition.getDisplayOrder().toString(), appinfoElement); } if (definition.getHelp() != null) { addAnnotation(A_HELP, definition.getHelp(), appinfoElement); } if (definition.isEmphasized()) { addAnnotation(A_EMPHASIZED, "true", appinfoElement); } }
if (itemDefinition != null && itemDefinition.getDisplayName() != null) { sb.append(resolve(itemDefinition.getDisplayName())); } else { sb.append(ItemPath.toName(segment).getLocalPart());
default SchemaRegistry getSchemaRegistry() { PrismContext prismContext = getPrismContext(); return prismContext != null ? prismContext.getSchemaRegistry() : null; }
public static <D extends Definition> D getOne(List<D> list) { if (list.isEmpty()) { return null; } else if (list.size() == 1) { return list.get(0); } else { // consider not deprecated ones List<D> notDeprecated = list.stream() .filter(def -> !def.isDeprecated()) .collect(Collectors.toList()); if (notDeprecated.size() == 1) { return notDeprecated.get(0); } else { throw new IllegalStateException("More than one definition found: " + list); } } }
return (T) ((Definition)orig).clone();
private File prepareDefinitionOutputFile(PrismSchema schema, Definition definition, String subDirName) { File schemaOutputDir = getSchemaDir(schema); File subDir = new File(schemaOutputDir, subDirName); if (!subDir.exists()) { subDir.mkdirs(); } return new File(subDir, definition.getTypeName().getLocalPart() + ".html"); }
@Override public String debugDump(int indent) { IdentityHashMap<Definition, Object> seen = new IdentityHashMap<>(); StringBuilder sb = new StringBuilder(); for (int i=0;i<indent;i++) { sb.append(INDENT_STRING); } sb.append(toString()).append("\n"); Iterator<Definition> i = definitions.iterator(); while (i.hasNext()) { Definition def = i.next(); sb.append(def.debugDump(indent+1, seen)); if (i.hasNext()) { sb.append("\n"); } } return sb.toString(); }
@NotNull @Override @SuppressWarnings("unchecked") public <TD extends TypeDefinition> Collection<TD> findTypeDefinitionsByType(@NotNull QName typeName, @NotNull Class<TD> definitionClass) { return (List) definitions.stream() .filter(def -> definitionClass.isAssignableFrom(def.getClass()) && QNameUtil.match(typeName, def.getTypeName())) .collect(Collectors.toList()); }
@Override public String debugDump(int indent, IdentityHashMap<Definition, Object> seen) { StringBuilder sb = new StringBuilder(); DebugUtil.indentDebugDump(sb, indent); sb.append(toString()); if (isRuntimeSchema()) { sb.append(" dynamic"); } if (seen.containsKey(this) || complexTypeDefinition != null && seen.containsKey(complexTypeDefinition)) { sb.append(" (already shown)"); } else { seen.put(this, null); if (complexTypeDefinition != null) { seen.put(complexTypeDefinition, null); } for (Definition def : getDefinitions()) { sb.append("\n"); sb.append(def.debugDump(indent + 1, seen)); } } return sb.toString(); }
@NotNull public <ID extends ItemDefinition> List<ID> findItemDefinitionsByCompileTimeClass( @NotNull Class<?> compileTimeClass, @NotNull Class<ID> definitionClass) { List<ID> found = new ArrayList<>(); for (Definition def: definitions) { if (definitionClass.isAssignableFrom(def.getClass())) { if (def instanceof PrismContainerDefinition) { @SuppressWarnings("unchecked") ID contDef = (ID) def; if (compileTimeClass.equals(((PrismContainerDefinition) contDef).getCompileTimeClass())) { found.add(contDef); } } else if (def instanceof PrismPropertyDefinition) { if (compileTimeClass.equals(prismContext.getSchemaRegistry().determineClassForType(def.getTypeName()))) { @SuppressWarnings("unchecked") ID itemDef = (ID) def; found.add(itemDef); } } else { // skipping the definition (PRD is not supported yet) } } } return found; }
@Override public String debugDump(int indent) { StringBuilder sb = new StringBuilder(); for (int i=0; i<indent; i++) { sb.append(DebugDumpable.INDENT_STRING); } sb.append(toString()); for (Definition def : getDefinitions()) { sb.append("\n"); if (def instanceof ResourceAttributeDefinition) { ResourceAttributeDefinition attrDef = (ResourceAttributeDefinition)def; sb.append(attrDef.debugDump(indent+1)); if (attrDef.isPrimaryIdentifier(this)) { sb.deleteCharAt(sb.length()-1); sb.append(" id"); } } else { sb.append(def.debugDump(indent+1)); } } return sb.toString(); }
@Test public void test031ResourceSchemaAccountObjectClass() throws Exception { final String TEST_NAME = "test031ResourceSchemaAccountObjectClass"; TestUtil.displayTestTitle(TEST_NAME); OperationResult result = new OperationResult(TestUcfDummy.class + "." + TEST_NAME); cc = connectorFactory.createConnectorInstance(connectorType, ResourceTypeUtil.getResourceNamespace(resourceType), "dummy", "description of dummy test connector instance"); assertNotNull("Failed to instantiate connector", cc); PrismContainerValue<ConnectorConfigurationType> configContainer = resourceType.getConnectorConfiguration().asPrismContainerValue(); display("Configuration container", configContainer); cc.configure(configContainer, result); List<QName> objectClassesToGenerate = new ArrayList<>(); QName accountObjectClass = new QName(resource.asObjectable().getNamespace(), "AccountObjectClass"); objectClassesToGenerate.add(accountObjectClass); // WHEN resourceSchema = cc.fetchResourceSchema(objectClassesToGenerate, result); // THEN display("Generated resource schema", resourceSchema); assertEquals("Unexpected number of definitions", 1, resourceSchema.getDefinitions().size()); assertEquals("Unexpected number of object class definitions", 1, resourceSchema.getObjectClassDefinitions().size()); display("RESOURCE SCHEMA DEFINITION" + resourceSchema.getDefinitions().iterator().next().getTypeName()); }