anchor.diff:    n.firstName, n.lastName;
   ----
   
  -If a entity has a label it can be assumed that this entity represents some specific type of data which enforces the presence of specific properties and relationships (e.g. firstName, lastName for persons).
  +If a node has a label it can be assumed that this entity represents some specific type of data which enforces the
  +presence of specific properties and relationships (e.g. firstName, lastName for persons).
   
  -:numbered:
  -
  -The First Section
  ------------------
  -Article sections start at level 1 and can be nested up to four levels
  -deep.
  -footnote:[An example footnote.]
  -indexterm:[Example index entry]
  -
  -And now for something completely different: ((monkeys)), lions and
  -tigers (Bengal and Siberian) using the alternative syntax index
  -entries.
  -(((Big cats,Lions)))
  -(((Big cats,Tigers,Bengal Tiger)))
  -(((Big cats,Tigers,Siberian Tiger)))
  -Note that multi-entry terms generate separate index entries.
  -
  -Here are a couple of image examples: an image:images/smallnew.png[]
  -example inline image followed by an example block image:
  -
  -.Tiger block image
  -image::images/tiger.png[Tiger image]
  -
  -Followed by an example table:
  -
  -.An example table
  -[width="60%",options="header"]
  -|==============================================
  -| Option          | Description
  -| -a 'USER GROUP' | Add 'USER' to 'GROUP'.
  -| -R 'GROUP'      | Disables access to 'GROUP'.
  -|==============================================
  -
  -.An example example
  -===============================================
  -Lorum ipum...
  -===============================================
  -
  -[[X1]]
  -Sub-section with Anchor
  -~~~~~~~~~~~~~~~~~~~~~~~
  -Sub-section at level 2.
  -
  -A Nested Sub-section
  -^^^^^^^^^^^^^^^^^^^^
  -Sub-section at level 3.
  -
  -Yet another nested Sub-section
  -++++++++++++++++++++++++++++++
  -Sub-section at level 4.
  -
  -This is the maximum sub-section depth supported by the distributed
  -AsciiDoc configuration.
  -footnote:[A second example footnote.]
  -
  -
  -The Second Section
  -------------------
  -Article sections are at level 1 and can contain sub-sections nested up
  -to four deep.
  -
  -An example link to anchor at start of the <<X1,first sub-section>>.
  -indexterm:[Second example index entry]
  -
  -An example link to a bibliography entry <<taoup>>.
  -
  -
  -:numbered!:
  -
  -[appendix]
  -Example Appendix
  -----------------
  -AsciiDoc article appendices are just just article sections with
  -'specialsection' titles.
  -
  -Appendix Sub-section
  -~~~~~~~~~~~~~~~~~~~~
  -Appendix sub-section at level 2.
  -
  -
  -[bibliography]
  -Example Bibliography
  ---------------------
  -The bibliography list is a style of AsciiDoc bulleted list.
  -
  -[bibliography]
  -- [[[taoup]]] Eric Steven Raymond. 'The Art of Unix
  -  Programming'. Addison-Wesley. ISBN 0-13-142901-9.
  -- [[[walsh-muellner]]] Norman Walsh & Leonard Muellner.
  -  'DocBook - The Definitive Guide'. O'Reilly & Associates. 1999.
  -  ISBN 1-56592-580-7.
  -
  -
  -[glossary]
  -Example Glossary
  -----------------
  -Glossaries are optional. Glossaries entries are an example of a style
  -of AsciiDoc labeled lists.
  -
  -[glossary]
  -A glossary term::
  -  The corresponding (indented) definition.
  -
  -A second glossary term::
  -  The corresponding (indented) definition.
  -
  -
  -ifdef::backend-docbook[]
  -[index]
  -Example Index
  --------------
  -////////////////////////////////////////////////////////////////
  -The index is normally left completely empty, it's contents being
  -generated automatically by the DocBook toolchain.
  -////////////////////////////////////////////////////////////////
  -endif::backend-docbook[]
  
positive.code:    String getName();
     void setName();
   }
   
  
  Customer.java
  [source,java]
   public interface Customer {
     int getCustomerNo();
     void setCustomerNo(int customerNo);
   }
  
  
  
  Mapping Composite Data Objects to Neo4j
  ---------------------------------------
  
  As a graph database Neo4j provides very good capabilities to model highly interconnected datastructures consisting of nodes and relationships. With release 2.0 a new concept of labels has been introduced. One or more number of labels can be added to a entity:
  
  [source]
  ----
  
negative.code: ==============================
  Dirk Mahler <dirk.mahler@buschmais.com>
  
  This document describes Composite Data Objects for Java.
  
  :numbered!:
  [abstract]
  Composite Data Objects
  ----------------------
  Modeling data objects for datastores (i.e. databases) in various domains often requires common properties
  (e.g. lastChangedBy, created, name, etc.) to be present in several data types. This is commonly solved by defining
  abstract base types representing a specific aspect or role and defining these properties here. Concrete data types may
  derive from these base types if the information is needed. This approach comes to its limits if more than one aspect
  shall be re-used in one Java POJO as multiple inheritance is not supported for classes in the Java language.
  
  Composite Data Objects (CDO) allows modeling types as interfaces by only specifying the required accessor methods
  (i.e. getter and setter) and composing these types either statically or dynamically. The CDO API uses well-known
  concepts from existing persistence APIs (e.g. JPA, JDO) but extends them with functionality which is enabled by using
  interfaces to define data objects, e.g. type migration at runtime.
  The CDO core implementation itself is datastore-agnostic, i.e. it does not depend on specific concept like relational
  or graph databases, document stores etc but allows using them. Datastore specific implementations can be provided by
  implementing the SPI (service provider interface), the reference implementation is based on Neo4j.
  
  Static vs. Dynamic Composition
  ------------------------------
  An example from a well known domain shall be used to explain the difference between both concepts of composition:
  
  Person.java
  [source,java]
  