Skip to content

Commit 9a5a5ac

Browse files
committed
implemented and used AliasableTrait'
2 parents 4cb70b7 + b034ad7 commit 9a5a5ac

21 files changed

+143
-19
lines changed

src/Alias.php

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<?php
2+
3+
namespace WikibaseSolutions\CypherDSL;
4+
5+
use WikibaseSolutions\CypherDSL\Types\AnyType;
6+
use function sprintf;
7+
8+
class Alias implements AnyType
9+
{
10+
/**
11+
* @var QueryConvertable The original item to be aliased
12+
*/
13+
private QueryConvertable $original;
14+
15+
/**
16+
* @var Variable The new variable aliasing the original
17+
*/
18+
private Variable $variable;
19+
20+
/**
21+
* BinaryOperator constructor.
22+
*
23+
* @param QueryConvertable $original The original item to be aliased
24+
* @param Variable $variable The new variable aliasing the original
25+
*/
26+
public function __construct(QueryConvertable $original, Variable $variable)
27+
{
28+
$this->original = $original;
29+
$this->variable = $variable;
30+
}
31+
32+
/**
33+
* @inheritDoc
34+
*/
35+
public function toQuery(): string
36+
{
37+
return sprintf("%s AS %s", $this->original->toQuery(), $this->variable->toQuery());
38+
}
39+
40+
/**
41+
* Gets the original item of the alias.
42+
*
43+
* @return QueryConvertable
44+
*/
45+
public function getOriginal(): QueryConvertable
46+
{
47+
return $this->original;
48+
}
49+
50+
/**
51+
* Gets the variable from the alias.
52+
*
53+
* @return Variable
54+
*/
55+
public function getVariable(): Variable
56+
{
57+
return $this->variable;
58+
}
59+
}

src/AndOperator.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
namespace WikibaseSolutions\CypherDSL;
2323

24+
use WikibaseSolutions\CypherDSL\Traits\AliasableTrait;
2425
use WikibaseSolutions\CypherDSL\Traits\BooleanTypeTrait;
2526
use WikibaseSolutions\CypherDSL\Types\PropertyTypes\BooleanType;
2627

src/Assignment.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class Assignment extends BinaryOperator
4646
*/
4747
public function __construct(AnyType $left, AnyType $right)
4848
{
49-
$this->assertClass('left', [Property::class, Variable::class], $left);
49+
self::assertClass('left', [Property::class, Variable::class], $left);
5050

5151
parent::__construct($left, $right, false);
5252
}

src/BinaryOperator.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,20 @@
2121

2222
namespace WikibaseSolutions\CypherDSL;
2323

24+
use WikibaseSolutions\CypherDSL\Traits\AliasableTrait;
2425
use WikibaseSolutions\CypherDSL\Types\AnyType;
2526

2627
/**
2728
* This class represents the application of a binary operator, such as "+", "/" and "*".
2829
*/
2930
abstract class BinaryOperator implements QueryConvertable
3031
{
32+
use AliasableTrait;
33+
3134
/**
3235
* @var bool Whether to insert parentheses around the expression
3336
*/
34-
private bool $insertParentheses = true;
37+
private bool $insertParentheses;
3538

3639
/**
3740
* @var AnyType The left-hand of the expression

src/Functions/FunctionCall.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
namespace WikibaseSolutions\CypherDSL\Functions;
2323

2424
use WikibaseSolutions\CypherDSL\QueryConvertable;
25+
use WikibaseSolutions\CypherDSL\Traits\AliasableTrait;
2526
use WikibaseSolutions\CypherDSL\Types\AnyType;
2627
use WikibaseSolutions\CypherDSL\Types\CompositeTypes\ListType;
2728
use WikibaseSolutions\CypherDSL\Types\CompositeTypes\MapType;
@@ -35,6 +36,8 @@
3536
*/
3637
abstract class FunctionCall implements QueryConvertable
3738
{
39+
use AliasableTrait;
40+
3841
/**
3942
* Produces a raw function call. This enables the usage of unimplemented functions in your
4043
* Cypher queries. The parameters of this function are not type-checked.

src/Functions/LocalDateTime.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323

2424
use WikibaseSolutions\CypherDSL\Traits\LocalDateTimeTrait;
2525
use WikibaseSolutions\CypherDSL\Types\AnyType;
26-
use WikibaseSolutions\CypherDSL\Types\PropertyTypes\DateType;
2726
use WikibaseSolutions\CypherDSL\Types\PropertyTypes\LocalDateTimeType;
2827

2928
/**

src/Functions/RawFunction.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@
2626
use WikibaseSolutions\CypherDSL\Traits\BooleanTypeTrait;
2727
use WikibaseSolutions\CypherDSL\Traits\ListTypeTrait;
2828
use WikibaseSolutions\CypherDSL\Traits\MapTypeTrait;
29-
use WikibaseSolutions\CypherDSL\Traits\NodeTypeTrait;
3029
use WikibaseSolutions\CypherDSL\Traits\NumeralTypeTrait;
31-
use WikibaseSolutions\CypherDSL\Traits\RelationshipTrait;
3230
use WikibaseSolutions\CypherDSL\Traits\StringTypeTrait;
3331
use WikibaseSolutions\CypherDSL\Traits\StructuralTypeTrait;
3432
use WikibaseSolutions\CypherDSL\Types\AnyType;

src/Functions/Time.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
namespace WikibaseSolutions\CypherDSL\Functions;
2323

24-
use WikibaseSolutions\CypherDSL\Traits\LocalDateTimeTrait;
2524
use WikibaseSolutions\CypherDSL\Traits\TimeTrait;
2625
use WikibaseSolutions\CypherDSL\Types\AnyType;
2726
use WikibaseSolutions\CypherDSL\Types\PropertyTypes\TimeType;

src/Literals/Boolean.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
namespace WikibaseSolutions\CypherDSL\Literals;
2323

24+
use WikibaseSolutions\CypherDSL\Traits\AliasableTrait;
2425
use WikibaseSolutions\CypherDSL\Traits\BooleanTypeTrait;
2526
use WikibaseSolutions\CypherDSL\Types\PropertyTypes\BooleanType;
2627

@@ -30,6 +31,7 @@
3031
class Boolean implements BooleanType
3132
{
3233
use BooleanTypeTrait;
34+
use AliasableTrait;
3335

3436
/**
3537
* @var bool The value

src/Literals/Decimal.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
namespace WikibaseSolutions\CypherDSL\Literals;
2323

24+
use WikibaseSolutions\CypherDSL\Traits\AliasableTrait;
2425
use WikibaseSolutions\CypherDSL\Traits\NumeralTypeTrait;
2526
use WikibaseSolutions\CypherDSL\Types\PropertyTypes\NumeralType;
2627

@@ -30,6 +31,7 @@
3031
class Decimal implements NumeralType
3132
{
3233
use NumeralTypeTrait;
34+
use AliasableTrait;
3335

3436
/**
3537
* @var string The value

0 commit comments

Comments
 (0)