Package org.spdx.v3jsonldstore
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 Summary
Fields Modifier and Type Field Description static Set<String>
BOOLEAN_TYPES
static Set<String>
DOUBLE_TYPES
static Set<String>
INTEGER_TYPES
static Map<String,String>
RESERVED_JAVA_WORDS
static Map<String,String>
REVERSE_JAVA_WORDS
static Set<String>
STRING_TYPES
-
Constructor Summary
Constructors Constructor Description JsonLDSchema(String schemaFileName, String contextFileName, String modelFileName)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Collection<net.jimblackler.jsonschemafriend.Schema>
getAllClasses()
List<String>
getAnyLicenseInfoTypes()
Optional<net.jimblackler.jsonschemafriend.Schema>
getClassSchema(String className)
List<String>
getElementTypes()
Optional<org.spdx.storage.PropertyDescriptor>
getPropertyDescriptor(String fieldName)
Optional<String>
getPropertyType(String propertyName)
Optional<String>
getType(net.jimblackler.jsonschemafriend.Schema classSchema)
Optional<URI>
getTypeUri(net.jimblackler.jsonschemafriend.Schema classSchema)
Optional<String>
getVocab(String propertyName)
boolean
hasProperty(String propertyName, net.jimblackler.jsonschemafriend.Schema schema)
boolean
isEnum(String propertyName)
boolean
isIndividual(String propertyName, String propertyValue)
boolean
isSpdxObject(String propertyName)
boolean
isSubclassOf(String superClassType, net.jimblackler.jsonschemafriend.Schema subClass)
boolean
validate(com.fasterxml.jackson.databind.JsonNode root)
boolean
validate(File spdxJsonFile)
-
-
-
Constructor Detail
-
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 directorycontextFileName
- File name for the context file in the resources directorymodelFileName
- File name for the model file in the resources directory- Throws:
net.jimblackler.jsonschemafriend.GenerationException
- on schema loading error
-
-
Method Detail
-
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 typesubClass
- 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 checkschema
- 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
-
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<org.spdx.storage.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 propertypropertyValue
- 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
-
-