From 7f99d162dbeb13235e31466e60f7a22e835f79d6 Mon Sep 17 00:00:00 2001 From: gotty Date: Thu, 20 Dec 2018 19:10:16 +0300 Subject: [PATCH] [LIB-9] Some domain classes improvements --- .../java/org/hedgecode/chess/domain/Author.java | 11 ++++++++--- .../org/hedgecode/chess/domain/DomainObject.java | 21 +++++++++++++++++++-- .../main/java/org/hedgecode/chess/domain/Etude.java | 15 ++++++++++----- .../java/org/hedgecode/chess/domain/EtudeType.java | 9 +++++++-- 4 files changed, 44 insertions(+), 12 deletions(-) diff --git a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/Author.java b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/Author.java index 7aab668..7d5fd08 100644 --- a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/Author.java +++ b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/Author.java @@ -56,15 +56,15 @@ import javax.persistence.TemporalType; query = "select a from Author a where a.birthdate = :birthdate" ) }) -public class Author extends DomainObject { +public class Author extends DomainObject { public static final String FIND_ALL = "Author.findAll"; public static final String FIND_BY_ID = "Author.findById"; public static final String FIND_BY_NAME = "Author.findByName"; public static final String FIND_BY_BIRTHDATE = "Author.findByBirthDate"; - public static final String NAME_PROPERTY = "name"; - public static final String BIRTHDATE_PROPERTY = "birthdate"; + public static final String NAME_PARAMETER = "name"; + public static final String BIRTHDATE_PARAMETER = "birthdate"; @Id @Column( @@ -117,4 +117,9 @@ public class Author extends DomainObject { return target; } + @Override + public Long getId() { + return id; + } + } diff --git a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/DomainObject.java b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/DomainObject.java index 923e4f5..4bef7a1 100644 --- a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/DomainObject.java +++ b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/DomainObject.java @@ -21,8 +21,25 @@ package org.hedgecode.chess.domain; * * @author Dmitry Samoshin aka gotty */ -public abstract class DomainObject { +public abstract class DomainObject { - public static final String ID_PROPERTY = "id"; + public static final String ID_PARAMETER = "id"; + + public abstract Long getId(); + + public boolean isIdentical(DomainObjectType another) { + if (another == null) + return false; + + if ((getId() == null) != (another.getId() == null)) + return false; + + if ((getId() == null) && (another.getId() == null)) + return true; + + return getId().equals( + another.getId() + ); + } } diff --git a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/Etude.java b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/Etude.java index eccbd44..eb601af 100644 --- a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/Etude.java +++ b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/Etude.java @@ -72,7 +72,7 @@ import org.hedgecode.chess.position.Position; query = "select e from Etude e where e.blob = :blob" ) }) -public class Etude extends DomainObject { +public class Etude extends DomainObject { public static final String FIND_ALL = "Etude.findAll"; public static final String FIND_BY_ID = "Etude.findById"; @@ -81,10 +81,10 @@ public class Etude extends DomainObject { public static final String FIND_BY_AUTHOR = "Etude.findByAuthor"; public static final String FIND_BY_BLOB = "Etude.findByBlob"; - public static final String HASH_PROPERTY = "hash"; - public static final String TYPE_PROPERTY = "type"; - public static final String AUTHOR_PROPERTY = "author"; - public static final String BLOB_PROPERTY = "blob"; + public static final String HASH_PARAMETER = "hash"; + public static final String TYPE_PARAMETER = "type"; + public static final String AUTHOR_PARAMETER = "author"; + public static final String BLOB_PARAMETER = "blob"; @Id @Column( @@ -197,4 +197,9 @@ public class Etude extends DomainObject { return position; } + @Override + public Long getId() { + return id; + } + } diff --git a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudeType.java b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudeType.java index a9de8aa..e717fe5 100644 --- a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudeType.java +++ b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudeType.java @@ -48,13 +48,13 @@ import javax.persistence.Table; query = "select et from EtudeType et where et.brief = :brief" ) }) -public class EtudeType extends DomainObject { +public class EtudeType extends DomainObject { public static final String FIND_ALL = "EtudeType.findAll"; public static final String FIND_BY_ID = "EtudeType.findById"; public static final String FIND_BY_BRIEF = "EtudeType.findByBrief"; - public static final String BRIEF_PROPERTY = "brief"; + public static final String BRIEF_PARAMETER = "brief"; @Id @Column( @@ -89,4 +89,9 @@ public class EtudeType extends DomainObject { return target; } + @Override + public Long getId() { + return id; + } + } -- 2.10.0