# Interface: com.pnfsoftware.jeb.core.ILiveArtifact

A "runtime" artifact, that connects a project, an artifact, and root units. A live artifact is a representation of an artifact loaded in a project, and whose . loading process has possibly yielded [units](IUnit). 

 As such, a live artifact ties three essentials components together: 
 
- a project
-  
- an artifact
-  
- root unit\(s\)
-

## Method: getArtifact
- return type: `com.pnfsoftware.jeb.core.IArtifact`

Description: Get the input artifact.
return: the input artifact, never null

## Method: getMainUnit
- return type: `com.pnfsoftware.jeb.core.units.IUnit`

Description: Convenience method to retrieve the primary \(first\) unit resulting from the analysis of this artifact. If no unit exists, null is returned.
return: the primary unit or null

## Method: getRuntimeProject
- return type: `com.pnfsoftware.jeb.core.IRuntimeProject`

Description: Get the runtime project.
return: the runtime project, never null

## Method: getUnits
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.IUnit>`

Description: Get the units that resulted from the analysis of the artifact within a given project. Only the top\-level units \(i.e., those whose direct parent is this artifact\) are returned; sub\-level units \(i.e., those whose parents are other units\) can be retrieved by calling getChildren\(\) on the units, recursively.
return: the units, possibly empty list, but never null

## Method: load
- parameter: `wantedType`, type: `java.lang.String`
- parameter: `softDelegation`, type: `boolean`
- parameter: `doNotProcessUnit`, type: `boolean`
- return type: `boolean`

Description: Process and load the artifact into the project. This method should not be called directly; it is called by the project manager.
parameter: wantedType: optional \(default: null\)
parameter: softDelegation: \(default: false\)
parameter: doNotProcessUnit: optional \(default: false\)
return: true if loading completed successfully

