diff --git a/flyfish-data/src/main/java/com/flyfish/framework/annotations/Property.java b/flyfish-data/src/main/java/com/flyfish/framework/annotations/Property.java new file mode 100644 index 0000000..fd32367 --- /dev/null +++ b/flyfish-data/src/main/java/com/flyfish/framework/annotations/Property.java @@ -0,0 +1,32 @@ +package com.flyfish.framework.annotations; + +import java.lang.annotation.*; + +/** + * bean的属性注解,提供描述 + * + * @author wangyu + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface Property { + + /** + * 显示标题 + * @return 结果 + */ + String title() default ""; + + /** + * 被继承的,用于父类,自动拼接名称 + * @return 结果 + */ + boolean inherited() default false; + + /** + * 是否只读 + * @return 结果 + */ + boolean readonly() default false; +} diff --git a/flyfish-data/src/main/java/com/flyfish/framework/domain/base/AuditDomain.java b/flyfish-data/src/main/java/com/flyfish/framework/domain/base/AuditDomain.java index 80977de..ac18078 100644 --- a/flyfish-data/src/main/java/com/flyfish/framework/domain/base/AuditDomain.java +++ b/flyfish-data/src/main/java/com/flyfish/framework/domain/base/AuditDomain.java @@ -1,5 +1,6 @@ package com.flyfish.framework.domain.base; +import com.flyfish.framework.annotations.Property; import lombok.Getter; import lombok.Setter; import org.springframework.data.annotation.CreatedBy; @@ -24,18 +25,21 @@ public abstract class AuditDomain extends Domain { * 创建日期 */ @CreatedDate + @Property(title = "创建日期") protected Date createTime; /** * 修改日期 */ @LastModifiedDate + @Property(title = "更新日期") protected Date modifyTime; /** * 创建者 */ @CreatedBy + @Property(title = "创建人") protected String creator; /** @@ -47,6 +51,7 @@ public abstract class AuditDomain extends Domain { * 修改者 */ @LastModifiedBy + @Property(title = "更新人") protected String modifier; /** diff --git a/flyfish-data/src/main/java/com/flyfish/framework/domain/base/Domain.java b/flyfish-data/src/main/java/com/flyfish/framework/domain/base/Domain.java index e31e17a..5f6e120 100644 --- a/flyfish-data/src/main/java/com/flyfish/framework/domain/base/Domain.java +++ b/flyfish-data/src/main/java/com/flyfish/framework/domain/base/Domain.java @@ -1,5 +1,6 @@ package com.flyfish.framework.domain.base; +import com.flyfish.framework.annotations.Property; import com.flyfish.framework.domain.po.User; import lombok.Getter; import lombok.Setter; @@ -25,11 +26,13 @@ public abstract class Domain implements Po, Serializable { /** * 编号 */ + @Property(title = "编码", inherited = true) protected String code; /** * 名称 */ @Indexed + @Property(title = "名称", inherited = true) protected String name; /** * 上下文冗余,利用内存缓存上下文 diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/enums/Info.plist b/flyfish-web/src/main/java/com/flyfish/framework/beans/enums/Info.plist new file mode 100755 index 0000000..740a0d3 --- /dev/null +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/enums/Info.plist @@ -0,0 +1,620 @@ + + + + + BuildMachineOSBuild + 19H15 + CFBundleExecutable + VoodooPS2Keyboard + CFBundleGetInfoString + 2.2.0, Copyright Apple Computer, Inc. 2000-2003, RehabMan 2012-2013 + CFBundleIdentifier + as.acidanthera.voodoo.driver.PS2Keyboard + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Voodoo PS/2 Keyboard + CFBundlePackageType + KEXT + CFBundleShortVersionString + 2.2.0 + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 2.2.0 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 12B45b + DTPlatformName + macosx + DTPlatformVersion + 11.0 + DTSDKBuild + 20A2408 + DTSDKName + macosx11.0 + DTXcode + 1220 + DTXcodeBuild + 12B45b + IOKitPersonalities + + ApplePS2Keyboard + + CFBundleIdentifier + as.acidanthera.voodoo.driver.PS2Keyboard + IOClass + ApplePS2Keyboard + IOProviderClass + ApplePS2KeyboardDevice + Platform Profile + + DELL + + Dell-Keys + + Breakless PS2 + + e005 + e006 + + Function Keys Special + + ;The following 12 items map Fn+fkeys to fkeys + e020=3b + e02e=3c + e030=3d + e022=3e + ;Fn+f5 macro + ;Fn+f6 macro + ;Fn+f7 macro + ;Fn+f8 macro + ;Fn+f9 macro + ;Fn+f10 no code + e005=57 + e006=58 + ;The following 12 items map fkeys to Fn+fkeys + 3b=e020 + 3c=e02e + 3d=e030 + 3e=e022 + ;Fn+f5 macro + ;Fn+f6 macro + ;Fn+f7 macro + ;Fn+f8 macro + ;Fn+f9 macro + ;Fn+f10 no code + 57=e005 + 58=e006 + + Function Keys Standard + + ;The following 12 items map Fn+fkeys to Fn+fkeys + e020=e020 + e02e=e02e + e030=e030 + e022=e022 + ;Fn+f5 macro + ;Fn+f6 macro + ;Fn+f7 macro + ;Fn+f8 macro + ;Fn+f9 macro + ;Fn+f10 no code + e005=e005 + e006=e006 + ;The following 12 items map fkeys to fkeys + 3b=3b + 3c=3c + 3d=3d + 3e=3e + 3f=3f + 40=40 + 41=41 + 42=42 + 43=43 + 44=44 + 57=57 + 58=58 + + + HSW-LPT + Dell-Keys + SNB-CPT + + ActionSwipeDown + 63 d, 63 u + ActionSwipeUp + 61 d, 61 u + Breakless PS2 + + e01e;Touchpad Fn+f3 is breakless + e06e;REVIEW: temporary for case that macro inversion does not work... + + Custom ADB Map + + e009=83;Dell Support to Launchpad + e0f1=71;Call brightens up w RKA1 for special mode (was =90) + e0f2=6b;Call brightens down w RKA2 for special mode (was =91) + e06e=70;Map vidmirror key for special mode default is adb90 + + Custom PS2 Map + + e01e=e037;Map tp disable to Fn+f3 + e037=e01e;Prevent PrntScr from triggering tp disable + + Function Keys Special + + ;The following 12 items map Fn+fkeys to fkeys + e06e=3b + e008=3c + e01e=3d + e005=3e + e006=3f + e00c=40 + ;Fn+f7 no dedicated macro + e010=42 + e022=43 + e019=44 + e02e=57 + e030=58 + ;The following 12 items map fkeys to Fn+fkeys + 3b=e06e;Map vidmirror key to f1 + 3c=e0f0;Map radio toggle action from EC query to f2 + 3d=e037;Map touchpad toggle button to f3 + 3e=e0f2;Map acpi RKA2 to f4 brightness down + 3f=e0f1;Map acpi RKA1 to f5 brightness up + 40=e0f3;Map acpi RKA3 to f6 keyboard backlight + ;Fn+f7 no macro + 42=e010 + 43=e022 + 44=e019 + 57=e02e + 58=e030 + + Function Keys Standard + + ;The following 12 items map Fn+fkeys to Fn+fkeys + e06e=e06e;Fn+f1 macro translated + e008=e008;Fn+f2 regular scancode and EC query call q8c + e01e=e037;Fn+f3 regular scancode and EC controls LED + e005=e005;Fn+f4 no ps2scancode and EC query call q81 + e006=e006;Fn+f5 no ps2scancode and EC query call q80 + e00c=e00c;Fn+f6 no ps2scancode and EC query call q8a + ;Fn+f7 no macro just regular f key + e010=e010; Fn+f8 regular scancode + e022=e022; Fn+f9 regular scancode + e019=e019;Fn+f10 regular scancode + e02e=e02e;Fn+f11 regular scancode + e030=e030;Fn+f12 regular scancode + ;Fn+f13 is mute dedicated button that always produces e020 regardless of Fn + ;The following 12 items map fkeys to fkeys + 3b=3b + 3c=3c + 3d=3d + 3e=3e + 3f=3f + 40=40 + 41=41 + 42=42 + 43=43 + 44=44 + 57=57 + 58=58 + + Macro Inversion + + ;This section maps ps2 codes (packet format) received quickly (macros) into fake ps2 codes (packet format) + ;Fn+F1 + + //8CbgAAAAACWwEZ + + + //8C7gAAAAAC2wGZ + + + //8C7gAAAAABmQLb + + + MaximumMacroTime + 35000000 + Note-Author + TimeWalker aka TimeWalker75a + Note-Comment + Keyboard Profile for DELL SandyBridge SecureCore Tiano based laptops (Vostro 3450 & 3750, Inspiron N4110, XPS L502x & L702x & L511z) + + WN09 + + Breakless PS2 + + e01b + e008 + e01e + e005 + e06e + e006 + + Custom ADB Map + + e01b=70 + e06e=83 + + Custom PS2 Map + + 56=2b + 29=56 + 2b=29 + e01e=e037 + e037=e01e + + + WN09a + + Breakless PS2 + + e01b + e008 + e01e + e005 + e06e + e006 + + Custom ADB Map + + e01b=70 + e06e=83 + + Custom PS2 Map + + e01e=e037 + e037=e01e + + + + Default + + Breakless PS2 + + ;Items must be strings in the form of breaklessscan (in hex) + + Custom ADB Map + + ;Items must be strings in the form of scanfrom=adbto (in hex) + + Custom PS2 Map + + ;Items must be strings in the form of scanfrom=scanto (in hex) + e027=0;disable discrete fnkeys toggle + e028=0;disable discrete trackpad toggle + + HIDF12EjectDelay + 250 + LogScanCodes + 0 + Make Application key into Apple Fn key + + Make Application key into right windows + + Make right modifier keys into Hangul and Hanja + + SleepPressTime + 0 + Swap capslock and left control + + Swap command and option + + Use ISO layout keyboard + + alt_handler_id + 3 + + HPQOEM + + 1411 + ProBook-102;ProBook 4520s + 1619 + ProBook-87;ProBook 6560b + 161C + ProBook-87;ProBook 8460p + 164F + ProBook-87;ProBook 5330m + 167C + ProBook-102;ProBook 4530s + 167E + ProBook-102;ProBook 4330s + 1680 + ProBook-102;ProBook 4230s + 179B + ProBook-87;ProBook 6470b + 179C + ProBook-87;ProBook 6470b + 17A9 + ProBook-87;ProBook 8570b + 17F0 + ProBook-102;ProBook 4340s + 17F3 + ProBook-102;ProBook 4440s + 17F6 + ProBook-102;ProBook 4540s + 1942 + ProBook-87;ProBook 450s G1 + 1949 + ProBook-87;ProBook 450s G1 + 1962 + Haswell-Envy;HP Envy 15-j063cl + 1963 + Haswell-Envy;HP Envy 15-j063cl + 1965 + Haswell-Envy;HP Envy 17t-j100 + 1966 + Haswell-Envy;HP Envy 17t-j000 + 198F + ProBook-87;ProBook 450s G0 + Haswell-Envy + + Custom ADB Map + + e019=42;next + e010=4d;previous + + Custom PS2 Map + + e045=e037 + e0ab=0;bogus Fn+F2/F3 + + + ProBook-102 + + Custom PS2 Map + + e005=0 + + Function Keys Special + + ;The following 12 items map Fn+fkeys to fkeys + e05f=3b + e012=3c + e017=3d + e06e=3e + e00a=3f + e009=40 + e020=41 + e02e=42 + e030=43 + e010=44 + e022=57 + e019=58 + ;The following 12 items map fkeys to Fn+fkeys + 3b=e05f + 3c=e012 + 3d=e017 + 3e=e06e + 3f=e00a + 40=e009 + 41=e020 + 42=e02e + 43=e030 + 44=e010 + 57=e022 + 58=e019 + + Function Keys Standard + + ;The following 12 items map Fn+fkeys to Fn+fkeys + e05f=e05f + e012=e012 + e017=e017 + e06e=e06e + e00a=e00a + e009=e009 + e020=e020 + e02e=e02e + e030=e030 + e010=e010 + e022=e022 + e019=e019 + ;The following 12 items map fkeys to fkeys + 3b=3b + 3c=3c + 3d=3d + 3e=3e + 3f=3f + 40=40 + 41=41 + 42=42 + 43=43 + 44=44 + 57=57 + 58=58 + + SleepPressTime + 3000 + + ProBook-87 + + Custom ADB Map + + 46=4d;scroll => Previous-track + e045=34;pause => Play-Pause + e052=42;insert => Next-track + e046=92;break => Eject + + Custom PS2 Map + + e005=0 + + Function Keys Special + + ;The following 8 items map Fn+fkeys to fkeys + e05f=3d + e06e=3e + e02e=40 + e030=41 + e009=42 + e012=43 + e017=44 + e033=57 + ;The following 8 items map fkeys to Fn+fkeys + 3d=e05f + 3e=e06e + 40=e02e + 41=e030 + 42=e037 + 43=e012 + 44=e017 + + Function Keys Standard + + ;The following 8 items map Fn+fkeys to Fn+fkeys + e05f=e05f + e06e=e06e + e02e=e02e + e030=e030 + e009=e009 + e012=e012 + e017=e017 + e033=e033 + ;The following 8 items map fkeys to fkeys + 3d=3d + 3e=3e + 40=40 + 41=41 + 42=42 + 43=43 + 44=44 + + SleepPressTime + 3000 + + + Intel + + CALPELLA + SamsungKeys + SamsungKeys + + Breakless PS2 + + e003 + e002 + e004 + e020 + ;e031 + e033 + e006 + e077 + e079 + e008 + e009 + + Custom ADB Map + + e002=70 + e006=80 + e008=71 (was =90) + e009=6b (was =91) + + Function Keys Special + + ;The following 12 items map Fn+fkeys to fkeys + ;fn+f1 no code + e003=3c + ;fn+f3 weird code + e002=3e + e004=3f + e020=40 + e031=41 + e033=42 + e006=43 + ;fn+f10 weird code + ;fn+f11 no code + ;fn+f12 scrolllock + ;The following 12 items map fkeys to Fn+fkeys + ;fn+f1 no code + 3c=e003 + ;fn+f3 weird code + 3e=e002 + 3f=e004 + 40=e020 + 41=e031 + 42=e033 + 43=e006 + ;fn+f10 weird code + ;fn+f11 no code + ;fn+f12 scrolllock + + Function Keys Standard + + ;The following 12 items map Fn+fkeys to Fn+fkeys + ;fn+f1 no code + e003=e003 + ;fn+f3 weird code + e002=e002 + e004=e004 + e020=e020 + e031=e031 + e033=e033 + e006=e006 + ;fn+f10 weird code + ;fn+f11 no code + ;fn+f12 scrolllock + ;The following 12 items map fkeys to fkeys + 3b=3b + 3c=3c + 3d=3d + 3e=3e + 3f=3f + 40=40 + 41=41 + 42=42 + 43=43 + 44=44 + 57=57 + 58=58 + + + + SECCSD + + LH43STAR + SamsungKeys + SamsungKeys + + Breakless PS2 + + e020 + e02e + e030 + + + + + + + LSMinimumSystemVersion + 10.11 + OSBundleLibraries + + as.acidanthera.voodoo.driver.PS2Controller + 2.2.0 + com.apple.iokit.IOHIDFamily + 1.0.0b1 + com.apple.kpi.bsd + 8.0.0 + com.apple.kpi.iokit + 8.0.0 + com.apple.kpi.libkern + 8.0.0 + com.apple.kpi.mach + 8.0.0 + com.apple.kpi.unsupported + 8.0.0 + + OSBundleRequired + Console + + diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanController.java b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanController.java index c529852..ca72067 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanController.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanController.java @@ -33,7 +33,7 @@ public class BeanController { return Result.ok(Collections.emptyList()); } try { - return Result.ok(BeanProperty.from(BeanUtils.getPropertyDescriptors(ClassUtils.getClass(className)))); + return Result.ok(BeanProperty.from(ClassUtils.getClass(className))); } catch (ClassNotFoundException e) { log.error(e.getMessage(), e); return Result.error(e.getMessage()); diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanProperty.java b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanProperty.java index 165b082..e4c4d63 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanProperty.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanProperty.java @@ -1,10 +1,11 @@ package com.flyfish.framework.beans.meta; -import com.flyfish.framework.beans.annotations.RestBean; import lombok.Data; +import org.apache.commons.lang3.reflect.FieldUtils; import org.springframework.beans.BeanUtils; import java.beans.PropertyDescriptor; +import java.lang.reflect.Field; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -37,10 +38,11 @@ public class BeanProperty { * * @return 结果 */ - public static List from(PropertyDescriptor[] descriptors) { + public static List from(Class clazz) { + PropertyDescriptor[] descriptors = BeanUtils.getPropertyDescriptors(clazz); return Arrays.stream(descriptors) .filter(descriptor -> !"class".equals(descriptor.getName())) - .map(BeanProperty::form) + .map(descriptor -> BeanProperty.form(descriptor, clazz)) .collect(Collectors.toList()); } @@ -51,16 +53,16 @@ public class BeanProperty { * @param descriptor 解释器 * @return 结果 */ - public static BeanProperty form(PropertyDescriptor descriptor) { - Class clazz = descriptor.getPropertyType(); + public static BeanProperty form(PropertyDescriptor descriptor, Class beanClass) { BeanProperty property = new BeanProperty(); property.setName(descriptor.getName()); - property.setType(BeanPropertyType.of(descriptor)); + property.setType(BeanPropertyType.of(descriptor, beanClass)); + Class clazz = descriptor.getPropertyType(); if (property.getType() == BeanPropertyType.OBJECT) { + Field field = FieldUtils.getDeclaredField(beanClass, property.getName()); // 有子bean注解才处理 - if (clazz.isAnnotationPresent(SubBean.class)) { - List children = from(BeanUtils.getPropertyDescriptors(clazz)); - property.setChildren(children); + if (null != field && field.isAnnotationPresent(SubBean.class)) { + property.setChildren(from(clazz)); } } else if (property.getType() == BeanPropertyType.DB_REF) { // 当存在db-ref时,解析为动态数据源 diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanPropertyType.java b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanPropertyType.java index bce0e39..49e17dd 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanPropertyType.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/BeanPropertyType.java @@ -1,15 +1,17 @@ package com.flyfish.framework.beans.meta; -import com.flyfish.framework.beans.annotations.RestBean; import com.flyfish.framework.domain.base.Domain; import lombok.Getter; +import org.apache.commons.lang3.reflect.FieldUtils; +import org.springframework.data.mongodb.core.mapping.DBRef; import java.beans.PropertyDescriptor; +import java.lang.reflect.Field; import java.util.Arrays; import java.util.Collection; import java.util.Date; import java.util.List; -import java.util.function.Predicate; +import java.util.function.BiPredicate; /** * bean属性的类型 @@ -26,13 +28,15 @@ public enum BeanPropertyType { DATE("Date", Date.class), ENUM("Enum", Enum.class), LIST("Array", Collection.class), - DB_REF("Ref", descriptor -> { + DB_REF("Ref", (descriptor, beanClass) -> { Class clazz = descriptor.getPropertyType(); - return Domain.class.isAssignableFrom(clazz) && clazz.isAnnotationPresent(RestBean.class); + Field field = FieldUtils.getDeclaredField(beanClass, descriptor.getName()); + return null != field && field.isAnnotationPresent(DBRef.class) && + Domain.class.isAssignableFrom(clazz) && clazz.isAnnotationPresent(RestBean.class); }), OBJECT("Object", Object.class); - private final Predicate acceptor; + private final BiPredicate> acceptor; BeanPropertyType(String name, Class... classes) { this.name = name; @@ -44,16 +48,16 @@ public enum BeanPropertyType { private final List> classes; - BeanPropertyType(String name, Predicate predicate) { + BeanPropertyType(String name, BiPredicate> predicate) { this.name = name; this.classes = null; this.acceptor = predicate; } - public static BeanPropertyType of(PropertyDescriptor descriptor) { + public static BeanPropertyType of(PropertyDescriptor descriptor, Class clazz) { for (BeanPropertyType type : values()) { if (null != type.classes && type.classes.stream().anyMatch(item -> item.isAssignableFrom(descriptor.getPropertyType())) || - null != type.acceptor && type.acceptor.test(descriptor)) { + null != type.acceptor && type.acceptor.test(descriptor, clazz)) { return type; } } diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/Info.plist b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/Info.plist new file mode 100755 index 0000000..c55b849 --- /dev/null +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/Info.plist @@ -0,0 +1,616 @@ + + + + + BuildMachineOSBuild + 19G2021 + CFBundleExecutable + VoodooPS2Keyboard + CFBundleGetInfoString + 2.1.7, Copyright Apple Computer, Inc. 2000-2003, RehabMan 2012-2013 + CFBundleIdentifier + as.acidanthera.voodoo.driver.PS2Keyboard + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Voodoo PS/2 Keyboard + CFBundlePackageType + KEXT + CFBundleShortVersionString + 2.1.7 + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + 2.1.7 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 10G8 + DTPlatformVersion + GM + DTSDKBuild + 18G74 + DTSDKName + macosx10.14 + DTXcode + 1030 + DTXcodeBuild + 10G8 + IOKitPersonalities + + ApplePS2Keyboard + + CFBundleIdentifier + as.acidanthera.voodoo.driver.PS2Keyboard + IOClass + ApplePS2Keyboard + IOProviderClass + ApplePS2KeyboardDevice + Platform Profile + + DELL + + Dell-Keys + + Breakless PS2 + + e005 + e006 + + Function Keys Special + + ;The following 12 items map Fn+fkeys to fkeys + e020=3b + e02e=3c + e030=3d + e022=3e + ;Fn+f5 macro + ;Fn+f6 macro + ;Fn+f7 macro + ;Fn+f8 macro + ;Fn+f9 macro + ;Fn+f10 no code + e005=57 + e006=58 + ;The following 12 items map fkeys to Fn+fkeys + 3b=e020 + 3c=e02e + 3d=e030 + 3e=e022 + ;Fn+f5 macro + ;Fn+f6 macro + ;Fn+f7 macro + ;Fn+f8 macro + ;Fn+f9 macro + ;Fn+f10 no code + 57=e005 + 58=e006 + + Function Keys Standard + + ;The following 12 items map Fn+fkeys to Fn+fkeys + e020=e020 + e02e=e02e + e030=e030 + e022=e022 + ;Fn+f5 macro + ;Fn+f6 macro + ;Fn+f7 macro + ;Fn+f8 macro + ;Fn+f9 macro + ;Fn+f10 no code + e005=e005 + e006=e006 + ;The following 12 items map fkeys to fkeys + 3b=3b + 3c=3c + 3d=3d + 3e=3e + 3f=3f + 40=40 + 41=41 + 42=42 + 43=43 + 44=44 + 57=57 + 58=58 + + + HSW-LPT + Dell-Keys + SNB-CPT + + ActionSwipeDown + 63 d, 63 u + ActionSwipeUp + 61 d, 61 u + Breakless PS2 + + e01e;Touchpad Fn+f3 is breakless + e06e;REVIEW: temporary for case that macro inversion does not work... + + Custom ADB Map + + e009=83;Dell Support to Launchpad + e0f1=71;Call brightens up w RKA1 for special mode (was =90) + e0f2=6b;Call brightens down w RKA2 for special mode (was =91) + e06e=70;Map vidmirror key for special mode default is adb90 + + Custom PS2 Map + + e01e=e037;Map tp disable to Fn+f3 + e037=e01e;Prevent PrntScr from triggering tp disable + + Function Keys Special + + ;The following 12 items map Fn+fkeys to fkeys + e06e=3b + e008=3c + e01e=3d + e005=3e + e006=3f + e00c=40 + ;Fn+f7 no dedicated macro + e010=42 + e022=43 + e019=44 + e02e=57 + e030=58 + ;The following 12 items map fkeys to Fn+fkeys + 3b=e06e;Map vidmirror key to f1 + 3c=e0f0;Map radio toggle action from EC query to f2 + 3d=e037;Map touchpad toggle button to f3 + 3e=e0f2;Map acpi RKA2 to f4 brightness down + 3f=e0f1;Map acpi RKA1 to f5 brightness up + 40=e0f3;Map acpi RKA3 to f6 keyboard backlight + ;Fn+f7 no macro + 42=e010 + 43=e022 + 44=e019 + 57=e02e + 58=e030 + + Function Keys Standard + + ;The following 12 items map Fn+fkeys to Fn+fkeys + e06e=e06e;Fn+f1 macro translated + e008=e008;Fn+f2 regular scancode and EC query call q8c + e01e=e037;Fn+f3 regular scancode and EC controls LED + e005=e005;Fn+f4 no ps2scancode and EC query call q81 + e006=e006;Fn+f5 no ps2scancode and EC query call q80 + e00c=e00c;Fn+f6 no ps2scancode and EC query call q8a + ;Fn+f7 no macro just regular f key + e010=e010; Fn+f8 regular scancode + e022=e022; Fn+f9 regular scancode + e019=e019;Fn+f10 regular scancode + e02e=e02e;Fn+f11 regular scancode + e030=e030;Fn+f12 regular scancode + ;Fn+f13 is mute dedicated button that always produces e020 regardless of Fn + ;The following 12 items map fkeys to fkeys + 3b=3b + 3c=3c + 3d=3d + 3e=3e + 3f=3f + 40=40 + 41=41 + 42=42 + 43=43 + 44=44 + 57=57 + 58=58 + + Macro Inversion + + ;This section maps ps2 codes (packet format) received quickly (macros) into fake ps2 codes (packet format) + ;Fn+F1 + + //8CbgAAAAACWwEZ + + + //8C7gAAAAAC2wGZ + + + //8C7gAAAAABmQLb + + + MaximumMacroTime + 35000000 + Note-Author + TimeWalker aka TimeWalker75a + Note-Comment + Keyboard Profile for DELL SandyBridge SecureCore Tiano based laptops (Vostro 3450 & 3750, Inspiron N4110, XPS L502x & L702x & L511z) + + WN09 + + Breakless PS2 + + e01b + e008 + e01e + e005 + e06e + e006 + + Custom ADB Map + + e01b=70 + e06e=83 + + Custom PS2 Map + + 56=2b + 29=56 + 2b=29 + e01e=e037 + e037=e01e + + + WN09a + + Breakless PS2 + + e01b + e008 + e01e + e005 + e06e + e006 + + Custom ADB Map + + e01b=70 + e06e=83 + + Custom PS2 Map + + e01e=e037 + e037=e01e + + + + Default + + Breakless PS2 + + ;Items must be strings in the form of breaklessscan (in hex) + + Custom ADB Map + + ;Items must be strings in the form of scanfrom=adbto (in hex) + + Custom PS2 Map + + ;Items must be strings in the form of scanfrom=scanto (in hex) + e027=0;disable discrete fnkeys toggle + e028=0;disable discrete trackpad toggle + + HIDF12EjectDelay + 250 + LogScanCodes + 0 + Make Application key into Apple Fn key + + Make Application key into right windows + + Make right modifier keys into Hangul and Hanja + + SleepPressTime + 0 + Swap capslock and left control + + Swap command and option + + Use ISO layout keyboard + + alt_handler_id + 3 + + HPQOEM + + 1411 + ProBook-102;ProBook 4520s + 1619 + ProBook-87;ProBook 6560b + 161C + ProBook-87;ProBook 8460p + 164F + ProBook-87;ProBook 5330m + 167C + ProBook-102;ProBook 4530s + 167E + ProBook-102;ProBook 4330s + 1680 + ProBook-102;ProBook 4230s + 179B + ProBook-87;ProBook 6470b + 179C + ProBook-87;ProBook 6470b + 17A9 + ProBook-87;ProBook 8570b + 17F0 + ProBook-102;ProBook 4340s + 17F3 + ProBook-102;ProBook 4440s + 17F6 + ProBook-102;ProBook 4540s + 1942 + ProBook-87;ProBook 450s G1 + 1949 + ProBook-87;ProBook 450s G1 + 1962 + Haswell-Envy;HP Envy 15-j063cl + 1963 + Haswell-Envy;HP Envy 15-j063cl + 1965 + Haswell-Envy;HP Envy 17t-j100 + 1966 + Haswell-Envy;HP Envy 17t-j000 + 198F + ProBook-87;ProBook 450s G0 + Haswell-Envy + + Custom ADB Map + + e019=42;next + e010=4d;previous + + Custom PS2 Map + + e045=e037 + e0ab=0;bogus Fn+F2/F3 + + + ProBook-102 + + Custom PS2 Map + + e005=0 + + Function Keys Special + + ;The following 12 items map Fn+fkeys to fkeys + e05f=3b + e012=3c + e017=3d + e06e=3e + e00a=3f + e009=40 + e020=41 + e02e=42 + e030=43 + e010=44 + e022=57 + e019=58 + ;The following 12 items map fkeys to Fn+fkeys + 3b=e05f + 3c=e012 + 3d=e017 + 3e=e06e + 3f=e00a + 40=e009 + 41=e020 + 42=e02e + 43=e030 + 44=e010 + 57=e022 + 58=e019 + + Function Keys Standard + + ;The following 12 items map Fn+fkeys to Fn+fkeys + e05f=e05f + e012=e012 + e017=e017 + e06e=e06e + e00a=e00a + e009=e009 + e020=e020 + e02e=e02e + e030=e030 + e010=e010 + e022=e022 + e019=e019 + ;The following 12 items map fkeys to fkeys + 3b=3b + 3c=3c + 3d=3d + 3e=3e + 3f=3f + 40=40 + 41=41 + 42=42 + 43=43 + 44=44 + 57=57 + 58=58 + + SleepPressTime + 3000 + + ProBook-87 + + Custom ADB Map + + 46=4d;scroll => Previous-track + e045=34;pause => Play-Pause + e052=42;insert => Next-track + e046=92;break => Eject + + Custom PS2 Map + + e005=0 + + Function Keys Special + + ;The following 8 items map Fn+fkeys to fkeys + e05f=3d + e06e=3e + e02e=40 + e030=41 + e009=42 + e012=43 + e017=44 + e033=57 + ;The following 8 items map fkeys to Fn+fkeys + 3d=e05f + 3e=e06e + 40=e02e + 41=e030 + 42=e037 + 43=e012 + 44=e017 + + Function Keys Standard + + ;The following 8 items map Fn+fkeys to Fn+fkeys + e05f=e05f + e06e=e06e + e02e=e02e + e030=e030 + e009=e009 + e012=e012 + e017=e017 + e033=e033 + ;The following 8 items map fkeys to fkeys + 3d=3d + 3e=3e + 40=40 + 41=41 + 42=42 + 43=43 + 44=44 + + SleepPressTime + 3000 + + + Intel + + CALPELLA + SamsungKeys + SamsungKeys + + Breakless PS2 + + e003 + e002 + e004 + e020 + ;e031 + e033 + e006 + e077 + e079 + e008 + e009 + + Custom ADB Map + + e002=70 + e006=80 + e008=71 (was =90) + e009=6b (was =91) + + Function Keys Special + + ;The following 12 items map Fn+fkeys to fkeys + ;fn+f1 no code + e003=3c + ;fn+f3 weird code + e002=3e + e004=3f + e020=40 + e031=41 + e033=42 + e006=43 + ;fn+f10 weird code + ;fn+f11 no code + ;fn+f12 scrolllock + ;The following 12 items map fkeys to Fn+fkeys + ;fn+f1 no code + 3c=e003 + ;fn+f3 weird code + 3e=e002 + 3f=e004 + 40=e020 + 41=e031 + 42=e033 + 43=e006 + ;fn+f10 weird code + ;fn+f11 no code + ;fn+f12 scrolllock + + Function Keys Standard + + ;The following 12 items map Fn+fkeys to Fn+fkeys + ;fn+f1 no code + e003=e003 + ;fn+f3 weird code + e002=e002 + e004=e004 + e020=e020 + e031=e031 + e033=e033 + e006=e006 + ;fn+f10 weird code + ;fn+f11 no code + ;fn+f12 scrolllock + ;The following 12 items map fkeys to fkeys + 3b=3b + 3c=3c + 3d=3d + 3e=3e + 3f=3f + 40=40 + 41=41 + 42=42 + 43=43 + 44=44 + 57=57 + 58=58 + + + + SECCSD + + LH43STAR + SamsungKeys + SamsungKeys + + Breakless PS2 + + e020 + e02e + e030 + + + + + + + OSBundleLibraries + + as.acidanthera.voodoo.driver.PS2Controller + 2.1.7 + com.apple.iokit.IOHIDFamily + 1.0.0b1 + com.apple.kpi.bsd + 8.0.0 + com.apple.kpi.iokit + 8.0.0 + com.apple.kpi.libkern + 8.0.0 + com.apple.kpi.mach + 8.0.0 + com.apple.kpi.unsupported + 8.0.0 + + OSBundleRequired + Console + + diff --git a/flyfish-web/src/main/java/com/flyfish/framework/beans/annotations/RestBean.java b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/RestBean.java similarity index 85% rename from flyfish-web/src/main/java/com/flyfish/framework/beans/annotations/RestBean.java rename to flyfish-web/src/main/java/com/flyfish/framework/beans/meta/RestBean.java index 6eb3045..81d10ae 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/beans/annotations/RestBean.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/beans/meta/RestBean.java @@ -1,4 +1,4 @@ -package com.flyfish.framework.beans.annotations; +package com.flyfish.framework.beans.meta; import com.flyfish.framework.controller.BaseController; import com.flyfish.framework.controller.SafeController; @@ -31,8 +31,22 @@ public @interface RestBean { @AliasFor(value = "collection", annotation = Document.class) String value() default ""; + /** + * 名称,可用于占位 + * + * @return 结果 + */ + String name() default ""; + + /** + * 排除的属性 + * @return 结果 + */ + String[] exclude() default ""; + /** * 必须指定qo + * * @return 结果 */ Class queryClass() default NameLikeQo.class; diff --git a/flyfish-web/src/main/java/com/flyfish/framework/config/RestBeanAutoConfigure.java b/flyfish-web/src/main/java/com/flyfish/framework/config/RestBeanAutoConfigure.java index 654cb83..587f266 100644 --- a/flyfish-web/src/main/java/com/flyfish/framework/config/RestBeanAutoConfigure.java +++ b/flyfish-web/src/main/java/com/flyfish/framework/config/RestBeanAutoConfigure.java @@ -1,7 +1,7 @@ package com.flyfish.framework.config; import com.flyfish.framework.beans.annotations.EnableRestBeanDetect; -import com.flyfish.framework.beans.annotations.RestBean; +import com.flyfish.framework.beans.meta.RestBean; import com.flyfish.framework.beans.repository.CustomRepositoryRegistrar; import com.flyfish.framework.beans.resolver.DynamicRestBeanResolver; import com.flyfish.framework.compiler.DynamicJavaCompiler;