trait Package extends AnyRef
A virtual Package constructed from metadata.
Packages must be created in the context of a specific Org. Each Package manages a set of Types which are created from the metadata of the package. Once constructed you can use the package APIs to introspect dependency relationships between Types, obtain summary and view information about Types and replace or delete Types.
A key concept to understand in this API is that a Type may be created from multiple metadata files, e.g. the System.Labels Type is always present but can be constructed from several labels files. The API methods expose Types via the TypeIdentifiers which you don't need to understand to use the API as long as you keep in mind the 1:M mapping between Types and Paths.
The term dependency can be rather ambiguous, we use it here to mean a 'using' relationship. So if class A calls a method on class B, we say A has a dependency that is B. The reverse relationship is a 'dependency holder', so B has a dependency holder that is A. Transitives of dependencies or dependency holder relationships are not exposed by these APIs but can be easily obtained by recursive iteration.
Summary and View information provide two different levels of looking at the structure of Types. In summary form only the most important details are provided but it is essentially free to access since it is the same format used in the disk cache. View information requires both more CPU and memory to use but can provide fuller details on the implementations of Apex classes.
Packages only handle metadata that is important to Apex class analysis, other forms of metadata that might appear in the package directory are ignored.
- Alphabetic
- By Inheritance
- Package
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
getDependencies(typeId: TypeIdentifier, inheritanceOnly: Boolean): Array[TypeIdentifier]
Returns set of Types that are depended on by the passed Type
Returns set of Types that are depended on by the passed Type
If inheritanceOnly is true only superClass & inheritance dependencies are reported for Apex defined Types, otherwise all dependencies are included.
-
abstract
def
getDependencyHolders(typeId: TypeIdentifier): Array[TypeIdentifier]
Returns set of Types that depend on the passed Type.
Returns set of Types that depend on the passed Type.
The returned array may be stale in that it can contain Types which used to hold a dependency but not longer do.
-
abstract
def
getNamespaces(withDependents: Boolean): Array[String]
The namespace of the package or the package and its dependent packages.
The namespace of the package or the package and its dependent packages.
An empty namespace indicates the "unmanaged" package.
-
abstract
def
getPathsOfType(typeId: TypeIdentifier): Array[String]
Get the path(s) of the metadata file that defined a Type.
Get the path(s) of the metadata file that defined a Type.
Returns an empty array if the Type is not defined within the current package.
-
abstract
def
getSummaryOfType(typeId: TypeIdentifier): TypeSummary
Get the summary information for a Type.
Get the summary information for a Type.
Returns a null if the Type is not defined within the current package.
-
abstract
def
getSummaryOfTypeAsJSON(typeId: TypeIdentifier): String
JSON encoding of summary information for a type.
JSON encoding of summary information for a type.
Returns a null if the Type is not defined within the current package.
-
abstract
def
getTypeOfPath(path: String): TypeIdentifier
Get a Type from the path of a metadata file.
Get a Type from the path of a metadata file.
Returns a null if the path does not identify metadata that creates a Type within the current package.
-
abstract
def
getViewOfType(path: String, contents: SourceBlob): ViewInfo
Obtain view information for a Type.
Obtain view information for a Type.
The view information contains a detailed description of the Type that can either be inspected. In some cases it may not be possible to construct a Type at all, in which case the view information may only contain diagnostic information.
You can either pass in a path and contents or a path and null contents. If contents are not provided they will be read from the path if possible. Where contents are provided the path is only used for error identification purposes.
If the path does not identify supported metadata or that path is not valid for this package no Type will be returned and the view diagnostics will indicate the error.
-
abstract
def
refresh(path: String, contents: SourceBlob): Unit
Refresh a type in the package.
Refresh a type in the package.
This registers that the metadata in a file may need updating. The refresh is queued until the Org metdata is next flushed so that changes are made in batches for efficiency.
Refreshing causes dependent metadata to be re-validated so issues may be reported against other metadata types after the flush has completed.
You can either pass in a path and contents or a path and null contents. If contents are not provided they will be read from the path if possible. Where contents are provided the path is only used for error identification purposes. If no contents are provided and there is no file to read the content from the contribution of this metadata to a type will be removed.
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )