From f96b0b2310afd5a4faa5dfd1cbbb13ec21f7b314 Mon Sep 17 00:00:00 2001 From: gotty Date: Thu, 20 Dec 2018 19:04:15 +0300 Subject: [PATCH] [LIB-9] Common interface for all adapters --- .../java/org/hedgecode/chess/domain/Adapter.java | 28 +++++++++++++++++ .../org/hedgecode/chess/domain/AuthorAdapter.java | 4 +-- .../org/hedgecode/chess/domain/EtudeAdapter.java | 4 +-- .../hedgecode/chess/domain/EtudePGNAdapter.java | 36 ++++++++++++++++++++++ .../hedgecode/chess/domain/EtudeTypeAdapter.java | 4 +-- .../org/hedgecode/chess/dto/AuthorDTOAdapter.java | 5 +++ .../org/hedgecode/chess/dto/EtudeDTOAdapter.java | 5 +++ .../hedgecode/chess/dto/EtudeTypeDTOAdapter.java | 5 +++ 8 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/Adapter.java create mode 100644 chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudePGNAdapter.java diff --git a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/Adapter.java b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/Adapter.java new file mode 100644 index 0000000..00d4476 --- /dev/null +++ b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/Adapter.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2018. Developed by Hedgecode. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.hedgecode.chess.domain; + +/** + * Common Adapter Interface. + * + * @author Dmitry Samoshin aka gotty + */ +public interface Adapter { + + Class getTargetClass(); + +} diff --git a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/AuthorAdapter.java b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/AuthorAdapter.java index 96bb009..76d3381 100644 --- a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/AuthorAdapter.java +++ b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/AuthorAdapter.java @@ -23,7 +23,7 @@ import java.util.Date; * * @author Dmitry Samoshin aka gotty */ -public interface AuthorAdapter { +public interface AuthorAdapter extends Adapter { void setId(TargetType target, Long id); void setName(TargetType target, String name); @@ -32,7 +32,7 @@ public interface AuthorAdapter { void setBiography(TargetType target, String biography); void setComment(TargetType target, String comment); - class Empty implements AuthorAdapter { + abstract class Empty implements AuthorAdapter { @Override public void setId(TargetType target, Long id) { diff --git a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudeAdapter.java b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudeAdapter.java index c1dea0b..578fe24 100644 --- a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudeAdapter.java +++ b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudeAdapter.java @@ -24,7 +24,7 @@ import java.util.Date; * * @author Dmitry Samoshin aka gotty */ -public interface EtudeAdapter { +public interface EtudeAdapter extends Adapter { void setId(TargetType target, Long id); void setHash(TargetType target, BigInteger hash); @@ -38,7 +38,7 @@ public interface EtudeAdapter { void setDate(TargetType target, Date date); void setDescription(TargetType target, String description); - class Empty implements EtudeAdapter { + abstract class Empty implements EtudeAdapter { @Override public void setId(TargetType target, Long id) { diff --git a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudePGNAdapter.java b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudePGNAdapter.java new file mode 100644 index 0000000..66b26c5 --- /dev/null +++ b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudePGNAdapter.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2018. Developed by Hedgecode. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.hedgecode.chess.domain; + +/** + * + * + * @author Dmitry Samoshin aka gotty + */ +public class EtudePGNAdapter extends EtudeAdapter.Empty { + + @Override + public Class getTargetClass() { + return Etude.class; + } + + @Override + public void setPgn(Etude target, String pgn) { + // todo: assignFromPGN + } + +} diff --git a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudeTypeAdapter.java b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudeTypeAdapter.java index abc827f..1c5e058 100644 --- a/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudeTypeAdapter.java +++ b/chesshog-db-etude/src/main/java/org/hedgecode/chess/domain/EtudeTypeAdapter.java @@ -21,14 +21,14 @@ package org.hedgecode.chess.domain; * * @author Dmitry Samoshin aka gotty */ -public interface EtudeTypeAdapter { +public interface EtudeTypeAdapter extends Adapter { void setId(TargetType target, Long id); void setBrief(TargetType target, String brief); void setName(TargetType target, String name); void setDescription(TargetType target, String description); - class Empty implements EtudeTypeAdapter { + abstract class Empty implements EtudeTypeAdapter { @Override public void setId(TargetType target, Long id) { diff --git a/chesshog-db-etude/src/main/java/org/hedgecode/chess/dto/AuthorDTOAdapter.java b/chesshog-db-etude/src/main/java/org/hedgecode/chess/dto/AuthorDTOAdapter.java index ecda84a..8328002 100644 --- a/chesshog-db-etude/src/main/java/org/hedgecode/chess/dto/AuthorDTOAdapter.java +++ b/chesshog-db-etude/src/main/java/org/hedgecode/chess/dto/AuthorDTOAdapter.java @@ -28,6 +28,11 @@ import org.hedgecode.chess.domain.AuthorAdapter; public class AuthorDTOAdapter implements AuthorAdapter { @Override + public Class getTargetClass() { + return AuthorDTO.class; + } + + @Override public void setId(AuthorDTO target, Long id) { target.setId(id); } diff --git a/chesshog-db-etude/src/main/java/org/hedgecode/chess/dto/EtudeDTOAdapter.java b/chesshog-db-etude/src/main/java/org/hedgecode/chess/dto/EtudeDTOAdapter.java index a9196bf..3cdfeb6 100644 --- a/chesshog-db-etude/src/main/java/org/hedgecode/chess/dto/EtudeDTOAdapter.java +++ b/chesshog-db-etude/src/main/java/org/hedgecode/chess/dto/EtudeDTOAdapter.java @@ -31,6 +31,11 @@ import org.hedgecode.chess.domain.EtudeType; public class EtudeDTOAdapter implements EtudeAdapter { @Override + public Class getTargetClass() { + return EtudeDTO.class; + } + + @Override public void setId(EtudeDTO target, Long id) { target.setId(id); } diff --git a/chesshog-db-etude/src/main/java/org/hedgecode/chess/dto/EtudeTypeDTOAdapter.java b/chesshog-db-etude/src/main/java/org/hedgecode/chess/dto/EtudeTypeDTOAdapter.java index ca032ff..7e053af 100644 --- a/chesshog-db-etude/src/main/java/org/hedgecode/chess/dto/EtudeTypeDTOAdapter.java +++ b/chesshog-db-etude/src/main/java/org/hedgecode/chess/dto/EtudeTypeDTOAdapter.java @@ -26,6 +26,11 @@ import org.hedgecode.chess.domain.EtudeTypeAdapter; public class EtudeTypeDTOAdapter implements EtudeTypeAdapter { @Override + public Class getTargetClass() { + return EtudeTypeDTO.class; + } + + @Override public void setId(EtudeTypeDTO target, Long id) { target.setId(id); } -- 2.10.0