mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-10-13 04:15:22 +00:00
perf[enhance]: use getName() in class
This commit is contained in:
1 parent
6c26fdcb7f
commit
82d299e1c1
4 files changed
+47
-47
No files matched your search
@@ -39,7 +39,7 @@ public abstract class EnhanceUtils {
|
||||
var classPool = ClassPool.getDefault();
|
||||
|
||||
for (var clazz : classArray) {
|
||||
if (classPool.find(clazz.getCanonicalName()) == null) {
|
||||
if (classPool.find(clazz.getName()) == null) {
|
||||
ClassClassPath classPath = new ClassClassPath(clazz);
|
||||
classPool.insertClassPath(classPath);
|
||||
}
|
||||
@@ -54,31 +54,31 @@ public abstract class EnhanceUtils {
|
||||
Class<?> clazz = definition.getEventClazz();
|
||||
|
||||
// 定义类名称
|
||||
CtClass enhanceClazz = classPool.makeClass(EnhanceUtils.class.getCanonicalName() + StringUtils.capitalize(NamespaceHandler.EVENT) + UuidUtils.getLocalIntId());
|
||||
enhanceClazz.addInterface(classPool.get(IEventReceiver.class.getCanonicalName()));
|
||||
CtClass enhanceClazz = classPool.makeClass(EnhanceUtils.class.getName() + StringUtils.capitalize(NamespaceHandler.EVENT) + UuidUtils.getLocalIntId());
|
||||
enhanceClazz.addInterface(classPool.get(IEventReceiver.class.getName()));
|
||||
|
||||
// 定义类中的一个成员
|
||||
CtField field = new CtField(classPool.get(bean.getClass().getCanonicalName()), "bean", enhanceClazz);
|
||||
CtField field = new CtField(classPool.get(bean.getClass().getName()), "bean", enhanceClazz);
|
||||
field.setModifiers(Modifier.PRIVATE);
|
||||
enhanceClazz.addField(field);
|
||||
|
||||
// 定义类的构造器
|
||||
CtConstructor constructor = new CtConstructor(classPool.get(new String[]{bean.getClass().getCanonicalName()}), enhanceClazz);
|
||||
CtConstructor constructor = new CtConstructor(classPool.get(new String[]{bean.getClass().getName()}), enhanceClazz);
|
||||
constructor.setBody("{this.bean=$1;}");
|
||||
constructor.setModifiers(Modifier.PUBLIC);
|
||||
enhanceClazz.addConstructor(constructor);
|
||||
|
||||
// 定义类实现的接口方法invoker
|
||||
CtMethod invokeMethod = new CtMethod(classPool.get(void.class.getCanonicalName()), "invoke", classPool.get(new String[]{IEvent.class.getCanonicalName()}), enhanceClazz);
|
||||
CtMethod invokeMethod = new CtMethod(classPool.get(void.class.getName()), "invoke", classPool.get(new String[]{IEvent.class.getName()}), enhanceClazz);
|
||||
invokeMethod.setModifiers(Modifier.PUBLIC + Modifier.FINAL);
|
||||
String invokeMethodBody = StringUtils.format("{ this.bean.{}(({})$1); }", method.getName(), clazz.getCanonicalName()); // 强制类型转换,转换为具体的Event类型的类型
|
||||
String invokeMethodBody = StringUtils.format("{ this.bean.{}(({})$1); }", method.getName(), clazz.getName()); // 强制类型转换,转换为具体的Event类型的类型
|
||||
invokeMethod.setBody(invokeMethodBody);
|
||||
enhanceClazz.addMethod(invokeMethod);
|
||||
|
||||
// 定义类实现的接口方法bus
|
||||
CtMethod busMethod = new CtMethod(classPool.get(Bus.class.getCanonicalName()), "bus", null, enhanceClazz);
|
||||
CtMethod busMethod = new CtMethod(classPool.get(Bus.class.getName()), "bus", null, enhanceClazz);
|
||||
busMethod.setModifiers(Modifier.PUBLIC + Modifier.FINAL);
|
||||
String busMethodBody = StringUtils.format("{ return {}.{}; }", Bus.class.getCanonicalName(), definition.getBus());
|
||||
String busMethodBody = StringUtils.format("{ return {}.{}; }", Bus.class.getName(), definition.getBus());
|
||||
busMethod.setBody(busMethodBody);
|
||||
enhanceClazz.addMethod(busMethod);
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ public abstract class EnhanceUtils {
|
||||
var classPool = ClassPool.getDefault();
|
||||
|
||||
for (var clazz : classArray) {
|
||||
if (classPool.find(clazz.getCanonicalName()) == null) {
|
||||
if (classPool.find(clazz.getName()) == null) {
|
||||
ClassClassPath classPath = new ClassClassPath(clazz);
|
||||
classPool.insertClassPath(classPath);
|
||||
}
|
||||
@@ -50,39 +50,39 @@ public abstract class EnhanceUtils {
|
||||
var packetClazz = definition.getPacketClazz();
|
||||
var attachmentClazz = definition.getAttachmentClazz();
|
||||
|
||||
var enhanceClazz = classPool.makeClass(EnhanceUtils.class.getCanonicalName() + "Route" + UuidUtils.getLocalIntId());
|
||||
enhanceClazz.addInterface(classPool.get(IPacketReceiver.class.getCanonicalName()));
|
||||
var enhanceClazz = classPool.makeClass(EnhanceUtils.class.getName() + "Route" + UuidUtils.getLocalIntId());
|
||||
enhanceClazz.addInterface(classPool.get(IPacketReceiver.class.getName()));
|
||||
|
||||
var field = new CtField(classPool.get(bean.getClass().getCanonicalName()), "bean", enhanceClazz);
|
||||
var field = new CtField(classPool.get(bean.getClass().getName()), "bean", enhanceClazz);
|
||||
field.setModifiers(Modifier.PRIVATE);
|
||||
enhanceClazz.addField(field);
|
||||
|
||||
var constructor = new CtConstructor(classPool.get(new String[]{bean.getClass().getCanonicalName()}), enhanceClazz);
|
||||
var constructor = new CtConstructor(classPool.get(new String[]{bean.getClass().getName()}), enhanceClazz);
|
||||
constructor.setBody("{this.bean=$1;}");
|
||||
constructor.setModifiers(Modifier.PUBLIC);
|
||||
enhanceClazz.addConstructor(constructor);
|
||||
|
||||
var invokeMethod = new CtMethod(classPool.get(void.class.getCanonicalName()), "invoke", classPool.get(new String[]{Session.class.getCanonicalName(), Object.class.getCanonicalName(), Object.class.getCanonicalName()}), enhanceClazz);
|
||||
var invokeMethod = new CtMethod(classPool.get(void.class.getName()), "invoke", classPool.get(new String[]{Session.class.getName(), Object.class.getName(), Object.class.getName()}), enhanceClazz);
|
||||
invokeMethod.setModifiers(Modifier.PUBLIC + Modifier.FINAL);
|
||||
if (attachmentClazz == null) {
|
||||
// Cast type(强制类型转换)
|
||||
String invokeMethodBody = StringUtils.format("{this.bean.{}($1, ({})$2);}", method.getName(), packetClazz.getCanonicalName());
|
||||
String invokeMethodBody = StringUtils.format("{this.bean.{}($1, ({})$2);}", method.getName(), packetClazz.getName());
|
||||
invokeMethod.setBody(invokeMethodBody);
|
||||
} else {
|
||||
String invokeMethodBody = StringUtils.format("{this.bean.{}($1, ({})$2, ({})$3);}", method.getName(), packetClazz.getCanonicalName(), attachmentClazz.getCanonicalName());
|
||||
String invokeMethodBody = StringUtils.format("{this.bean.{}($1, ({})$2, ({})$3);}", method.getName(), packetClazz.getName(), attachmentClazz.getName());
|
||||
invokeMethod.setBody(invokeMethodBody);
|
||||
}
|
||||
enhanceClazz.addMethod(invokeMethod);
|
||||
|
||||
// 定义类实现的接口方法task
|
||||
CtMethod taskMethod = new CtMethod(classPool.get(Task.class.getCanonicalName()), "task", null, enhanceClazz);
|
||||
CtMethod taskMethod = new CtMethod(classPool.get(Task.class.getName()), "task", null, enhanceClazz);
|
||||
taskMethod.setModifiers(Modifier.PUBLIC + Modifier.FINAL);
|
||||
String taskMethodBody = StringUtils.format("{ return {}.{}; }", Task.class.getCanonicalName(), definition.getTask());
|
||||
String taskMethodBody = StringUtils.format("{ return {}.{}; }", Task.class.getName(), definition.getTask());
|
||||
taskMethod.setBody(taskMethodBody);
|
||||
enhanceClazz.addMethod(taskMethod);
|
||||
|
||||
// 定义类实现的接口方法attachment
|
||||
CtMethod attachmentMethod = new CtMethod(classPool.get(Class.class.getCanonicalName()), "attachment", null, enhanceClazz);
|
||||
CtMethod attachmentMethod = new CtMethod(classPool.get(Class.class.getName()), "attachment", null, enhanceClazz);
|
||||
attachmentMethod.setModifiers(Modifier.PUBLIC + Modifier.FINAL);
|
||||
if (attachmentClazz == null) {
|
||||
String attachmentMethodBody = "{ return null; }";
|
||||
|
||||
@@ -55,17 +55,17 @@ public abstract class EnhanceUtils {
|
||||
var classPool = ClassPool.getDefault();
|
||||
|
||||
// 导入需要的包
|
||||
classPool.importPackage(ByteBufUtils.class.getCanonicalName());
|
||||
classPool.importPackage(CollectionUtils.class.getCanonicalName());
|
||||
classPool.importPackage(ArrayUtils.class.getCanonicalName());
|
||||
classPool.importPackage(Iterator.class.getCanonicalName());
|
||||
classPool.importPackage(List.class.getCanonicalName());
|
||||
classPool.importPackage(Map.class.getCanonicalName());
|
||||
classPool.importPackage(Set.class.getCanonicalName());
|
||||
classPool.importPackage(ByteBufUtils.class.getName());
|
||||
classPool.importPackage(CollectionUtils.class.getName());
|
||||
classPool.importPackage(ArrayUtils.class.getName());
|
||||
classPool.importPackage(Iterator.class.getName());
|
||||
classPool.importPackage(List.class.getName());
|
||||
classPool.importPackage(Map.class.getName());
|
||||
classPool.importPackage(Set.class.getName());
|
||||
|
||||
// 增加类的路径
|
||||
for (var clazz : classArray) {
|
||||
if (classPool.find(clazz.getCanonicalName()) == null) {
|
||||
if (classPool.find(clazz.getName()) == null) {
|
||||
ClassClassPath classPath = new ClassClassPath(clazz);
|
||||
classPool.insertClassPath(classPath);
|
||||
}
|
||||
@@ -114,11 +114,11 @@ public abstract class EnhanceUtils {
|
||||
var packetFields = registration.getFieldRegistrations();
|
||||
|
||||
// 定义类名称
|
||||
CtClass enhanceClazz = classPool.makeClass(ProtocolRegistration.class.getCanonicalName() + protocolId);
|
||||
enhanceClazz.addInterface(classPool.get(IProtocolRegistration.class.getCanonicalName()));
|
||||
CtClass enhanceClazz = classPool.makeClass(ProtocolRegistration.class.getName() + protocolId);
|
||||
enhanceClazz.addInterface(classPool.get(IProtocolRegistration.class.getName()));
|
||||
|
||||
// 定义类中的一个成员
|
||||
CtField constructorFiled = new CtField(classPool.get(Constructor.class.getCanonicalName()), "constructor", enhanceClazz);
|
||||
CtField constructorFiled = new CtField(classPool.get(Constructor.class.getName()), "constructor", enhanceClazz);
|
||||
constructorFiled.setModifiers(Modifier.PRIVATE);
|
||||
enhanceClazz.addField(constructorFiled);
|
||||
|
||||
@@ -130,39 +130,39 @@ public abstract class EnhanceUtils {
|
||||
.toList();
|
||||
|
||||
for (var subProtocolId : allSubProtocolIds) {
|
||||
var protocolRegistrationField = new CtField(classPool.get(IProtocolRegistration.class.getCanonicalName()), getProtocolRegistrationFieldNameByProtocolId(subProtocolId), enhanceClazz);
|
||||
var protocolRegistrationField = new CtField(classPool.get(IProtocolRegistration.class.getName()), getProtocolRegistrationFieldNameByProtocolId(subProtocolId), enhanceClazz);
|
||||
protocolRegistrationField.setModifiers(Modifier.PRIVATE);
|
||||
enhanceClazz.addField(protocolRegistrationField);
|
||||
}
|
||||
|
||||
// 定义类的构造器
|
||||
CtConstructor constructor = new CtConstructor(classPool.get(new String[]{Constructor.class.getCanonicalName()}), enhanceClazz);
|
||||
CtConstructor constructor = new CtConstructor(classPool.get(new String[]{Constructor.class.getName()}), enhanceClazz);
|
||||
constructor.setBody("{this.constructor=$1;}");
|
||||
constructor.setModifiers(Modifier.PUBLIC);
|
||||
enhanceClazz.addConstructor(constructor);
|
||||
|
||||
// 定义类实现的接口方法
|
||||
CtMethod protocolIdMethod = new CtMethod(classPool.get(short.class.getCanonicalName()), "protocolId", null, enhanceClazz);
|
||||
CtMethod protocolIdMethod = new CtMethod(classPool.get(short.class.getName()), "protocolId", null, enhanceClazz);
|
||||
protocolIdMethod.setModifiers(Modifier.PUBLIC + Modifier.FINAL);
|
||||
protocolIdMethod.setBody("{return " + registration.protocolId() + ";}");
|
||||
enhanceClazz.addMethod(protocolIdMethod);
|
||||
|
||||
CtMethod protocolConstructorMethod = new CtMethod(classPool.get(Constructor.class.getCanonicalName()), "protocolConstructor", null, enhanceClazz);
|
||||
CtMethod protocolConstructorMethod = new CtMethod(classPool.get(Constructor.class.getName()), "protocolConstructor", null, enhanceClazz);
|
||||
protocolConstructorMethod.setModifiers(Modifier.PUBLIC + Modifier.FINAL);
|
||||
protocolConstructorMethod.setBody("{return this.constructor;}");
|
||||
enhanceClazz.addMethod(protocolConstructorMethod);
|
||||
|
||||
CtMethod moduleMethod = new CtMethod(classPool.get(byte.class.getCanonicalName()), "module", null, enhanceClazz);
|
||||
CtMethod moduleMethod = new CtMethod(classPool.get(byte.class.getName()), "module", null, enhanceClazz);
|
||||
moduleMethod.setModifiers(Modifier.PUBLIC + Modifier.FINAL);
|
||||
moduleMethod.setBody("{return " + registration.module() + ";}");
|
||||
enhanceClazz.addMethod(moduleMethod);
|
||||
|
||||
CtMethod writeMethod = new CtMethod(classPool.get(void.class.getCanonicalName()), "write", classPool.get(new String[]{ByteBuf.class.getCanonicalName(), Object.class.getCanonicalName()}), enhanceClazz);
|
||||
CtMethod writeMethod = new CtMethod(classPool.get(void.class.getName()), "write", classPool.get(new String[]{ByteBuf.class.getName(), Object.class.getName()}), enhanceClazz);
|
||||
writeMethod.setModifiers(Modifier.PUBLIC + Modifier.FINAL);
|
||||
writeMethod.setBody(writeMethodBody(registration));
|
||||
enhanceClazz.addMethod(writeMethod);
|
||||
|
||||
CtMethod readMethod = new CtMethod(classPool.get(Object.class.getCanonicalName()), "read", classPool.get(new String[]{ByteBuf.class.getCanonicalName()}), enhanceClazz);
|
||||
CtMethod readMethod = new CtMethod(classPool.get(Object.class.getName()), "read", classPool.get(new String[]{ByteBuf.class.getName()}), enhanceClazz);
|
||||
readMethod.setModifiers(Modifier.PUBLIC + Modifier.FINAL);
|
||||
readMethod.setBody(readMethodBody(registration));
|
||||
enhanceClazz.addMethod(readMethod);
|
||||
@@ -185,7 +185,7 @@ public abstract class EnhanceUtils {
|
||||
var packetClazz = constructor.getDeclaringClass();
|
||||
|
||||
var builder = new StringBuilder();
|
||||
builder.append("{").append(packetClazz.getCanonicalName() + " packet = (" + packetClazz.getCanonicalName() + ")$2;");
|
||||
builder.append("{").append(packetClazz.getName() + " packet = (" + packetClazz.getName() + ")$2;");
|
||||
builder.append("if(ByteBufUtils.writePacketFlag($1, packet)){").append("return;}");
|
||||
for (var i = 0; i < fields.length; i++) {
|
||||
var field = fields[i];
|
||||
@@ -229,10 +229,10 @@ public abstract class EnhanceUtils {
|
||||
constructorParam.set(index, readObject);
|
||||
}
|
||||
|
||||
builder.append(packetClazz.getCanonicalName() + " packet=new " + packetClazz.getCanonicalName() + "(" + constructorParam.stream().collect(Collectors.joining(StringUtils.COMMA)) + ");");
|
||||
builder.append(packetClazz.getName() + " packet=new " + packetClazz.getName() + "(" + constructorParam.stream().collect(Collectors.joining(StringUtils.COMMA)) + ");");
|
||||
} else {
|
||||
var fields = registration.getFields();
|
||||
builder.append(packetClazz.getCanonicalName() + " packet=new " + packetClazz.getCanonicalName() + "();");
|
||||
builder.append(packetClazz.getName() + " packet=new " + packetClazz.getName() + "();");
|
||||
|
||||
for (var i = 0; i < fields.length; i++) {
|
||||
var field = fields[i];
|
||||
|
||||
@@ -36,7 +36,7 @@ public abstract class EnhanceUtils {
|
||||
var classPool = ClassPool.getDefault();
|
||||
|
||||
for (var clazz : classArray) {
|
||||
if (classPool.find(clazz.getCanonicalName()) == null) {
|
||||
if (classPool.find(clazz.getName()) == null) {
|
||||
ClassClassPath classPath = new ClassClassPath(clazz);
|
||||
classPool.insertClassPath(classPath);
|
||||
}
|
||||
@@ -50,22 +50,22 @@ public abstract class EnhanceUtils {
|
||||
Method method = reflectScheduler.getMethod();
|
||||
|
||||
// 定义类名称
|
||||
CtClass enhanceClazz = classPool.makeClass(EnhanceUtils.class.getCanonicalName() + StringUtils.capitalize(NamespaceHandler.SCHEDULER) + UuidUtils.getLocalIntId());
|
||||
enhanceClazz.addInterface(classPool.get(IScheduler.class.getCanonicalName()));
|
||||
CtClass enhanceClazz = classPool.makeClass(EnhanceUtils.class.getName() + StringUtils.capitalize(NamespaceHandler.SCHEDULER) + UuidUtils.getLocalIntId());
|
||||
enhanceClazz.addInterface(classPool.get(IScheduler.class.getName()));
|
||||
|
||||
// 定义类中的一个成员
|
||||
CtField field = new CtField(classPool.get(bean.getClass().getCanonicalName()), "bean", enhanceClazz);
|
||||
CtField field = new CtField(classPool.get(bean.getClass().getName()), "bean", enhanceClazz);
|
||||
field.setModifiers(Modifier.PRIVATE);
|
||||
enhanceClazz.addField(field);
|
||||
|
||||
// 定义类的构造器
|
||||
CtConstructor constructor = new CtConstructor(classPool.get(new String[]{bean.getClass().getCanonicalName()}), enhanceClazz);
|
||||
CtConstructor constructor = new CtConstructor(classPool.get(new String[]{bean.getClass().getName()}), enhanceClazz);
|
||||
constructor.setBody("{this.bean=$1;}");
|
||||
constructor.setModifiers(Modifier.PUBLIC);
|
||||
enhanceClazz.addConstructor(constructor);
|
||||
|
||||
// 定义类实现的接口方法
|
||||
CtMethod invokeMethod = new CtMethod(classPool.get(void.class.getCanonicalName()), "invoke", null, enhanceClazz);
|
||||
CtMethod invokeMethod = new CtMethod(classPool.get(void.class.getName()), "invoke", null, enhanceClazz);
|
||||
invokeMethod.setModifiers(Modifier.PUBLIC + Modifier.FINAL);
|
||||
String invokeMethodBody = "{this.bean." + method.getName() + "();}";
|
||||
invokeMethod.setBody(invokeMethodBody);
|
||||
|
||||
Reference in new issue
Block a user