Moved details to new package (wtf duplicated)

This commit is contained in:
Andrey Terentev 2024-03-11 21:21:57 +07:00 committed by Andrey Terentev
parent 3f86cb9151
commit cce8d4fcc0
11 changed files with 73 additions and 18 deletions

View File

@ -2,7 +2,7 @@ package ru.dragonestia.picker.api.repository;
import ru.dragonestia.picker.api.exception.InvalidNodeIdentifierException; import ru.dragonestia.picker.api.exception.InvalidNodeIdentifierException;
import ru.dragonestia.picker.api.exception.NodeAlreadyExistException; import ru.dragonestia.picker.api.exception.NodeAlreadyExistException;
import ru.dragonestia.picker.api.repository.details.NodeDetails; import ru.dragonestia.picker.api.model.node.NodeDetails;
import ru.dragonestia.picker.api.repository.response.type.RNode; import ru.dragonestia.picker.api.repository.response.type.RNode;
import java.util.List; import java.util.List;

View File

@ -1,7 +1,7 @@
package ru.dragonestia.picker.api.repository; package ru.dragonestia.picker.api.repository;
import ru.dragonestia.picker.api.exception.*; import ru.dragonestia.picker.api.exception.*;
import ru.dragonestia.picker.api.repository.details.RoomDetails; import ru.dragonestia.picker.api.model.room.RoomDetails;
import ru.dragonestia.picker.api.repository.response.type.RNode; import ru.dragonestia.picker.api.repository.response.type.RNode;
import ru.dragonestia.picker.api.repository.response.type.RRoom; import ru.dragonestia.picker.api.repository.response.type.RRoom;

View File

@ -3,14 +3,13 @@ package ru.dragonestia.picker.api.repository;
import ru.dragonestia.picker.api.exception.NodeNotFoundException; import ru.dragonestia.picker.api.exception.NodeNotFoundException;
import ru.dragonestia.picker.api.exception.RoomAreFullException; import ru.dragonestia.picker.api.exception.RoomAreFullException;
import ru.dragonestia.picker.api.exception.RoomNotFoundException; import ru.dragonestia.picker.api.exception.RoomNotFoundException;
import ru.dragonestia.picker.api.repository.details.RoomDetails; import ru.dragonestia.picker.api.model.room.RoomDetails;
import ru.dragonestia.picker.api.model.user.UserDetails;
import ru.dragonestia.picker.api.repository.response.type.RRoom; import ru.dragonestia.picker.api.repository.response.type.RRoom;
import ru.dragonestia.picker.api.repository.response.type.RUser; import ru.dragonestia.picker.api.repository.response.type.RUser;
import ru.dragonestia.picker.api.repository.details.UserDetails;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.Set; import java.util.Set;
public interface UserRepository { public interface UserRepository {

View File

@ -1,5 +0,0 @@
package ru.dragonestia.picker.api.repository.details;
public enum NodeDetails {
PERSIST
}

View File

@ -1,5 +0,0 @@
package ru.dragonestia.picker.api.repository.details;
public enum UserDetails {
COUNT_ROOMS
}

View File

@ -1,8 +1,8 @@
package ru.dragonestia.picker.api.repository.response.type; package ru.dragonestia.picker.api.repository.response.type;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import ru.dragonestia.picker.api.model.node.NodeDetails;
import ru.dragonestia.picker.api.repository.response.type.type.PickingMode; import ru.dragonestia.picker.api.repository.response.type.type.PickingMode;
import ru.dragonestia.picker.api.repository.details.NodeDetails;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;

View File

@ -1,7 +1,7 @@
package ru.dragonestia.picker.api.repository.response.type; package ru.dragonestia.picker.api.repository.response.type;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import ru.dragonestia.picker.api.repository.details.RoomDetails; import ru.dragonestia.picker.api.model.room.RoomDetails;
import java.beans.Transient; import java.beans.Transient;
import java.util.HashMap; import java.util.HashMap;

View File

@ -1,7 +1,7 @@
package ru.dragonestia.picker.api.repository.response.type; package ru.dragonestia.picker.api.repository.response.type;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import ru.dragonestia.picker.api.repository.details.UserDetails; import ru.dragonestia.picker.api.model.user.UserDetails;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;

View File

@ -0,0 +1,24 @@
package ru.dragonestia.picker.api.repository.type;
import org.jetbrains.annotations.NotNull;
import ru.dragonestia.picker.api.util.IdentifierValidator;
import java.security.InvalidParameterException;
public final class NodeIdentifier extends ValueObject<String> {
private NodeIdentifier(String value) {
super(value);
}
@Override
protected void validate(String value) {
if (IdentifierValidator.forNode(value)) return;
throw new InvalidParameterException("Invalid node identifier");
}
public static NodeIdentifier of(@NotNull String value) {
return new NodeIdentifier(value);
}
}

View File

@ -0,0 +1,24 @@
package ru.dragonestia.picker.api.repository.type;
import org.jetbrains.annotations.NotNull;
import ru.dragonestia.picker.api.util.IdentifierValidator;
import java.security.InvalidParameterException;
public class RoomIdentifier extends ValueObject<String> {
private RoomIdentifier(String value) {
super(value);
}
@Override
protected void validate(String value) {
if(IdentifierValidator.forRoom(value)) return;
throw new InvalidParameterException("Invalid room identifier");
}
public static RoomIdentifier of(@NotNull String value) {
return new RoomIdentifier(value);
}
}

View File

@ -0,0 +1,18 @@
package ru.dragonestia.picker.api.repository.type;
abstract class ValueObject<T> {
private final T value;
ValueObject(T value) {
validate(value);
this.value = value;
}
protected abstract void validate(T value);
public T getValue() {
return value;
}
}