# Class: com.pnfsoftware.jeb.core.RuntimeProjectUtil

A collection of utility methods to navigate and act on JEB projects.

## Static Method: destroyLiveArtifact
- parameter: `liveArtifact`, type: `com.pnfsoftware.jeb.core.ILiveArtifact`
- return type: `boolean`

Description: Destroy a live Artifact and all its children.
parameter: liveArtifact: live artifact to destroy
return: false in case of error: the live artifact may be in an invalid state after         destruction fails \(some [IUnit](IUnit) children may have been deleted\)

## Static Method: filterUnits
- parameter: `prj`, type: `com.pnfsoftware.jeb.core.IRuntimeProject`
- parameter: `filter`, type: `com.pnfsoftware.jeb.core.IUnitFilter`
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.IUnit>`

Description: Find the units in the project that pass a test provided by the user\-defined filter object.
parameter: prj: a project
parameter: filter: a filter, null means no filter \(ie, all units will be returned\)
return: the list of units

## Static Method: findFirstUnitByType
- parameter: `prj`, type: `com.pnfsoftware.jeb.core.IRuntimeProject`
- parameter: `c`, type: `java.lang.Class<T>`
- parameter: `strict`, type: `boolean`
- return type: `T`

Description: Find a units of a project that are of the specified type.
parameter: prj: a project
parameter: c: a type of unit, or null to indicate all units
parameter: strict: if true, only units of class \`c\` will be returned; else, units of type \`c\` or            any type derived from \`c\` will be returned
return: a unit or null

## Static Method: findProject
- parameter: `object`, type: `com.pnfsoftware.jeb.core.IUnitCreator`
- return type: `com.pnfsoftware.jeb.core.IRuntimeProject`

Description: Retrieve a JEB project object given any unit or artifact belonging to the project.
parameter: object: a unit or an artifact
return: null on error

## Static Method: findUnitByUid
- parameter: `prj`, type: `com.pnfsoftware.jeb.core.IRuntimeProject`
- parameter: `uid`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.IUnit`

Description: Find a unit by its unique identifier.
parameter: prj: target project
parameter: uid: unit identifier
return: matching unit, or null if none was found

## Static Method: findUnitContributions
- parameter: `prj`, type: `com.pnfsoftware.jeb.core.IRuntimeProject`
- parameter: `target`, type: `com.pnfsoftware.jeb.core.units.IUnit`
- return type: `java.util.List<com.pnfsoftware.jeb.core.IUnitContribution>`

Description: Retrieve a list of contributions \(defined within a given project\) for a target unit.
parameter: prj: a project
parameter: target: the target unit
return: a list of contributions, potentially empty

## Static Method: findUnits
- parameter: `prj`, type: `com.pnfsoftware.jeb.core.IRuntimeProject`
- parameter: `c`, type: `java.lang.Class<T>`
- return type: `java.util.List<T>`

Description: Find all units of a project that are of the specified type. 

 Same as [findUnitsByType\(prj, c, false\)](#findUnitsByType(IRuntimeProject, Class, boolean)).
parameter: prj: JEB project
parameter: c: [unit](IUnit) type
return: the list of units

## Static Method: findUnitsByType
- parameter: `prj`, type: `com.pnfsoftware.jeb.core.IRuntimeProject`
- parameter: `c`, type: `java.lang.Class<T>`
- parameter: `strict`, type: `boolean`
- return type: `java.util.List<T>`

Description: Find all units of a project that are of the specified type.
parameter: prj: a project
parameter: c: a type of unit, or null to indicate all units
parameter: strict: if true, only units of class \`c\` will be returned; else, units of type \`c\` or            any type derived from \`c\` will be returned
return: the list of units

## Static Method: getAllUnits
- parameter: `prj`, type: `com.pnfsoftware.jeb.core.IRuntimeProject`
- return type: `java.util.List<com.pnfsoftware.jeb.core.units.IUnit>`

Description: Retrieve a list of all units in the provided project.
parameter: prj: target project
return: all units contained in the project

## Static Method: hasNotification
- parameter: `prj`, type: `com.pnfsoftware.jeb.core.IRuntimeProject`
- return type: `boolean`

Description: Determine if a project has at least one unit with at least one notification.
parameter: prj: target project
return: true if at least one notification exists

## Static Method: hasNotification
- parameter: `prj`, type: `com.pnfsoftware.jeb.core.IRuntimeProject`
- parameter: `minLevel`, type: `int`
- return type: `boolean`

Description: Determine if a project has at least one unit with at least one notification whose level is greater than or equal than the requested one.
parameter: prj: target project
parameter: minLevel: minimum notification level
return: true if a matching notification exists

