Files
eapim-admin/src/main/java/com/eactive/eai/agent/command/Command.java
T
Rinjae c54ef1903f init
2025-09-05 17:16:26 +09:00

67 lines
1.4 KiB
Java

package com.eactive.eai.agent.command;
import java.io.Serializable;
import java.util.Map;
import lombok.Getter;
import lombok.NonNull;
import lombok.Setter;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;
@SuperBuilder
@Accessors(chain = true)
public abstract class Command implements Serializable {
private static final long serialVersionUID = 1L;
@Getter
@Setter
@NonNull
protected String name;
@Setter
protected Object args;
private Map<String, String> errorCode;
protected Command() {
this.name = this.getClass().getName();
}
protected Command(String name) {
this.name = name;
}
public abstract Object execute() throws CommandException;
protected String makeException(String rspErrorCode, Throwable cause) {
String[] msgArgs = new String[2];
msgArgs[0] = name;
if (cause == null) {
msgArgs[1] = args.toString();
} else {
msgArgs[1] = cause.getMessage();
}
return makeMessage(errorCode.get(rspErrorCode), msgArgs);
}
private static String makeMessage(String msg, String[] args) {
String keyword = null;
String head = null;
String tail = null;
int idx = -1;
for (int i = 0; i < args.length; i++) {
keyword = "{" + (i + 1) + "}";
idx = msg.indexOf(keyword);
if (idx == -1) {
continue;
}
head = msg.substring(0, idx);
tail = msg.substring(idx + keyword.length());
msg = head + args[i] + tail;
}
return msg;
}
}