Klasse Component

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.types.DataType
org.apache.ant.cyclonedx.Component
Alle implementierten Schnittstellen:
Cloneable

public class Component extends org.apache.tools.ant.types.DataType
The central concept of an SBOM which describes components and their dependencies.

The CycloneDX specification supports more information for a component than this type currently exposes.

This class is a type exposed by this Ant Library. When using the inherited refid attribute it can reference an instance defined previously - in which case no child elements or other attributes are allowed.

  • Verschachtelte Klassen - Übersicht

    Verschachtelte Klassen
    Modifikator und Typ
    Klasse
    Beschreibung
    static class 
    Represents a dependency of a component.
    static class 
    Represents a tag.
  • Feldübersicht

    Von Klasse geerbte Felder org.apache.tools.ant.types.DataType

    checked, ref

    Von Klasse geerbte Felder org.apache.tools.ant.ProjectComponent

    location, project
  • Konstruktorübersicht

    Konstruktoren
    Konstruktor
    Beschreibung
     
  • Methodenübersicht

    Modifikator und Typ
    Methode
    Beschreibung
    void
    add(org.apache.tools.ant.types.Resource resource)
    Sets the resource the component is about.
    void
    addAuthor(org.cyclonedx.model.OrganizationalContact author)
    Adds an author to the component.
    void
    Adds a nested component.
    void
    Adds an external reference to the component.
    void
    Adds a set of external references to the component.
    void
    Adds a license to this component.
    void
    Adds a tag to the component.
    void
    Adds a dependency to this component.
    protected void
    addHashes(org.cyclonedx.model.Component component, org.cyclonedx.Version bomVersion)
    If this component has a nested resource child, all hashes supported by the CycloneDX Core library for the spec version are created and added to the given component.
    void
    Sets the manufacturer of the component.
    void
    addProperty(org.cyclonedx.model.Property property)
    Adds a property to the component.
    void
    Sets the supplier of the component.
    boolean
    Whether dependencies are unknoown.
    static Component
    createFileComponent(org.apache.tools.ant.Project project, org.apache.tools.ant.types.Resource r)
    Creates a new "file" type component for a resource.
    org.apache.tools.ant.types.resources.Union
    Container for SBOM link resource.
    protected void
    dieOnCircularReference(Stack<Object> stk, org.apache.tools.ant.Project p)
     
    Gets the bom-ref of the component.
    Gets the dependencies of the component.
    Gets the group of the component.
    Gets the name of the component.
    Recursively returns the nested components of this component.
    Gets the Package-URL (purl) of the component.
    protected Component
    Perform the check for circular references and return the referenced Component.
    Read the linked SBOM (if any) and merge its content with the one already defined for this component.
    void
    setBomRef(String bomRef)
    Sets the bom-ref of the component.
    void
    setCopyright(String copyright)
    Sets the copyright of the component.
    void
    setDescription(String description)
    Sets the decription of the component.
    void
    Sets the group of the component.
    void
    setIsExternal(boolean isExternal)
    Sets whether the component is external.
    void
    setMimeType(String mimeType)
    Sets the mime-type of the component.
    void
    Sets the name of the component.
    void
    setPublisher(String publisher)
    Sets the publisher of the component.
    void
    Sets the Package-URL (purl) of the component.
    void
    Sets the scope of this component.
    void
    setSupplierIsManufacturer(boolean supplierIsManufacturer)
    If set to true the supplier will also be used to provide the manufacturer information.
    void
    Sets the type of the component.
    void
    setUnknownDependencies(boolean unknownDependencies)
    Sets whether the dependencies of this component are unknown.
    void
    setVersion(String version)
    Sets the version of the component.
    org.cyclonedx.model.Component
    toAdditionalCycloneDxComponent(org.cyclonedx.Version bomVersion)
    Translates this component to a CycloneDX component suitable for the components.component.
    protected org.cyclonedx.model.Component
    toCycloneDxComponent(org.cyclonedx.Version bomVersion)
    Maps all common data except for scope and isExternal.
    org.cyclonedx.model.Component
    toMainCycloneDxComponent(org.cyclonedx.Version bomVersion)
    Translates this component to a CycloneDX component suitable for the metadata.component.

    Von Klasse geerbte Methoden org.apache.tools.ant.types.DataType

    checkAttributesAllowed, checkChildrenAllowed, circularReference, clone, dieOnCircularReference, dieOnCircularReference, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getCheckedRef, getDataTypeName, getRefid, invokeCircularReferenceCheck, isChecked, isReference, noChildrenAllowed, pushAndInvokeCircularReferenceCheck, setChecked, setRefid, tooManyAttributes, toString

    Von Klasse geerbte Methoden org.apache.tools.ant.ProjectComponent

    getDescription, getLocation, getProject, log, log, setLocation, setProject

    Von Klasse geerbte Methoden Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Konstruktordetails

    • Component

      public Component()
  • Methodendetails

    • add

      public void add(org.apache.tools.ant.types.Resource resource)
      Sets the resource the component is about.

      At most one resource can be set. Without a nested resource the component will not have any "hashes" when written to the SBOM.

      Parameter:
      resource - the resource holding the component's content
    • setType

      public void setType(ComponentType type)
      Sets the type of the component.

      Defaults to "library".

      Parameter:
      type - component type
    • setName

      public void setName(String name)
      Sets the name of the component.
      Parameter:
      name - component name
    • setGroup

      public void setGroup(String group)
      Sets the group of the component.
      Parameter:
      group - component group
    • setVersion

      public void setVersion(String version)
      Sets the version of the component.
      Parameter:
      version - component version
    • setPurl

      public void setPurl(String purl)
      Sets the Package-URL (purl) of the component.
      Parameter:
      purl - component Package URL
    • setBomRef

      public void setBomRef(String bomRef)
      Sets the bom-ref of the component.
      Parameter:
      bomRef - component bom-ref
    • setDescription

      public void setDescription(String description)
      Sets the decription of the component.
      Setzt außer Kraft:
      setDescription in Klasse org.apache.tools.ant.ProjectComponent
      Parameter:
      description - component description
    • setPublisher

      public void setPublisher(String publisher)
      Sets the publisher of the component.
      Parameter:
      publisher - component publisher
    • setCopyright

      public void setCopyright(String copyright)
      Sets the copyright of the component.
      Parameter:
      copyright - component copyright
    • setMimeType

      public void setMimeType(String mimeType)
      Sets the mime-type of the component.
      Parameter:
      mimeType - component mime-type
    • addManufacturer

      public void addManufacturer(Organization manufacturer)
      Sets the manufacturer of the component.

      At most one manufacturer can be set.

      Parameter:
      manufacturer - component manufacturer
    • addSupplier

      public void addSupplier(Organization supplier)
      Sets the supplier of the component.

      At most one supplier can be set.

      Parameter:
      supplier - compoment supplier
    • addAuthor

      public void addAuthor(org.cyclonedx.model.OrganizationalContact author)
      Adds an author to the component.
      Parameter:
      author - component author
    • addConfiguredTag

      public void addConfiguredTag(Component.Tag tag)
      Adds a tag to the component.
      Parameter:
      tag - component tag
    • addProperty

      public void addProperty(org.cyclonedx.model.Property property)
      Adds a property to the component.
      Parameter:
      property - component property
    • setSupplierIsManufacturer

      public void setSupplierIsManufacturer(boolean supplierIsManufacturer)
      If set to true the supplier will also be used to provide the manufacturer information.
      Parameter:
      supplierIsManufacturer - whether to use supplier as manufacturer as well
    • addConfiguredLicense

      public void addConfiguredLicense(License l)
      Adds a license to this component.
      Parameter:
      l - compoment license
    • addConfiguredExternalReference

      public void addConfiguredExternalReference(ExternalReference ref)
      Adds an external reference to the component.
      Parameter:
      ref - external reference of component
    • addConfiguredExternalReferenceSet

      public void addConfiguredExternalReferenceSet(ExternalReferenceSet set)
      Adds a set of external references to the component.
      Parameter:
      set - set of external references of component
    • setScope

      public void setScope(ComponentScope scope)
      Sets the scope of this component.

      Must not be set for the main component of the SBOM.

      Parameter:
      scope - component scope
    • setIsExternal

      public void setIsExternal(boolean isExternal)
      Sets whether the component is external.

      The CycloneDX Specification says: An external component is one that is not part of an assembly, but is expected to be provided by the environment, regardless of the component's scope.

      Must not be set to true for the main component of the SBOM.

      Right now this attribute has no effect until the CycloneDX core library supports the specification version 1.7.

      Parameter:
      isExternal - whether the component is external
    • addDependency

      public void addDependency(Component.Dependency d)
      Adds a dependency to this component.
      Parameter:
      d - component dependency
    • setUnknownDependencies

      public void setUnknownDependencies(boolean unknownDependencies)
      Sets whether the dependencies of this component are unknown.

      This flag is needed to be able to tell dependencies with unknown dependencies from components without any dependencies.

      Parameter:
      unknownDependencies - whether dependencies are unknown
    • addComponent

      public void addComponent(Component c)
      Adds a nested component.
      Parameter:
      c - nested component
    • createSbomLink

      public org.apache.tools.ant.types.resources.Union createSbomLink()
      Container for SBOM link resource.
      Gibt zurück:
      container for SBOM link resource
    • getName

      public String getName()
      Gets the name of the component.
      Gibt zurück:
      component name
    • getGroup

      public String getGroup()
      Gets the group of the component.
      Gibt zurück:
      component group
    • getPurl

      public String getPurl()
      Gets the Package-URL (purl) of the component.
      Gibt zurück:
      the value set with or a Maven purl derived from name, group and version if all three or set - or null otherwise.
    • getBomRef

      public String getBomRef()
      Gets the bom-ref of the component.
      Gibt zurück:
      the value set with or the result of .
    • getDependencies

      public Iterable<Component.Dependency> getDependencies()
      Gets the dependencies of the component.
      Gibt zurück:
      component's dependencies
    • areDependenciesUnknown

      public boolean areDependenciesUnknown()
      Whether dependencies are unknoown.
      Gibt zurück:
      the value set with setUnknownDependencies(boolean) or false.
    • getNestedComponents

      public List<Component> getNestedComponents()
      Recursively returns the nested components of this component.
      Gibt zurück:
      nested components of this component
    • resolve

      public Collection<Component> resolve() throws IOException
      Read the linked SBOM (if any) and merge its content with the one already defined for this component.
      Gibt zurück:
      the "addtional" components defined in the linked SBOM that are dependencies of this component.
      Löst aus:
      IOException - if reading the SBOM links fails
    • createFileComponent

      public static Component createFileComponent(org.apache.tools.ant.Project project, org.apache.tools.ant.types.Resource r)
      Creates a new "file" type component for a resource.
      Parameter:
      project - project to use when resolving paths
      r - the resource holding the file
      Gibt zurück:
      the component
    • toMainCycloneDxComponent

      public org.cyclonedx.model.Component toMainCycloneDxComponent(org.cyclonedx.Version bomVersion) throws IOException
      Translates this component to a CycloneDX component suitable for the metadata.component.
      Parameter:
      bomVersion - specification version
      Gibt zurück:
      mapped component
      Löst aus:
      IOException - if calculating component hashes fails
    • toAdditionalCycloneDxComponent

      public org.cyclonedx.model.Component toAdditionalCycloneDxComponent(org.cyclonedx.Version bomVersion) throws IOException
      Translates this component to a CycloneDX component suitable for the components.component.
      Parameter:
      bomVersion - specification version
      Gibt zurück:
      mapped component
      Löst aus:
      IOException - if calculating component hashes fails
    • toCycloneDxComponent

      protected org.cyclonedx.model.Component toCycloneDxComponent(org.cyclonedx.Version bomVersion) throws IOException
      Maps all common data except for scope and isExternal.
      Parameter:
      bomVersion - specification version
      Gibt zurück:
      mapped component
      Löst aus:
      IOException - if calculating component hashes fails
    • addHashes

      protected void addHashes(org.cyclonedx.model.Component component, org.cyclonedx.Version bomVersion) throws IOException
      If this component has a nested resource child, all hashes supported by the CycloneDX Core library for the spec version are created and added to the given component.
      Parameter:
      component - component to add hashes to
      bomVersion - specification version
      Löst aus:
      IOException - if calculating component hashes fails
    • getRef

      protected Component getRef()
      Perform the check for circular references and return the referenced Component.
      Gibt zurück:
      Component.
    • dieOnCircularReference

      protected void dieOnCircularReference(Stack<Object> stk, org.apache.tools.ant.Project p) throws org.apache.tools.ant.BuildException
      Setzt außer Kraft:
      dieOnCircularReference in Klasse org.apache.tools.ant.types.DataType
      Löst aus:
      org.apache.tools.ant.BuildException