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 extends Qo> 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;