ApplicationAnalyzer::analyzeEntityRecord()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 13
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 7
nc 1
nop 2
1
<?php
2
//[PHPCOMPRESSOR(remove,start)]
3
namespace samsoncms\api\generator\analyzer;
4
5
use samsoncms\api\Field;
6
7
/**
8
 * Created by Vitaly Iegorov <[email protected]>.
9
 * on 23.03.16 at 16:21
10
 */
11
class ApplicationAnalyzer extends \samsoncms\api\generator\analyzer\VirtualAnalyzer
12
{
13
    /** @var string Metadata class */
14
    protected $metadataClass = \samsoncms\api\generator\metadata\ApplicationMetadata::class;
15
16
    /**
17
     * Analyze entity.
18
     *
19
     * @param \samsoncms\api\generator\metadata\VirtualMetadata $metadata
20
     * @param array                                             $structureRow Entity database row
21
     */
22
    public function analyzeEntityRecord(&$metadata, array $structureRow)
23
    {
24
        $metadata->structureRow = $structureRow;
25
26
        // Get CapsCase and transliterated entity name
27
        $metadata->entity = $this->entityName($structureRow['Name']);
28
        $metadata->entityClassName = $this->fullEntityName($metadata->entity);
29
        $metadata->entityRealName = $structureRow['Name'];
30
        $metadata->entityID = $structureRow['StructureID'];
31
32
        // Try to find entity parent identifier for building future relations
33
        $metadata->parentID = $this->getParentEntity($structureRow['StructureID']);
34
    }
35
36
    /**
37
     * Virtual entity additional field analyzer.
38
     *
39
     * @param \samsoncms\api\generator\metadata\VirtualMetadata $metadata Metadata instance for filling
40
     * @param int                                               $fieldID  Additional field identifier
41
     * @param array                                             $fieldRow Additional field database row
42
     */
43
    public function analyzeFieldRecord(&$metadata, $fieldID, array $fieldRow)
44
    {
45
        // Get camelCase and transliterated field name
46
        $fieldName = $this->fieldName($fieldRow['Name']);
47
48
        // TODO: Set default for additional field storing type accordingly.
49
50
        // Store field metadata
51
        $metadata->realNames[$fieldRow['Name']] = $fieldName;
52
        $metadata->fields[$fieldID] = $fieldName;
53
        $metadata->fieldNames[$fieldName] = $fieldID;
54
        $metadata->allFieldValueColumns[$fieldID] = Field::valueColumn($fieldRow[Field::F_TYPE]);
55
        $metadata->types[$fieldID] = Field::phpType($fieldRow['Type']);
56
        $metadata->allFieldCmsTypes[$fieldID] = (int)$fieldRow['Type'];
57
        $metadata->fieldDescriptions[$fieldID] = $fieldRow['Description'] . ', ' . $fieldRow['Name'] . '#' . $fieldID;
58
        $metadata->fieldRawDescriptions[$fieldID] = $fieldRow['Description'];
59
    }
60
}
61
//[PHPCOMPRESSOR(remove,end)]
62