Interface SchemaBuilder

All Known Subinterfaces:
NativeResourceSchema.NativeResourceSchemaBuilder
All Known Implementing Classes:
BareResourceSchemaImpl, CompleteResourceSchemaImpl, ConnectorSchemaImpl, NativeResourceSchemaImpl, com.evolveum.midpoint.prism.impl.schema.PrismSchemaImpl, ResourceSchemaImpl

public interface SchemaBuilder
Builds both prism and non-prism schemas.
  • Method Details

    • getNamespace

      @NotNull @NotNull String getNamespace()
      Namespace of the schema that is being built.
    • newComplexTypeDefinitionLikeBuilder

      @NotNull @NotNull ComplexTypeDefinition.ComplexTypeDefinitionLikeBuilder newComplexTypeDefinitionLikeBuilder(String localTypeName)
      Returns the builder for complex type definition; does not add anything to the schema (yet). We use this one instead of simply creating a new ComplexTypeDefinition using the DefinitionFactory in order to be able to build non-prism definitions, i.e., ones that are not of Definition type.
    • add

      void add(@NotNull @NotNull Definition.DefinitionBuilder builder)
      Adds the definition corresponding to provided builder - potentially incomplete - to the schema.
    • addDelayedItemDefinition

      void addDelayedItemDefinition(ItemDefinitionSupplier supplier)
      Some containers cannot be added to the schema immediately, because their CTD is not yet parsed. This can occur when multiple schemas with circular dependencies are present. So we add them only after all the schemas are parsed.
    • findTypeDefinitionByType

      AbstractTypeDefinition findTypeDefinitionByType(@NotNull @NotNull QName typeName)
      Returns existing type definition (if there's one) in the schema being built. This is used when types can be referenced by other types, e.g., in the case of complex types. Its implementation is optional; currently, it is used only in genuine prism schemas.
    • isRuntime

      boolean isRuntime()
    • setRuntime

      void setRuntime(boolean value)