Class JsonLDSchema

java.lang.Object
org.spdx.v3jsonldstore.JsonLDSchema

public class JsonLDSchema extends Object
Represents the JSON Schema for SPDX 3.X includes a number of convenience methods
Author:
Gary O'Neall
  • Field Details

    • RESERVED_JAVA_WORDS

      public static final Map<String,String> RESERVED_JAVA_WORDS
    • REVERSE_JAVA_WORDS

      public static final Map<String,String> REVERSE_JAVA_WORDS
    • BOOLEAN_TYPES

      public static final Set<String> BOOLEAN_TYPES
    • INTEGER_TYPES

      public static final Set<String> INTEGER_TYPES
    • DOUBLE_TYPES

      public static final Set<String> DOUBLE_TYPES
    • STRING_TYPES

      public static final Set<String> STRING_TYPES
  • Constructor Details

    • JsonLDSchema

      public JsonLDSchema(String schemaFileName, String contextFileName, String modelFileName) throws net.jimblackler.jsonschemafriend.GenerationException
      Parameters:
      schemaFileName - File name for the schema file in the resources directory
      contextFileName - File name for the context file in the resources directory
      modelFileName - File name for the model file in the resources directory
      Throws:
      net.jimblackler.jsonschemafriend.GenerationException - on schema loading error
  • Method Details

    • getAllClasses

      public Collection<net.jimblackler.jsonschemafriend.Schema> getAllClasses()
      Returns:
      a list of schemas for all classes defined in the SPDX schema
    • isSubclassOf

      public boolean isSubclassOf(String superClassType, net.jimblackler.jsonschemafriend.Schema subClass) throws URISyntaxException
      Parameters:
      superClassType - superclass type
      subClass - schema for the subclass
      Returns:
      true if the subClass schema contains the property restrictions for the superclass types
      Throws:
      URISyntaxException - on a bad superClassType string
    • hasProperty

      public boolean hasProperty(String propertyName, net.jimblackler.jsonschemafriend.Schema schema)
      Parameters:
      propertyName - name of the property to check
      schema - schema containing property restrictions
      Returns:
      true if the schema requires a property named propertyName via properties, subSchemas, or allOf
    • getClassSchema

      public Optional<net.jimblackler.jsonschemafriend.Schema> getClassSchema(String className)
      Parameters:
      className - name of the class
      Returns:
      schema for the class if it exists
    • getTypeUri

      public Optional<URI> getTypeUri(net.jimblackler.jsonschemafriend.Schema classSchema)
      Parameters:
      classSchema - schema for a class
      Returns:
      type URI for the type of the class from the JSON LD Context
    • getType

      public Optional<String> getType(net.jimblackler.jsonschemafriend.Schema classSchema)
      Parameters:
      classSchema - Schema for the class
      Returns:
      JSON Schema type name for the class
    • validate

      public boolean validate(com.fasterxml.jackson.databind.JsonNode root)
      Parameters:
      root - Root JSON node of the JSON representation of an SPDX serialization
      Returns:
      true if the JSON node is valid
    • validate

      public boolean validate(File spdxJsonFile) throws IOException
      Parameters:
      spdxJsonFile - file containing SPDX JSON LD content
      Returns:
      true if the JSON in file is valid according to the schema
      Throws:
      IOException - on file IO errors
    • getElementTypes

      public List<String> getElementTypes()
      Returns:
      the elementTypes
    • getAnyLicenseInfoTypes

      public List<String> getAnyLicenseInfoTypes()
      Returns:
      the anyLicenseInfoTypes
    • getPropertyType

      public Optional<String> getPropertyType(String propertyName)
      Parameters:
      propertyName - name of the property
      Returns:
      the JSON property type if it exists in the JSON-LD context
    • getVocab

      public Optional<String> getVocab(String propertyName)
      Parameters:
      propertyName - name of a property in the JSON LD schema
      Returns:
      the vocab definition
    • getPropertyDescriptor

      public Optional<PropertyDescriptor> getPropertyDescriptor(String fieldName)
      Parameters:
      fieldName - name of a JSON field / property
      Returns:
      the SPDX model property descriptor for the JSON property
    • isSpdxObject

      public boolean isSpdxObject(String propertyName)
      Parameters:
      propertyName - Name of the property
      Returns:
      true if the value associated with the property is an ID representing an SPDX Object
    • isIndividual

      public boolean isIndividual(String propertyName, String propertyValue)
      Parameters:
      propertyName - Name of the property
      propertyValue - property value
      Returns:
      true if the propertyValue represents an Individual from the vocabulary
    • isEnum

      public boolean isEnum(String propertyName)
      Parameters:
      propertyName - Name of the property
      Returns:
      true if the propertyValue represents an enumeration