Remove all "FileHasObject" edge reads and writes
[phabricator.git] / src / applications / almanac / engineextension / AlmanacSearchEngineAttachment.php
blob97672a2af0460a50da9a58e18796aa1cb1788e4f
1 <?php
3 abstract class AlmanacSearchEngineAttachment
4 extends PhabricatorSearchEngineAttachment {
6 protected function getAlmanacPropertyList($object) {
7 $builtins = $object->getAlmanacPropertyFieldSpecifications();
9 $properties = array();
10 foreach ($object->getAlmanacProperties() as $key => $property) {
11 $is_builtin = isset($builtins[$key]);
13 $properties[] = array(
14 'key' => $key,
15 'value' => $property->getFieldValue(),
16 'builtin' => $is_builtin,
20 return $properties;
23 protected function getAlmanacBindingDictionary(AlmanacBinding $binding) {
24 $interface = $binding->getInterface();
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(),
35 protected function getAlmanacInterfaceDictionary(
36 AlmanacInterface $interface) {
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()),
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(),
59 protected function getAlmanacNetworkDictionary(AlmanacNetwork $network) {
60 return array(
61 'id' => (int)$network->getID(),
62 'phid' => $network->getPHID(),
63 'name' => $network->getName(),