Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/almanac/engineextension/AlmanacSearchEngineAttachment.php
12256 views
1
<?php
2
3
abstract class AlmanacSearchEngineAttachment
4
extends PhabricatorSearchEngineAttachment {
5
6
protected function getAlmanacPropertyList($object) {
7
$builtins = $object->getAlmanacPropertyFieldSpecifications();
8
9
$properties = array();
10
foreach ($object->getAlmanacProperties() as $key => $property) {
11
$is_builtin = isset($builtins[$key]);
12
13
$properties[] = array(
14
'key' => $key,
15
'value' => $property->getFieldValue(),
16
'builtin' => $is_builtin,
17
);
18
}
19
20
return $properties;
21
}
22
23
protected function getAlmanacBindingDictionary(AlmanacBinding $binding) {
24
$interface = $binding->getInterface();
25
26
return array(
27
'id' => (int)$binding->getID(),
28
'phid' => $binding->getPHID(),
29
'properties' => $this->getAlmanacPropertyList($binding),
30
'interface' => $this->getAlmanacInterfaceDictionary($interface),
31
'disabled' => (bool)$binding->getIsDisabled(),
32
);
33
}
34
35
protected function getAlmanacInterfaceDictionary(
36
AlmanacInterface $interface) {
37
38
return array(
39
'id' => (int)$interface->getID(),
40
'phid' => $interface->getPHID(),
41
'address' => $interface->getAddress(),
42
'port' => (int)$interface->getPort(),
43
'device' => $this->getAlmanacDeviceDictionary($interface->getDevice()),
44
'network' => $this->getAlmanacNetworkDictionary($interface->getNetwork()),
45
);
46
}
47
48
protected function getAlmanacDeviceDictionary(AlmanacDevice $device) {
49
return array(
50
'id' => (int)$device->getID(),
51
'phid' => $device->getPHID(),
52
'name' => $device->getName(),
53
'properties' => $this->getAlmanacPropertyList($device),
54
'status' => $device->getStatus(),
55
'disabled' => $device->isDisabled(),
56
);
57
}
58
59
protected function getAlmanacNetworkDictionary(AlmanacNetwork $network) {
60
return array(
61
'id' => (int)$network->getID(),
62
'phid' => $network->getPHID(),
63
'name' => $network->getName(),
64
);
65
}
66
67
}
68
69