# Interface: com.pnfsoftware.jeb.core.IArtifact
- Super interfaces: `com.pnfsoftware.jeb.util.events.IEventSource`, `com.pnfsoftware.jeb.core.IUnitCreator`

Base interface for artifacts. Artifacts form the basic item of analysis: they are loaded within  [projects](com.pnfsoftware.jeb.core.IRuntimeProject.md), can be analyzed or processed, and produce zero or more  [units](com.pnfsoftware.jeb.core.units.IUnit.md). Artifacts are [unit creators](com.pnfsoftware.jeb.core.IUnitCreator.md).

## Abstract Method: getCreationTimestamp
- return type: `long`

Description: Get the timestamp at which this artifact was loaded into the project.
return: the epoch timestamp in milliseconds

## Abstract Method: getInput
- return type: `com.pnfsoftware.jeb.core.input.IInput`

Description: Get the input data for the artifact.
return: the input object

## Abstract Method: getName
- return type: `java.lang.String`

Description: Get the artifact name.

## Abstract Method: getNotes
- return type: `java.lang.String`

Description: Get user\-specific notes associated to the artifact.
return: the current notes

## Abstract Method: getParent
- return type: `com.pnfsoftware.jeb.core.IUnitCreator`

Description: For artifacts, this method always return null. To retrieve the owner project, use  [#getParentProject()](#getParentProject()).
return: null

## Default Method: getParentProject
- return type: `com.pnfsoftware.jeb.core.IRuntimeProject`

Description: Retrieve the parent [project](com.pnfsoftware.jeb.core.IRuntimeProject.md) that owns this artifact.
return: parent project, or null if it cannot be resolved

## Abstract Method: setName
- parameter: `name`, type: `java.lang.String`

Description: Set the artifact name.
parameter: name: the new name

## Abstract Method: setNotes
- parameter: `notes`, type: `java.lang.String`

Description: Set user\-specific notes associated to the artifact.
parameter: notes: the new notes

