Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/harbormaster/artifact/HarbormasterArtifact.php
12256 views
1
<?php
2
3
4
abstract class HarbormasterArtifact extends Phobject {
5
6
private $buildArtifact;
7
8
abstract public function getArtifactTypeName();
9
10
public function getArtifactTypeSummary() {
11
return $this->getArtifactTypeDescription();
12
}
13
14
abstract public function getArtifactTypeDescription();
15
abstract public function getArtifactParameterSpecification();
16
abstract public function getArtifactParameterDescriptions();
17
abstract public function willCreateArtifact(PhabricatorUser $actor);
18
19
public function readArtifactHTTPParameter($key, $value) {
20
return $value;
21
}
22
23
public function validateArtifactData(array $artifact_data) {
24
$artifact_spec = $this->getArtifactParameterSpecification();
25
PhutilTypeSpec::checkMap($artifact_data, $artifact_spec);
26
}
27
28
public function renderArtifactSummary(PhabricatorUser $viewer) {
29
return null;
30
}
31
32
public function releaseArtifact(PhabricatorUser $actor) {
33
return;
34
}
35
36
public function getArtifactDataExample() {
37
return null;
38
}
39
40
public function setBuildArtifact(HarbormasterBuildArtifact $build_artifact) {
41
$this->buildArtifact = $build_artifact;
42
return $this;
43
}
44
45
public function getBuildArtifact() {
46
return $this->buildArtifact;
47
}
48
49
final public function getArtifactConstant() {
50
return $this->getPhobjectClassConstant('ARTIFACTCONST', 32);
51
}
52
53
final public static function getAllArtifactTypes() {
54
return id(new PhutilClassMapQuery())
55
->setAncestorClass(__CLASS__)
56
->setUniqueMethod('getArtifactConstant')
57
->execute();
58
}
59
60
final public static function getArtifactType($type) {
61
return idx(self::getAllArtifactTypes(), $type);
62
}
63
64
}
65
66