I have a method where I check type of class from String and then load it from database to manipulate with data. Is it possible to put in the parameter of method generic class and take data from it? All classes extends another class BaseEntity.
Here My Code
public String sendChangedStatus(String type,UUID entityId) throws ExecutionException, InterruptedException {
String requestNumber="";
String name="";
String status="";
String entityName="";
PersonGroupExt initiator=null;
switch (type){
case "msg":
Message msg = dataManager
.load(Message.class)
.query("select e from hse_Message e" +
" where e.id = :entityId")
.parameter("entityId",entityId)
.view("message-editView")
.optional().orElse(null);
requestNumber= msg.getRequestNumber();
name="Сообщения";
status=msg.getStatus().getLangValue();
initiator=msg.getInitiator();
entityName="Message";
break;
case "bhv":
Behavior behavior= dataManager.loadValue("select e from hse_Behavior e" +
" where e.id = :entityId", Behavior.class)
.parameter("entityId",entityId)
.optional().orElse(null);
requestNumber= behavior.getRegNumber();
name="Обращения";
status=behavior.getStatus().getLangValue();
initiator = behavior.getInitiator();
entityName="Behavior";
break;
....
}
Something like this I want to do:
public String sendChangedStatus(Class<T> entity) throws ExecutionException, InterruptedException {
String requestNumber=entity.getRequestNumber();
String name=entity.getName();
String status=entity.getStatus();
String entityName=entity.getInstanceName();
PersonGroupExt initiator=entity.getInitiator();
....
}