Package org.spdx.library
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 String
NOASSERTION_LICENSE_NAME
static String
NONE_LICENSE_NAME
-
Constructor Summary
Constructors Constructor Description LicenseInfoFactory()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static String
getLicenseListVersion()
static org.spdx.library.model.v3_0_1.expandedlicensing.ListedLicenseException
getListedExceptionById(String id)
static org.spdx.library.model.v2.license.ListedLicenseException
getListedExceptionV2ById(String id)
static org.spdx.library.model.v3_0_1.expandedlicensing.ListedLicense
getListedLicenseById(String licenseId)
static org.spdx.library.model.v2.license.SpdxListedLicense
getListedLicenseByIdCompatV2(String licenseId)
static org.spdx.library.model.v3_0_1.core.CreationInfo
getListedLicenseCreationInfo()
static List<String>
getSpdxListedLicenseIds()
static boolean
isSpdxListedExceptionId(String id)
static boolean
isSpdxListedLicenseId(String licenseID)
static Optional<String>
listedExceptionIdCaseSensitive(String exceptionId)
static Optional<String>
listedLicenseIdCaseSensitive(String licenseId)
static org.spdx.library.model.v3_0_1.simplelicensing.AnyLicenseInfo
parseSPDXLicenseString(String licenseString)
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 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)
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"
-
-
-
Field Detail
-
NOASSERTION_LICENSE_NAME
public static final String NOASSERTION_LICENSE_NAME
- See Also:
- Constant Field Values
-
NONE_LICENSE_NAME
public static final String NONE_LICENSE_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
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.DefaultStoreNotInitialized
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 syntaxstore
- 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
- Throws:
org.spdx.library.model.v2.license.InvalidLicenseStringException
- if the license string is not validorg.spdx.core.DefaultStoreNotInitialized
- if the default model store is not initialized
-
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.DefaultStoreNotInitialized
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 syntaxstore
- 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
- Throws:
org.spdx.library.model.v2.license.InvalidLicenseStringException
- if the license string is not validorg.spdx.core.DefaultStoreNotInitialized
- if the default model store is not initialized
-
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.DefaultStoreNotInitialized
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 validorg.spdx.core.DefaultStoreNotInitialized
- 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.DefaultStoreNotInitialized
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 expressionorg.spdx.core.DefaultStoreNotInitialized
- 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
-
-