mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-28 09:42:41 +01:00
e431ab2189
Summary: Ref T9494. Depends on D14216. Remove 10 copies of this code. Test Plan: Ran `arc unit --everything`, browsed Config > Modules, clicked around Herald / etc. Reviewers: chad Reviewed By: chad Maniphest Tasks: T9494 Differential Revision: https://secure.phabricator.com/D14217
60 lines
1.5 KiB
PHP
60 lines
1.5 KiB
PHP
<?php
|
|
|
|
|
|
abstract class HarbormasterArtifact extends Phobject {
|
|
|
|
private $buildArtifact;
|
|
|
|
abstract public function getArtifactTypeName();
|
|
|
|
public function getArtifactTypeSummary() {
|
|
return $this->getArtifactTypeDescription();
|
|
}
|
|
|
|
abstract public function getArtifactTypeDescription();
|
|
abstract public function getArtifactParameterSpecification();
|
|
abstract public function getArtifactParameterDescriptions();
|
|
abstract public function willCreateArtifact(PhabricatorUser $actor);
|
|
|
|
public function validateArtifactData(array $artifact_data) {
|
|
$artifact_spec = $this->getArtifactParameterSpecification();
|
|
PhutilTypeSpec::checkMap($artifact_data, $artifact_spec);
|
|
}
|
|
|
|
public function renderArtifactSummary(PhabricatorUser $viewer) {
|
|
return null;
|
|
}
|
|
|
|
public function releaseArtifact(PhabricatorUser $actor) {
|
|
return;
|
|
}
|
|
|
|
public function getArtifactDataExample() {
|
|
return null;
|
|
}
|
|
|
|
public function setBuildArtifact(HarbormasterBuildArtifact $build_artifact) {
|
|
$this->buildArtifact = $build_artifact;
|
|
return $this;
|
|
}
|
|
|
|
public function getBuildArtifact() {
|
|
return $this->buildArtifact;
|
|
}
|
|
|
|
final public function getArtifactConstant() {
|
|
return $this->getPhobjectClassConstant('ARTIFACTCONST', 32);
|
|
}
|
|
|
|
final public static function getAllArtifactTypes() {
|
|
return id(new PhutilClassMapQuery())
|
|
->setAncestorClass(__CLASS__)
|
|
->setUniqueMethod('getArtifactConstant')
|
|
->execute();
|
|
}
|
|
|
|
final public static function getArtifactType($type) {
|
|
return idx(self::getAllArtifactTypes(), $type);
|
|
}
|
|
|
|
}
|