Skip to content

Commit

Permalink
Merge pull request #16 from sroehrl/sqlLite
Browse files Browse the repository at this point in the history
code style
  • Loading branch information
sroehrl authored Aug 10, 2022
2 parents 4c792f8 + 6c156a3 commit 007e0bd
Show file tree
Hide file tree
Showing 3 changed files with 111 additions and 109 deletions.
86 changes: 46 additions & 40 deletions src/Model/Interpreter.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,17 @@
use Neoan\Enums\Direction;
use Neoan\Helper\AttributeHelper;
use Neoan\Model\Attributes\IsPrimaryKey;
use Neoan\Model\Interfaces\ModelAttribute;
use ReflectionException;

class Interpreter
{
private AttributeHelper $reflection;
public array $parsedModel;
private Model $currentModel;
private array $mutationAttributes;
private array $attachableAttributes;
private string $selectorString = '';

/**
* @throws ReflectionException
Expand Down Expand Up @@ -41,17 +45,7 @@ public function initialize(array $staticModel = []): Model
}
// fill from input
if($property['isBuiltIn'] && isset($staticModel[$property['name']])){
['isReadOnly' => $readonly] = $property;
if($readonly && !isset($this->currentModel->{$property['name']})) {
$this->currentModel->set($property['name'], $staticModel[$property['name']]);
} elseif(!$readonly) {
try{
$this->currentModel->{$property['name']} = $staticModel[$property['name']];
} catch (\TypeError $e) {
// some day...
var_dump($e->getMessage());
}
}
$this->fillWithReadOnlyGuard($property, $property['isReadOnly'], $staticModel[$property['name']]);
}


Expand All @@ -60,6 +54,19 @@ public function initialize(array $staticModel = []): Model
}
return $this->currentModel;
}
public function fillWithReadOnlyGuard(array $property, bool $readOnly, string $value): void
{
if($readOnly && !isset($this->currentModel->{$property['name']})) {
$this->currentModel->set($property['name'], $value);
} elseif(!$readOnly) {
try{
$this->currentModel->{$property['name']} = $value;
} catch (\TypeError $e) {
// some day...
var_dump($e->getMessage());
}
}
}
public function executeAttributes(array $attributes, string $propertyName, AttributeType $type, Direction $direction): void
{
foreach ($attributes as $attribute){
Expand Down Expand Up @@ -88,51 +95,50 @@ public function generateInsertUpdate(Model $model): array
}
public function generateSelect(): array
{
$selectorString = '';
$attachable = [];
$mutatable = [];
$this->selectorString = '';
$this->mutationAttributes = [];
foreach ($this->reflection->properties as $i => $property) {
$attributes = $property->getAttributes();
if(empty($attributes)){
$this->addToSelectorString($selectorString, $property->getName());
$this->addToSelectorString($property->getName());
} else {
foreach ($attributes as $attribute){
$attributeInstance = $attribute->newInstance();
switch($attributeInstance->getType()) {
case AttributeType::ATTACH:
$attachable[$property->getName()] = $attributeInstance;
break;

case AttributeType::MUTATE:
$this->addToSelectorString($selectorString, $property->getName());
$mutatable[$property->getName()] = $attributeInstance;
break;
case AttributeType::PRIVATE:
break;
case AttributeType::DECLARE:
default:
$this->addToSelectorString($selectorString, $property->getName());
break;
}


$this->attributeCheck($attribute->newInstance(), $property);
}

}
}
return [
'selectorString' => $selectorString,
'attachable' => $attachable,
'mutatable' => $mutatable
'selectorString' => $this->selectorString,
'attachable' => $this->attachableAttributes,
'mutatable' => $this->mutationAttributes
];
}
public function getPrimaryKey() :string
{
return $this->reflection->findPropertiesByAttribute(IsPrimaryKey::class)[0] ?? 'id';
}
private function addToSelectorString(&$selectorString, $columnName): void
private function attributeCheck($attributeInstance, \ReflectionProperty $property): void
{
switch($attributeInstance->getType()) {
case AttributeType::ATTACH:
$this->attachableAttributes[$property->getName()] = $attributeInstance;
break;

case AttributeType::MUTATE:
$this->addToSelectorString($property->getName());
$this->mutationAttributes[$property->getName()] = $attributeInstance;
break;
case AttributeType::PRIVATE:
break;
case AttributeType::DECLARE:
default:
$this->addToSelectorString($property->getName());
break;
}
}
private function addToSelectorString($columnName): void
{
$selectorString .= (strlen($selectorString) > 1 ? ' ' : ''). $this->getTableName() . '.' . $columnName;
$this->selectorString .= (strlen($this->selectorString) > 1 ? ' ' : ''). $this->getTableName() . '.' . $columnName;
}

}
Binary file modified tests/Mocks/database.db
Binary file not shown.
134 changes: 65 additions & 69 deletions tests/clover.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1660095882">
<project timestamp="1660095882">
<coverage generated="1660098570">
<project timestamp="1660098570">
<file name="C:\xampp\htdocs\neoan.io-tools\lenkrad-core\src\CoreInterfaces\RequestInterface.php">
<metrics loc="11" ncloc="11" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
</file>
Expand Down Expand Up @@ -313,8 +313,8 @@
<line num="23" type="stmt" count="6"/>
<line num="24" type="stmt" count="1"/>
<line num="26" type="stmt" count="6"/>
<line num="28" type="method" name="get" visibility="public" complexity="1" crap="1" count="1"/>
<line num="30" type="stmt" count="1"/>
<line num="28" type="method" name="get" visibility="public" complexity="1" crap="1" count="7"/>
<line num="30" type="stmt" count="7"/>
<metrics loc="32" ncloc="31" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="7" elements="10" coveredelements="10"/>
</file>
<file name="C:\xampp\htdocs\neoan.io-tools\lenkrad-core\src\Helper\FileParser.php">
Expand Down Expand Up @@ -531,73 +531,76 @@
</file>
<file name="C:\xampp\htdocs\neoan.io-tools\lenkrad-core\src\Model\Interpreter.php">
<class name="Neoan\Model\Interpreter" namespace="global">
<metrics complexity="31" methods="9" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="49" elements="64" coveredelements="56"/>
<metrics complexity="33" methods="11" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="56" coveredstatements="50" elements="67" coveredelements="57"/>
</class>
<line num="20" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="18"/>
<line num="22" type="stmt" count="18"/>
<line num="23" type="stmt" count="18"/>
<line num="25" type="method" name="asInstance" visibility="public" complexity="1" crap="1" count="14"/>
<line num="27" type="stmt" count="14"/>
<line num="29" type="method" name="initialize" visibility="public" complexity="10" crap="11.90" count="14"/>
<line num="24" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="18"/>
<line num="26" type="stmt" count="18"/>
<line num="27" type="stmt" count="18"/>
<line num="29" type="method" name="asInstance" visibility="public" complexity="1" crap="1" count="14"/>
<line num="31" type="stmt" count="14"/>
<line num="33" type="method" name="initialize" visibility="public" complexity="6" crap="6.05" count="14"/>
<line num="35" type="stmt" count="14"/>
<line num="36" type="stmt" count="14"/>
<line num="39" type="stmt" count="14"/>
<line num="40" type="stmt" count="0"/>
<line num="40" type="stmt" count="14"/>
<line num="43" type="stmt" count="14"/>
<line num="44" type="stmt" count="11"/>
<line num="45" type="stmt" count="11"/>
<line num="46" type="stmt" count="0"/>
<line num="47" type="stmt" count="11"/>
<line num="49" type="stmt" count="11"/>
<line num="50" type="stmt" count="0"/>
<line num="52" type="stmt" count="0"/>
<line num="59" type="stmt" count="14"/>
<line num="61" type="stmt" count="14"/>
<line num="63" type="method" name="executeAttributes" visibility="public" complexity="3" crap="3" count="14"/>
<line num="65" type="stmt" count="14"/>
<line num="66" type="stmt" count="14"/>
<line num="67" type="stmt" count="11"/>
<line num="68" type="stmt" count="11"/>
<line num="72" type="method" name="getTableName" visibility="public" complexity="2" crap="2" count="15"/>
<line num="74" type="stmt" count="15"/>
<line num="75" type="stmt" count="15"/>
<line num="77" type="stmt" count="1"/>
<line num="78" type="stmt" count="1"/>
<line num="81" type="method" name="generateInsertUpdate" visibility="public" complexity="2" crap="2" count="11"/>
<line num="83" type="stmt" count="11"/>
<line num="84" type="stmt" count="11"/>
<line num="85" type="stmt" count="11"/>
<line num="87" type="stmt" count="11"/>
<line num="89" type="method" name="generateSelect" visibility="public" complexity="9" crap="9.05" count="11"/>
<line num="44" type="stmt" count="0"/>
<line num="47" type="stmt" count="14"/>
<line num="48" type="stmt" count="11"/>
<line num="53" type="stmt" count="14"/>
<line num="55" type="stmt" count="14"/>
<line num="57" type="method" name="fillWithReadOnlyGuard" visibility="public" complexity="5" crap="8.12" count="11"/>
<line num="59" type="stmt" count="11"/>
<line num="60" type="stmt" count="0"/>
<line num="61" type="stmt" count="11"/>
<line num="63" type="stmt" count="11"/>
<line num="64" type="stmt" count="0"/>
<line num="66" type="stmt" count="0"/>
<line num="70" type="method" name="executeAttributes" visibility="public" complexity="3" crap="3" count="14"/>
<line num="72" type="stmt" count="14"/>
<line num="73" type="stmt" count="14"/>
<line num="74" type="stmt" count="11"/>
<line num="75" type="stmt" count="11"/>
<line num="79" type="method" name="getTableName" visibility="public" complexity="2" crap="2" count="15"/>
<line num="81" type="stmt" count="15"/>
<line num="82" type="stmt" count="15"/>
<line num="84" type="stmt" count="1"/>
<line num="85" type="stmt" count="1"/>
<line num="88" type="method" name="generateInsertUpdate" visibility="public" complexity="2" crap="2" count="11"/>
<line num="90" type="stmt" count="11"/>
<line num="91" type="stmt" count="11"/>
<line num="92" type="stmt" count="11"/>
<line num="93" type="stmt" count="11"/>
<line num="94" type="stmt" count="11"/>
<line num="95" type="stmt" count="11"/>
<line num="96" type="stmt" count="11"/>
<line num="97" type="stmt" count="0"/>
<line num="96" type="method" name="generateSelect" visibility="public" complexity="4" crap="4.01" count="11"/>
<line num="98" type="stmt" count="11"/>
<line num="99" type="stmt" count="11"/>
<line num="100" type="stmt" count="11"/>
<line num="101" type="stmt" count="11"/>
<line num="102" type="stmt" count="11"/>
<line num="103" type="stmt" count="11"/>
<line num="104" type="stmt" count="11"/>
<line num="103" type="stmt" count="0"/>
<line num="105" type="stmt" count="11"/>
<line num="106" type="stmt" count="11"/>
<line num="107" type="stmt" count="11"/>
<line num="108" type="stmt" count="11"/>
<line num="109" type="stmt" count="11"/>
<line num="110" type="stmt" count="11"/>
<line num="111" type="stmt" count="0"/>
<line num="111" type="stmt" count="11"/>
<line num="112" type="stmt" count="11"/>
<line num="114" type="stmt" count="11"/>
<line num="115" type="stmt" count="11"/>
<line num="113" type="stmt" count="11"/>
<line num="116" type="method" name="getPrimaryKey" visibility="public" complexity="1" crap="1" count="11"/>
<line num="118" type="stmt" count="11"/>
<line num="120" type="method" name="attributeCheck" visibility="private" complexity="6" crap="6.02" count="11"/>
<line num="122" type="stmt" count="11"/>
<line num="123" type="stmt" count="11"/>
<line num="124" type="stmt" count="11"/>
<line num="129" type="method" name="getPrimaryKey" visibility="public" complexity="1" crap="1" count="11"/>
<line num="125" type="stmt" count="11"/>
<line num="127" type="stmt" count="11"/>
<line num="128" type="stmt" count="11"/>
<line num="129" type="stmt" count="11"/>
<line num="130" type="stmt" count="11"/>
<line num="131" type="stmt" count="11"/>
<line num="133" type="method" name="addToSelectorString" visibility="private" complexity="2" crap="2" count="11"/>
<line num="132" type="stmt" count="0"/>
<line num="133" type="stmt" count="11"/>
<line num="135" type="stmt" count="11"/>
<metrics loc="138" ncloc="130" classes="1" methods="9" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="55" coveredstatements="49" elements="64" coveredelements="56"/>
<line num="136" type="stmt" count="11"/>
<line num="139" type="method" name="addToSelectorString" visibility="private" complexity="2" crap="2" count="11"/>
<line num="141" type="stmt" count="11"/>
<metrics loc="144" ncloc="136" classes="1" methods="11" coveredmethods="7" conditionals="0" coveredconditionals="0" statements="56" coveredstatements="50" elements="67" coveredelements="57"/>
</file>
<file name="C:\xampp\htdocs\neoan.io-tools\lenkrad-core\src\Model\Model.php">
<class name="Neoan\Model\Model" namespace="global">
Expand Down Expand Up @@ -738,7 +741,7 @@
</file>
<file name="C:\xampp\htdocs\neoan.io-tools\lenkrad-core\src\NeoanApp.php">
<class name="Neoan\NeoanApp" namespace="global">
<metrics complexity="9" methods="5" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="15" elements="23" coveredelements="18"/>
<metrics complexity="6" methods="4" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="8" elements="16" coveredelements="9"/>
</class>
<line num="15" type="method" name="__construct" visibility="public" complexity="3" crap="3.02" count="6"/>
<line num="17" type="stmt" count="6"/>
Expand All @@ -751,19 +754,12 @@
<line num="24" type="stmt" count="0"/>
<line num="29" type="method" name="invoke" visibility="public" complexity="1" crap="1" count="1"/>
<line num="31" type="stmt" count="1"/>
<line num="33" type="method" name="normalizePath" visibility="private" complexity="1" crap="1" count="6"/>
<line num="35" type="stmt" count="6"/>
<line num="37" type="method" name="findWebPath" visibility="private" complexity="3" crap="3" count="6"/>
<line num="39" type="stmt" count="6"/>
<line num="40" type="stmt" count="6"/>
<line num="41" type="stmt" count="6"/>
<line num="42" type="stmt" count="6"/>
<line num="43" type="stmt" count="6"/>
<line num="46" type="stmt" count="6"/>
<line num="49" type="method" name="run" visibility="public" complexity="1" crap="2" count="0"/>
<line num="51" type="stmt" count="0"/>
<line num="52" type="stmt" count="0"/>
<metrics loc="54" ncloc="54" classes="1" methods="5" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="18" coveredstatements="15" elements="23" coveredelements="18"/>
<line num="33" type="method" name="normalizePath" visibility="private" complexity="1" crap="2" count="0"/>
<line num="35" type="stmt" count="0"/>
<line num="38" type="method" name="run" visibility="public" complexity="1" crap="2" count="0"/>
<line num="40" type="stmt" count="0"/>
<line num="41" type="stmt" count="0"/>
<metrics loc="43" ncloc="43" classes="1" methods="4" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="12" coveredstatements="8" elements="16" coveredelements="9"/>
</file>
<file name="C:\xampp\htdocs\neoan.io-tools\lenkrad-core\src\Render\RenderEngine.php">
<metrics loc="9" ncloc="9" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
Expand Down Expand Up @@ -1065,6 +1061,6 @@
<line num="49" type="stmt" count="15"/>
<metrics loc="51" ncloc="51" classes="2" methods="7" coveredmethods="6" conditionals="0" coveredconditionals="0" statements="13" coveredstatements="12" elements="20" coveredelements="18"/>
</file>
<metrics files="47" loc="2184" ncloc="2093" classes="35" methods="176" coveredmethods="160" conditionals="0" coveredconditionals="0" statements="639" coveredstatements="605" elements="815" coveredelements="765"/>
<metrics files="47" loc="2179" ncloc="2088" classes="35" methods="177" coveredmethods="158" conditionals="0" coveredconditionals="0" statements="634" coveredstatements="599" elements="811" coveredelements="757"/>
</project>
</coverage>

0 comments on commit 007e0bd

Please sign in to comment.