Benjamin Morel
1b4eafc873
Fixed validation message
2014-04-11 22:27:51 +00:00
Saša Stamenković
dc10bb69f6
Minor dockblock change
2014-04-09 13:53:56 +02:00
Frank Liepert
df020e08a0
[DDC-3076] Fix ObjectHydrator
2014-04-09 11:30:11 +02:00
Frank
d1c722c1d0
Fix: handle invalid discriminator value
2014-04-09 01:55:54 +02:00
Frank
f7b95c1aa5
Add: invalidDiscriminatorValue method
2014-04-09 01:55:49 +02:00
Benjamin Morel
b3ec4df8ce
Fixed wrongly initialized property.
2014-04-04 20:05:16 +00:00
Marco Pivetta
e6bf096583
Prefixing alias counter with _
to fix DDC-3042 and prevent collisions
2014-04-04 03:05:48 +02:00
Marco Pivetta
733102b4a1
DDC-3065 - applying hotfix that allows NULL
in IN()
criteria
2014-04-03 17:36:56 +02:00
Menno Holtkamp
8d0a5958eb
Code-style improvement
2014-03-31 11:02:36 +02:00
Menno Holtkamp
59842e9bc6
Code-style improvement
...
Also to trigger Travis CI
2014-03-31 11:00:50 +02:00
Thomas Lomas
7d9630786b
Update EntityGenerator comment
...
fieldVisibility was referred to as a boolean, where it is actually a string.
2014-03-29 01:49:12 +00:00
Menno Holtkamp
798075931a
Exporter support for association fetch modes
2014-03-26 01:00:17 +01:00
Benjamin Eberlei
927d69b61a
Merge pull request #957 from thealjey/master
...
makes doctrine less dependent upon the symfony yaml component
2014-03-23 15:41:27 +01:00
Benjamin Eberlei
8addb5ffa8
Merge pull request #960 from drealecs/fixes-EntityManagerInterface
...
allow passing EntityManagerInterface when creating a HelperSet
2014-03-23 15:36:38 +01:00
Benjamin Eberlei
71fc425902
Merge pull request #963 from mdemo/master
...
SQLFilter -- allows to check if a parameter was set
2014-03-23 15:33:14 +01:00
Benjamin Eberlei
a03c8da683
Merge pull request #962 from netiul/master
...
Stop executeDeletions when there is nothing to to delete anymore
2014-03-23 15:32:28 +01:00
Benjamin Eberlei
2aea3036b6
[DDC-3018] Fix string literals in new operator.
2014-03-23 15:16:09 +01:00
Adrian Olek
0caeb4edbf
Initialize table options annotation, fixed condition in AnnotationDriver
2014-03-23 14:37:55 +01:00
Benjamin Eberlei
d473824279
[DDC-2996] Fix bug in UnitOfWork#recomputeSingleEntityChangeSet
...
When calling UnitOfWork#recomputeSingleEntityChangeSet on an entity
that didn't have a changeset before, the computation was ignored.
This method however is suggested to be used in "onFlush" and "preFlush"
events in the documentation.
Also fix a bug where recomputeSingleEntityChangeSet was used
before calculating a real changeset for an object.
2014-03-23 13:16:33 +01:00
Benjamin Eberlei
e415da7f47
Merge branch 'DDC-3033'
2014-03-23 12:38:06 +01:00
Benjamin Eberlei
396337bd0d
[DDC-3033] Fix bug in UnitOfWork#recomputeSingleEntityChangeSet.
...
The fix for DDC-2624 had a side effect on recomputation of
changesets in preUpdate events. The method wasn't adjusted
to the changes in its sister method computeChangeSet() and
had wrong assumptions about the computation.
Especially:
1. Collections have to be skipped
2. Comparison was changed to strict equality only.
2014-03-23 12:35:54 +01:00
Benjamin Eberlei
fb2d2bce45
Merge pull request #984 from holtkamp/patch-1
...
Use boolean values for 'unique' attribute
2014-03-23 10:16:04 +01:00
Benjamin Eberlei
c8836a008d
[DDC-3045] Check that EntityRepository APIs prevent SQL injection through field names. Improve EntityManager#find() error handling when invalid identifier fields are passed.
2014-03-23 09:58:31 +01:00
Menno Holtkamp
ef4e73f987
Use boolean values for 'unique' attribute
...
As defined in: https://github.com/doctrine/doctrine2/blob/master/doctrine-mapping.xsd#L294
Same as 'nullable' attribute.
It was being exported as a "1" for TRUE and "0" for false
2014-03-20 11:08:29 +01:00
Menno Holtkamp
262e465e39
Processed code-review feedback
2014-03-20 09:02:39 +01:00
Menno Holtkamp
56e879b7aa
Removed double linebreaks
2014-03-19 13:03:26 +01:00
Menno Holtkamp
400f420925
Added MEMBER OF and INSTANCE OF helpers to ExpressionBuilder
2014-03-19 13:00:45 +01:00
Guilherme Blanco
383604d4b8
Merge pull request #978 from AntonStoeckl/embedded-empty-prefix
...
[DDC-2987] Enable empty prefixes for inlined embeddable
2014-03-16 11:35:25 -05:00
Guilherme Blanco
44c1dae1b9
Merge pull request #885 from bakura10/criteria-many-to-many
...
Add support for ManyToMany Criteria
2014-03-16 11:33:10 -05:00
Adrian Olek
49587776fa
Renamed _exportOptions method
2014-03-16 17:31:15 +01:00
Adrian Olek
e403bf207c
cs fix
2014-03-16 16:56:46 +01:00
Adrian Olek
553883bdd1
Added options attribute export to Annotation, Xml & Yaml
...
exporters.
2014-03-16 16:50:41 +01:00
Anton Stoeckl
83ef47c8d0
This fixes ticket DDC-3028
...
Enables columnPrefix to be "false" so no prefix is added.
Changed the structure a bit (to if/else) to be more readable with the additional condition.
2014-03-14 12:34:22 +01:00
Anton Stoeckl
cd2043915c
columnPrefix must support string and boolean, so changing to mixed
2014-03-14 12:29:01 +01:00
Anton Stöckl
fa79de6ea4
Enable empty prefixes for inlined embeddable
...
This fixes http://www.doctrine-project.org/jira/browse/DDC-2987
This makes it possible to map a field from an embeddable to a database field with the same name, without any prefix added.
Example:
- an embeddable object "Id" with a property "id"
- per default this would map inline to id_id
- supplying null or '' as columnPrefix does not work due to the ! empty() check
- with my little change, if columnPrefix : false is supplied in the mapping config this will now map to a db column "id"
To build Ids as ValueObjects is a very common approach in DDD, so ihmo this is a must have.
2014-03-13 16:47:22 +01:00
Miha Vrhovnik
d888d7d1c0
Fix wrong annotation
...
Without above fix I'm getting
"[Semantical Error] The annotation "@array" in method Doctrine\ORM\Mapping\ClassMetadataInfo::mapEmbedded() was never imported. Did you maybe forget to add a "use" statement for this annotation?"
2014-03-11 14:44:42 +01:00
Fabio B. Silva
e9ec0a24da
[SLC] resolve association cache entry
2014-03-06 20:44:59 -05:00
Fabio B. Silva
cbdd8bc041
[SLC] Fix query association proxy
2014-03-05 04:10:07 -05:00
fabios
6e64cc101a
[SLC] Add query builder options
2014-03-03 15:28:35 -05:00
Benjamin Eberlei
a522aa0a81
Merge pull request #965 from FabioBatSilva/slc-criteria
...
[SLC] Add support for criteria
2014-03-01 12:47:57 +01:00
Fabio B. Silva
8c2aef3f14
[DDC-2943] Disable slc for pagination queries
2014-03-01 01:15:09 -05:00
Fabio B. Silva
f4c63f8238
[SLC] Support criteria
2014-03-01 00:59:34 -05:00
Miro Demovic
1921c2f74a
Allow if parameter exists in SQLFilter
2014-02-26 08:55:47 +01:00
Zacharias Luiten
8a168bb2ce
stop executing executeDeletions when there is nothing to to delete anymore
2014-02-25 16:02:02 +01:00
Alexandru Patranescu
1fe6dbc1f2
allow passing EntityManagerInterface when creating a HelperSet
2014-02-23 20:01:14 +02:00
Eugene Kuzmenko
c06201303d
makes doctrine less dependent upon the symfony yamp component
2014-02-20 09:28:44 +00:00
Marco Pivetta
5a2497d482
Merge pull request #935 from da-eto-ya/remove_public_validation
...
Remove incorrect (outdated) validation for public fields in SchemaValidator
2014-02-19 21:21:59 +01:00
Michaël Gallego
b550d44cb9
CS fix
2014-02-18 10:26:26 +01:00
Michaël Gallego
a45ecb5733
Fix bug with hydrators
2014-02-18 10:26:25 +01:00
Michaël Gallego
6cbd643d4b
Add test
2014-02-18 10:26:25 +01:00
Michaël Gallego
f03f991a25
Functional test
2014-02-18 10:26:25 +01:00
Michaël Gallego
0d5de64c0f
Fix CS
2014-02-18 10:26:25 +01:00
Michaël Gallego
e5ba28676d
fallback to persister count
2014-02-18 10:26:25 +01:00
Michaël Gallego
fbbe922cb6
Fix tests
2014-02-18 10:26:25 +01:00
Michaël Gallego
c69b7562ab
Remove useless exception
2014-02-18 10:26:25 +01:00
Michaël Gallego
bb1f71f1f9
Fix docblock
2014-02-18 10:26:25 +01:00
Michaël Gallego
be39afa2f4
Add method to interface
2014-02-18 10:26:24 +01:00
Michaël Gallego
9385a600cf
Fix wrong logic
2014-02-18 10:26:24 +01:00
Michaël Gallego
738cc250f8
Revert docblock
2014-02-18 10:26:24 +01:00
Michaël Gallego
07654ddd3f
Revert tab changes
2014-02-18 10:26:24 +01:00
Michaël Gallego
160b07d1e3
Rebase to master
2014-02-18 10:26:24 +01:00
Guilherme Blanco
0dbd742588
Merge pull request #886 from Strate/bugfix/join-with-condition-placement-fix
...
[DDC-1256] Fix applying ON/WITH conditions to first join in Class Table Inheritance
2014-02-17 12:12:05 -05:00
Per Persson
3543ccea7f
Pass class name to constructor.
2014-02-11 23:48:31 +01:00
Per Persson
7ef1063007
Pass class name to constructor.
2014-02-11 23:44:24 +01:00
Per Persson
4b061a0e4c
Add class name as argument.
2014-02-11 23:40:38 +01:00
Asmir Mustafic
a5fbb20fbb
Can cache many to many empty relations
2014-02-11 15:08:49 +01:00
Asmir Mustafic
1c94c16234
Can cache empty collections
...
I should be able to cache an "empty" collection.
I have a some objects, where 90% of these have on-to-many relations with zero associated elements.
This causes doctrine to run a query each time, instead of cache it as empty relation.
2014-02-11 14:59:31 +01:00
Strate
324f200f1b
Merge branch 'master' into bugfix/join-with-condition-placement-fix
2014-02-10 08:22:11 +04:00
Benjamin Morel
08f6291350
Cleaned up further unused imports.
2014-02-09 23:45:22 +00:00
Benjamin Morel
412e4ab9da
Cleaned up unused imports
2014-02-09 22:12:51 +00:00
Thomas Lallement
2a77a739dc
Fix CS
2014-02-09 16:37:32 +01:00
Benjamin Eberlei
4c4e4f6d3d
Merge pull request #939 from doctrine/DDC-1985
...
[DDC-2939] Order Preservation
2014-02-09 15:43:57 +01:00
Wouter J
d7b917aa49
Fixed InputOption modes
2014-02-09 15:10:00 +01:00
Benjamin Eberlei
53a5a48aed
[DDC-2624] Fix bug when persistent collection is cloned and used in a new entity.
2014-02-09 14:27:42 +01:00
Jan Kramer
43e37d4f2f
Throw exception on embeddables in embeddables.
2014-02-09 10:09:28 +01:00
Benjamin Eberlei
d31f7ebf57
[DDC-1985] Fix ordering preservation in SQL limit subquery output walker.
2014-02-08 17:01:55 +01:00
Benjamin Eberlei
50ba19d91b
Merge pull request #937 from goetas/contains-key
...
Extra-lazy for containsKey on collections
2014-02-08 16:28:44 +01:00
Benjamin Eberlei
8a0901c92b
Merge pull request #835 from schmittjoh/ValueObjects
...
Value objects (Based on #634 )
2014-02-08 16:24:47 +01:00
Benjamin Eberlei
8e3f4561c0
Merge pull request #858 from schmittjoh/rsmBuilder
...
lifts an unnecessary restriction on ResultSetMappingBuilder
2014-02-08 16:23:18 +01:00
Benjamin Eberlei
058e024f0e
Merge pull request #902 from gwagner/master
...
Fix Lifecycle Callbacks
2014-02-08 16:01:13 +01:00
Benjamin Eberlei
31a2870c3f
Merge pull request #912 from BenMorel/collection-count
...
Avoid PersistentCollection::isEmpty() to fully load the collection.
2014-02-08 16:00:10 +01:00
Benjamin Eberlei
960fbfc110
Merge pull request #908 from FabioBatSilva/DDC-2862
...
[DDC-2862][SLC] Fix lazy association load
2014-02-08 15:55:20 +01:00
Benjamin Eberlei
b76e95cbb9
Merge pull request #917 from doctrine/hotfix/DDC-2931
...
DDC-2931 - one-to-one self-referencing association broken by DCOM-96
2014-02-08 15:46:07 +01:00
Benjamin Eberlei
105d9e998b
Merge pull request #927 from timdev/timdev-fixes
...
s/EntityManager/EntityManagerInterface/ in a few places
2014-02-08 15:30:15 +01:00
Benjamin Eberlei
f07c576e5f
Merge pull request #932 from deeky666/DDC-2919
...
[DDC-2919] Make lock mode usage consistent
2014-02-08 15:27:35 +01:00
Benjamin Morel
496f9a0176
Avoid PersistentCollection::isEmpty() to fully load the collection on extra lazy fetch.
2014-02-08 13:49:48 +00:00
shustrik
b167a64544
remove doc
2014-02-06 20:08:07 +03:00
shustrik
12985b7811
add iterator to tree walker chain
2014-02-06 19:39:40 +03:00
Asmir Mustafic
1d40c85c3c
Right owning side column selection
2014-02-06 14:26:06 +01:00
shustrik
6fe40b055f
fix return walker
2014-02-06 16:18:35 +03:00
shustrik
a6b43b93ac
fix TreeWalkerChain.
...
Create walker object in foreach.
2014-02-06 16:06:00 +03:00
Asmir Mustafic
2eb428df79
code style
2014-02-06 12:55:33 +01:00
Asmir Mustafic
724e69146c
typos and removed confusing ternary
2014-02-06 12:44:13 +01:00
Asmir Mustafic
557686aa0a
Entra-lazy for containsKey on collections
2014-02-06 12:27:12 +01:00
Ilya Pleshakov
1f3290faae
Remove incorrect (outdated) validation for public fields in SchemaValidator
2014-02-06 13:02:41 +04:00
Steve Müller
a6c8ab8a5f
make lock mode usage consistent
2014-02-05 15:13:53 +01:00
Strate
5c44dd3823
Allow to use object as a hint value.
2014-02-04 15:51:53 +01:00
Strate
352f38a77e
Fix comment
2014-02-04 15:51:53 +01:00
Strate
e8d47fa9a3
Added a new configuration option: defaultQueryHints, which allows to populate all queries by default set of hints.
2014-02-04 15:51:53 +01:00
Tim Lieberman
25d71462e3
Make SchemaTool and SchemaValidator use EntityManagerInterface instead of EntityManager
2014-02-01 05:11:20 +00:00
Marco Pivetta
e322ab4deb
DDC-2931 - Removing previous broken fix for DDC-2931 - hardened
2014-02-01 02:00:10 +01:00
Marco Pivetta
7a32eca039
DDC-2931 - Safe comparison between proxies and entities when refreshing objects
2014-02-01 01:57:51 +01:00
Tim Lieberman
bf9fbd896b
Substitute EntityManagerInterface for EntityManager in Console EntityManagerHelper
2014-02-01 00:23:23 +00:00
Tim Lieberman
43d94e7b5e
Console EntityManagerHelper now accepts EntityManagerInterface as constructor argument, instead of insisting on an EntityManager
2014-01-31 15:32:31 -08:00
Fabio B. Silva
7e5a1c6b0d
Fix lazy association load
2014-01-28 12:26:10 -05:00
Marco Pivetta
596d2070ed
DDC-2931 - Removing refresh hints when fetching association data in hydrators
2014-01-24 02:45:28 +01:00
Strate
04e6061584
Added an exception when invalid case.
...
Fixes after code review.
2014-01-20 20:06:53 +04:00
Strate
41ec5fd56d
Fix applying ON/WITH conditions to first join in Class Table Inheritance
...
Now we build nested joins for CTI when using ON/WITH clause.
2014-01-19 20:56:24 +04:00
Strate
b69481b639
Merge branch 'master' into bugfix/join-with-condition-placement-fix
2014-01-19 15:06:01 +04:00
Steve Müller
b9ff877f14
fix SQL generation on table lock hint capable platforms
2014-01-15 22:46:09 +01:00
Geoffrey Wagner
b863b9b957
Fix some code standard things
2014-01-12 17:14:32 -06:00
Geoffrey Wagner
e9739f8591
Fix some code standard things
2014-01-09 10:48:38 -06:00
Geoffrey Wagner
4772cbfae6
Add a test
...
addLifecycleCallback now only allows a callback once so we do not hook them twice
2014-01-08 20:58:50 -06:00
Geoffrey Wagner
db31c58102
Fix Lifecycle Callbacks
...
Remove a bit of code that breaks lifecycle callbacks of parent MappedSuperclasses
2014-01-08 17:17:47 -06:00
Guilherme Blanco
b65d9e6c83
Merge pull request #896 from holtkamp/patch-2
...
Ensure <cascade/> elements preceed <join-columns/>
2014-01-05 11:32:31 -08:00
Menno Holtkamp
fc2b9980ae
Exclude exporting inheritanceType for INHERITANCE_TYPE_NONE
2014-01-05 18:53:31 +01:00
Menno Holtkamp
797fb9c34a
Respected 'inheritanceType' at Entity level
...
It was (incorrectly) fetched from Table-level.
http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html#annref-inheritancetype
2014-01-05 18:41:55 +01:00
Menno Holtkamp
85a16f9f28
Ensure <cascade/> elements preceed <join-columns/>
...
When converting annotations based metadata to XML, the position of the <cascade/> elements resulted in XSD validation errors caused by the definitions of the association ComplexTypes:
- https://github.com/doctrine/doctrine2/blob/master/doctrine-mapping.xsd#L463
- https://github.com/doctrine/doctrine2/blob/master/doctrine-mapping.xsd#L482
- https://github.com/doctrine/doctrine2/blob/master/doctrine-mapping.xsd#L495
- https://github.com/doctrine/doctrine2/blob/master/doctrine-mapping.xsd#L517
Since changing the XSD might result in validation problems in existing mappings, changing the XmlExporter seems a better approach.
Note that the '<cache/>' element is not yet generated by the XmlExporter, but according to the XML Schema, it should precede the '<cascade/>' element.
2014-01-05 15:34:59 +01:00
Johannes Schmitt
e879626d73
Merge branch 'master' of github.com:doctrine/doctrine2 into rsmBuilder
2014-01-04 17:57:39 +01:00
Johannes Schmitt
946419459c
fixes bad merge
2014-01-04 17:54:46 +01:00
Johannes Schmitt
4f585a3d63
Merge branch 'master' of github.com:doctrine/doctrine2 into ValueObjects
...
Conflicts:
UPGRADE.md
lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php
2014-01-04 17:52:32 +01:00
Benjamin Eberlei
69cad4079d
Merge pull request #820 from apancutt/master
...
Added support for field options to FieldBuilder
2014-01-03 14:03:25 -08:00
Benjamin Eberlei
2a9351b8dc
[DDC-2792] Fix fatals
2014-01-03 23:01:05 +01:00
Vyacheslav Ganzin
1edf6b65b1
joinColumn is not required in manyToMany
...
annotation behavior copied
2014-01-03 22:27:27 +01:00
Benjamin Eberlei
c8c7cf0528
Fix tests after merge of QueryBuilder#addCriteria changes.
2014-01-03 21:28:06 +01:00
Piotr Antosik
eb45690e10
Fix typos - QueryBuilder
2014-01-03 17:28:42 +01:00
Adam Pancutt
352f5394e5
Removed FieldBuilder::unsigned() method as it is only supported by MySQL
2014-01-03 09:48:38 +00:00
Benjamin Eberlei
9a3cf77919
[DDC-2128] Fix PR according to comments.
2014-01-03 00:15:14 +01:00
catalin
93c018668d
checking preg result. Should I raise an error
...
throw new ORMException("Error regular expression: " . $filter);
2014-01-03 00:15:14 +01:00
catalin
0d8f572661
added space after type cast (I could not find any rule in psr1/2 standard, but I modified in PhpStorm)
2014-01-03 00:15:14 +01:00
catalin
2326033e79
added preg_quote to $filter input
2014-01-03 00:15:13 +01:00
catalin
57e7559c1b
- Applied Phpstorm PSR format
...
- Changed RegExp format
2014-01-03 00:15:13 +01:00
Catalinux
6963bf6028
Now MetaDataFilter takess also regexp. For example whern you want to
...
extract metadata if you would filter like this: --filter="Article"
would extract also for "ArticleItems" (article_items table). Now you
can use --filter="Article$" if you want only that table (articl)
2014-01-03 00:15:13 +01:00
Benjamin Eberlei
8118dddc6a
Merge pull request #674 from TorbenBr/master
...
Shortcut for force
2014-01-02 15:02:46 -08:00
Benjamin Eberlei
22d4d2e812
Merge branch 'DDC-2700'
2014-01-02 23:50:21 +01:00
Benjamin Eberlei
53ed898684
[DDC-2700] Add test and fix CS.
2014-01-02 23:50:15 +01:00
Benjamin Eberlei
2feffe164a
Merge branch 'DDC-2732'
2014-01-02 23:33:56 +01:00
Benjamin Eberlei
96ec3c1613
Merge pull request #830 from sandermarechal/sort-alias
...
[DDC-2764] Prefix criteria orderBy with rootAlias
2014-01-02 14:15:01 -08:00
Benjamin Eberlei
41581847b2
Merge pull request #833 from ronanguilloux/patch-console-entity-generator
...
Generate-Entities-Console-Command: Adding an 'avoid backup' flag
2014-01-02 14:13:27 -08:00
Benjamin Eberlei
17809abd29
Merge pull request #837 from mnapoli/DDC2775
...
DDC-2775 Tests and fix
2014-01-02 14:07:14 -08:00
Benjamin Eberlei
05576d3e1c
Merge pull request #844 from terite/orm-validate-skip
...
Teach orm:validate-schema to --skip-mapping and --skip-sync
2014-01-02 14:00:22 -08:00
Benjamin Eberlei
ea84cfbdd1
Merge pull request #845 from flack/avoid-update-on-delete
...
Don't compute changeset for entities that are going to be deleted
2014-01-02 13:59:25 -08:00
Benjamin Eberlei
3a8aaea14a
Merge pull request #794 from stefankleff/patch-1
...
Multiple invokation of listeners on PreFlush event
2014-01-02 13:16:21 -08:00
yktd26
c9e06a6854
Format code
2013-12-31 12:25:14 +01:00
yktd26
bee74f898d
autoGenerate arg from bool to int
...
For using all four modes of proxies generation, change the 4th arg of
ProxyFactory's constructor to integer
2013-12-31 11:58:36 +01:00
Guilherme Blanco
a7b9140d2f
Merge pull request #890 from deeky666/DBAL-563
...
[DBAL-563] Add general IDENTITY generator type support for sequence emulating platforms
2013-12-30 21:34:20 -08:00
Sergey Polischook
07f67c5d1a
Allow to not generate extra use
...
For case when we not generate annotation (by default at doctrine orm:generate-entities) allow to not generate extra use for it -
```php
use Doctrine\ORM\Mapping as ORM;
```
For example if generate entities for my project that use only dbal in pord but use orm for generate entities in dev mode.
2013-12-30 04:43:35 +02:00
Steve Müller
337857dc8a
add general IDENTITY generator type support for sequence emulating platforms
2013-12-29 05:55:16 +01:00
Matthieu Napoli
c9791fe97f
Inlined the model for the DCC2775 test case inside the test class
2013-12-23 09:55:10 +01:00
Strate
c6810861ca
Fix applying ON/WITH conditions to first join in Class Table Inheritance
2013-12-22 21:02:14 +04:00