Class LicenseInfoFactory

java.lang.Object
org.spdx.library.LicenseInfoFactory

public class LicenseInfoFactory extends Object
Factory for creating SPDXLicenseInfo objects from a Jena model
Author:
Gary O'Neall
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
     
    static org.spdx.library.model.v3_0_1.expandedlicensing.ListedLicenseException
     
    static org.spdx.library.model.v2.license.ListedLicenseException
     
    static org.spdx.library.model.v3_0_1.expandedlicensing.ListedLicense
     
    static org.spdx.library.model.v2.license.SpdxListedLicense
     
    static org.spdx.library.model.v3_0_1.core.CreationInfo
     
    static List<String>
     
    static boolean
     
    static boolean
     
     
     
    static org.spdx.library.model.v3_0_1.simplelicensing.AnyLicenseInfo
    Parses a license string and converts it into a SPDXLicenseInfo object Syntax - A license set must start and end with a parenthesis "(" A conjunctive license set will have and AND after the first licenseInfo term A disjunctive license set will have an OR after the first licenseInfo term If there is no And or Or, then it is converted to a simple license type A space or tab must be used between license ID's and the keywords AND and OR A licenseID must NOT be "AND" or "OR"
    static org.spdx.library.model.v3_0_1.simplelicensing.AnyLicenseInfo
    parseSPDXLicenseString(String licenseString, org.spdx.storage.IModelStore store, String customLicensePrefix, org.spdx.core.IModelCopyManager copyManager, List<org.spdx.library.model.v3_0_1.core.DictionaryEntry> customIdToUri)
    Parses a license string and converts it into a SPDXLicenseInfo object using the default creation information Syntax - A license set must start and end with a parenthesis "(" A conjunctive license set will have and AND after the first licenseInfo term A disjunctive license set will have an OR after the first licenseInfo term If there is no And or Or, then it is converted to a simple license type A space or tab must be used between license ID's and the keywords AND and OR A licenseID must NOT be "AND" or "OR"
    static org.spdx.library.model.v3_0_1.simplelicensing.AnyLicenseInfo
    parseSPDXLicenseString(String licenseString, org.spdx.storage.IModelStore store, String customLicensePrefix, org.spdx.library.model.v3_0_1.core.CreationInfo creationInfo, org.spdx.core.IModelCopyManager copyManager, List<org.spdx.library.model.v3_0_1.core.DictionaryEntry> customIdToUri)
    Parses a license string and converts it into a SPDXLicenseInfo object Syntax - A license set must start and end with a parenthesis "(" A conjunctive license set will have and AND after the first licenseInfo term A disjunctive license set will have an OR after the first licenseInfo term If there is no And or Or, then it is converted to a simple license type A space or tab must be used between license ID's and the keywords AND and OR A licenseID must NOT be "AND" or "OR"
    static org.spdx.library.model.v2.license.AnyLicenseInfo
    Parses a license string and converts it into a SPDXLicenseInfo object Syntax - A license set must start and end with a parenthesis "(" A conjunctive license set will have and AND after the first licenseInfo term A disjunctive license set will have an OR after the first licenseInfo term If there is no And or Or, then it is converted to a simple license type A space or tab must be used between license ID's and the keywords AND and OR A licenseID must NOT be "AND" or "OR"
    static org.spdx.library.model.v2.license.AnyLicenseInfo
    parseSPDXLicenseStringCompatV2(String licenseString, org.spdx.storage.IModelStore store, String documentUri, org.spdx.core.IModelCopyManager copyManager)
    Parses a license string and converts it into a SPDXLicenseInfo object Syntax - A license set must start and end with a parenthesis "(" A conjunctive license set will have and AND after the first licenseInfo term A disjunctive license set will have an OR after the first licenseInfo term If there is no And or Or, then it is converted to a simple license type A space or tab must be used between license ID's and the keywords AND and OR A licenseID must NOT be "AND" or "OR"

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • LicenseInfoFactory

      public LicenseInfoFactory()
  • Method Details

    • getListedLicenseById

      public static org.spdx.library.model.v3_0_1.expandedlicensing.ListedLicense getListedLicenseById(String licenseId) throws org.spdx.core.InvalidSPDXAnalysisException
      Parameters:
      licenseId - SPDX Listed License ID
      Returns:
      SPDX listed license or null if the ID is not in the SPDX license list
      Throws:
      org.spdx.core.InvalidSPDXAnalysisException - on errors getting license data
    • getListedLicenseByIdCompatV2

      public static org.spdx.library.model.v2.license.SpdxListedLicense getListedLicenseByIdCompatV2(String licenseId) throws org.spdx.core.InvalidSPDXAnalysisException
      Parameters:
      licenseId - SPDX Listed License ID
      Returns:
      SPDX listed license in SPDX spec version 2.X format or null if the ID is not in the SPDX license list
      Throws:
      org.spdx.core.InvalidSPDXAnalysisException - on errors getting license data
    • parseSPDXLicenseStringCompatV2

      public static org.spdx.library.model.v2.license.AnyLicenseInfo parseSPDXLicenseStringCompatV2(String licenseString, @Nullable org.spdx.storage.IModelStore store, @Nullable String documentUri, @Nullable org.spdx.core.IModelCopyManager copyManager) throws org.spdx.library.model.v2.license.InvalidLicenseStringException, org.spdx.core.DefaultStoreNotInitializedException
      Parses a license string and converts it into a SPDXLicenseInfo object Syntax - A license set must start and end with a parenthesis "(" A conjunctive license set will have and AND after the first licenseInfo term A disjunctive license set will have an OR after the first licenseInfo term If there is no And or Or, then it is converted to a simple license type A space or tab must be used between license ID's and the keywords AND and OR A licenseID must NOT be "AND" or "OR"
      Parameters:
      licenseString - String conforming to the syntax
      store - Store containing any extractedLicenseInfos - if any extractedLicenseInfos by ID already exist, they will be used. If none exist for an ID, they will be added. If null, the default model store will be used.
      documentUri - Document URI for the document containing any extractedLicenseInfos - if any extractedLicenseInfos by ID already exist, they will be used. If none exist for an ID, they will be added. If null, the default model document URI will be used.
      copyManager - allows for copying of any properties set which use other model stores or document URI's. If null, the default will be used.
      Returns:
      an SPDXLicenseInfo created from the string. If the license expression is not parseable, a InvalidLicenseExpression is returned.
      Throws:
      org.spdx.core.DefaultStoreNotInitializedException - if the default model store is not initialized
      org.spdx.library.model.v2.license.InvalidLicenseStringException
    • parseSPDXLicenseString

      public static org.spdx.library.model.v3_0_1.simplelicensing.AnyLicenseInfo parseSPDXLicenseString(String licenseString, @Nullable org.spdx.storage.IModelStore store, @Nullable String customLicensePrefix, @Nullable org.spdx.library.model.v3_0_1.core.CreationInfo creationInfo, @Nullable org.spdx.core.IModelCopyManager copyManager, @Nullable List<org.spdx.library.model.v3_0_1.core.DictionaryEntry> customIdToUri) throws org.spdx.library.model.v2.license.InvalidLicenseStringException, org.spdx.core.DefaultStoreNotInitializedException
      Parses a license string and converts it into a SPDXLicenseInfo object Syntax - A license set must start and end with a parenthesis "(" A conjunctive license set will have and AND after the first licenseInfo term A disjunctive license set will have an OR after the first licenseInfo term If there is no And or Or, then it is converted to a simple license type A space or tab must be used between license ID's and the keywords AND and OR A licenseID must NOT be "AND" or "OR"
      Parameters:
      licenseString - String conforming to the syntax
      store - Store containing any extractedLicenseInfos - if any extractedLicenseInfos by ID already exist, they will be used. If none exist for an ID, they will be added. If null, the default model store will be used.
      customLicensePrefix - Prefix to use for any custom licenses or addition IDs found in the string. If the resultant object URI does not exist for an ID, they will be added. If null, the default model document URI + "#" will be used.
      creationInfo - Creation information to use for newly created elements. If null, the default
      copyManager - allows for copying of any properties set which use other model stores or document URI's. If null, the default will be used.
      customIdToUri - Mapping of the id prefixes used in the license expression to the namespace preceding the external ID
      Returns:
      an SPDXLicenseInfo created from the string. If the license expression is not parseable, a InvalidLicenseExpression is returned.
      Throws:
      org.spdx.core.DefaultStoreNotInitializedException - if the default model store is not initialized
      org.spdx.library.model.v2.license.InvalidLicenseStringException
    • parseSPDXLicenseString

      public static org.spdx.library.model.v3_0_1.simplelicensing.AnyLicenseInfo parseSPDXLicenseString(String licenseString, @Nullable org.spdx.storage.IModelStore store, @Nullable String customLicensePrefix, @Nullable org.spdx.core.IModelCopyManager copyManager, @Nullable List<org.spdx.library.model.v3_0_1.core.DictionaryEntry> customIdToUri) throws org.spdx.library.model.v2.license.InvalidLicenseStringException, org.spdx.core.DefaultStoreNotInitializedException
      Parses a license string and converts it into a SPDXLicenseInfo object using the default creation information Syntax - A license set must start and end with a parenthesis "(" A conjunctive license set will have and AND after the first licenseInfo term A disjunctive license set will have an OR after the first licenseInfo term If there is no And or Or, then it is converted to a simple license type A space or tab must be used between license ID's and the keywords AND and OR A licenseID must NOT be "AND" or "OR"
      Parameters:
      licenseString - String conforming to the syntax
      store - Store containing any extractedLicenseInfos - if any extractedLicenseInfos by ID already exist, they will be used. If none exist for an ID, they will be added. If null, the default model store will be used.
      customLicensePrefix - Prefix to use for any custom licenses or addition IDs found in the string. If the resultant object URI does not exist for an ID, they will be added. If null, the default model document URI + "#" will be used.
      copyManager - allows for copying of any properties set which use other model stores or document URI's. If null, the default will be used.
      customIdToUri - Mapping of the id prefixes used in the license expression to the namespace preceding the external ID
      Returns:
      an SPDXLicenseInfo created from the string. If the license expression is not parseable, a InvalidLicenseExpression is returned.
      Throws:
      org.spdx.core.DefaultStoreNotInitializedException - if the default model store is not initialized
      org.spdx.library.model.v2.license.InvalidLicenseStringException
    • parseSPDXLicenseString

      public static org.spdx.library.model.v3_0_1.simplelicensing.AnyLicenseInfo parseSPDXLicenseString(String licenseString) throws org.spdx.library.model.v2.license.InvalidLicenseStringException, org.spdx.core.DefaultStoreNotInitializedException
      Parses a license string and converts it into a SPDXLicenseInfo object Syntax - A license set must start and end with a parenthesis "(" A conjunctive license set will have and AND after the first licenseInfo term A disjunctive license set will have an OR after the first licenseInfo term If there is no And or Or, then it is converted to a simple license type A space or tab must be used between license ID's and the keywords AND and OR A licenseID must NOT be "AND" or "OR"
      Parameters:
      licenseString - String conforming to the syntax
      Returns:
      an SPDXLicenseInfo created from the string
      Throws:
      org.spdx.library.model.v2.license.InvalidLicenseStringException - if the license string is not valid
      org.spdx.core.DefaultStoreNotInitializedException - if the default model store is not initialized
    • parseSPDXLicenseStringCompatV2

      public static org.spdx.library.model.v2.license.AnyLicenseInfo parseSPDXLicenseStringCompatV2(String licenseString) throws org.spdx.library.model.v2.license.InvalidLicenseStringException, org.spdx.core.DefaultStoreNotInitializedException
      Parses a license string and converts it into a SPDXLicenseInfo object Syntax - A license set must start and end with a parenthesis "(" A conjunctive license set will have and AND after the first licenseInfo term A disjunctive license set will have an OR after the first licenseInfo term If there is no And or Or, then it is converted to a simple license type A space or tab must be used between license ID's and the keywords AND and OR A licenseID must NOT be "AND" or "OR"
      Parameters:
      licenseString - String conforming to the syntax
      Returns:
      an SPDXLicenseInfo created from the string
      Throws:
      org.spdx.library.model.v2.license.InvalidLicenseStringException - On invalid license expression
      org.spdx.core.DefaultStoreNotInitializedException - On the model store not being initialized - see DefaultModelStore in SPDX core package
    • isSpdxListedLicenseId

      public static boolean isSpdxListedLicenseId(String licenseID)
      Parameters:
      licenseID - case insensitive
      Returns:
      true if the licenseID belongs to an SPDX listed license
    • getSpdxListedLicenseIds

      public static List<String> getSpdxListedLicenseIds()
      Returns:
      List of all SPDX listed license IDs
    • getLicenseListVersion

      public static String getLicenseListVersion()
      Returns:
      Version of the license list being used by the SPDXLicenseInfoFactory
    • isSpdxListedExceptionId

      public static boolean isSpdxListedExceptionId(String id)
      Parameters:
      id - exception ID
      Returns:
      true if the exception ID is a supported SPDX listed exception
    • getListedExceptionById

      public static org.spdx.library.model.v3_0_1.expandedlicensing.ListedLicenseException getListedExceptionById(String id) throws org.spdx.core.InvalidSPDXAnalysisException
      Parameters:
      id - ID for the listed exception
      Returns:
      the standard SPDX license exception or null if the ID is not in the SPDX license list
      Throws:
      org.spdx.core.InvalidSPDXAnalysisException - On SPDX parsing errors
    • getListedExceptionV2ById

      public static org.spdx.library.model.v2.license.ListedLicenseException getListedExceptionV2ById(String id) throws org.spdx.core.InvalidSPDXAnalysisException
      Parameters:
      id - ID for the listed exception
      Returns:
      the standard SPDX license exception in SPDX Spec V2.X format or null if the ID is not in the SPDX license list
      Throws:
      org.spdx.core.InvalidSPDXAnalysisException - On SPDX parsing errors
    • listedLicenseIdCaseSensitive

      public static Optional<String> listedLicenseIdCaseSensitive(String licenseId)
      Parameters:
      licenseId - case insensitive license ID
      Returns:
      the case sensitive license ID
    • listedExceptionIdCaseSensitive

      public static Optional<String> listedExceptionIdCaseSensitive(String exceptionId)
      Parameters:
      exceptionId - case insensitive exception ID
      Returns:
      case sensitive ID
    • getListedLicenseCreationInfo

      public static org.spdx.library.model.v3_0_1.core.CreationInfo getListedLicenseCreationInfo() throws org.spdx.core.InvalidSPDXAnalysisException
      Returns:
      the CreationInfo used for all SPDX listed licenses and listed exceptions
      Throws:
      org.spdx.core.InvalidSPDXAnalysisException - on error inflating the creation info