Browse Source

fix after rename: IClass#shortname to shortName

Mariusz Czarnowski 5 năm trước cách đây
mục cha
commit
85873d68a3

+ 1 - 1
assira.drafts/src/main/java/net/ranides/assira/reflection/impl/WSInpsector.java

@@ -119,7 +119,7 @@ public class WSInpsector implements WSModel {
             this.operation = or(info.operationName(), method.name());
             this.action = info.action();
             this.exclude = info.exclude();
-            this.resultname = or(method.annotation(WebResult.class).map(WebResult::name).orElse(""), returns().shortname());
+            this.resultname = or(method.annotation(WebResult.class).map(WebResult::name).orElse(""), returns().shortName());
             this.arguments = LazyReference.concurrent(() -> {
                 IArguments args = method.arguments();
                 return FElements.newArguments(AHints.EMPTY, args.count(), args.stream().map(WSArgument::new));

+ 23 - 12
assira/src/main/java/net/ranides/assira/reflection/walker/WalkerRules.java

@@ -1,5 +1,7 @@
 package net.ranides.assira.reflection.walker;
 
+import net.ranides.assira.collection.arrays.ArrayUtils;
+import net.ranides.assira.collection.arrays.NativeArray;
 import net.ranides.assira.reflection.IClass;
 import net.ranides.assira.reflection.walker.WalkerContexts.ArrayContext;
 import net.ranides.assira.reflection.walker.WalkerContexts.ObjectContext;
@@ -9,10 +11,7 @@ import net.ranides.assira.text.FormatHex;
 
 import javax.xml.datatype.XMLGregorianCalendar;
 import java.time.temporal.Temporal;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 public class WalkerRules {
 
@@ -28,19 +27,19 @@ public class WalkerRules {
             .match(ObjectContext::isNull)
             .term("{PATH} {typeName} = <null>")
         .rule()
-            .match(String.class)
-            .term("{PATH} {actual.shortname} = '{value}'")
+            .match(CharSequence.class)
+            .term("{PATH} {actual.shortName} = '{value}'")
         .rule()
             .match(byte[].class)
             .format(ctx -> FormatHex.format(ctx.value()))
-            .term("{PATH} {actual.shortname} = '{value}'")
+            .term("{PATH} {actual.shortName} = '{value}'")
         .rule()
             .match(char[].class)
             .format(ctx -> String.valueOf(ctx.value()))
-            .term("{PATH} {actual.shortname} = '{value}'")
+            .term("{PATH} {actual.shortName} = '{value}'")
         .rule()
             .match(ArrayContext.class::isInstance)
-            .hint("{PATH} {actual.shortname}.size = {size}")
+            .hint("{PATH} {actual.shortName}.size = {size}")
         .rule()
             .match(List.class)
             .match(Collection.class)
@@ -53,10 +52,10 @@ public class WalkerRules {
             .match(Temporal.class)
             .match(Number.class)
             .match(ObjectContext::isPrimitive)
-            .term("{PATH} {actual.shortname} = {value}")
+            .term("{PATH} {actual.shortName} = {value}")
         .rule()
             .match(Object.class)
-            .hint("{PATH} {actual.shortname} = {value}")
+            .hint("{PATH} {actual.shortName} = {value}")
         .prepare();
 
     public static final CollectRules<WalkerEntry> COLLECT = new CollectRules.Builder<WalkerEntry>()
@@ -70,7 +69,13 @@ public class WalkerRules {
                 .match(ObjectContext::isNull)
                 .term(WalkerEntry::new)
             .rule()
-                .match(String.class)
+                .match(byte[].class)
+                .term(WalkerEntry::new)
+            .rule()
+                .match(char[].class)
+                .term(WalkerEntry::new)
+            .rule()
+                .match(CharSequence.class)
                 .match(java.util.Date.class)
                 .match(java.sql.Date.class)
                 .match(XMLGregorianCalendar.class)
@@ -145,6 +150,12 @@ public class WalkerRules {
 
         @Override
         public String toString() {
+            if(value instanceof char[]) {
+                return "{" + path + "=" + String.valueOf((char[])value) + "}";
+            }
+            if(value!=null && value.getClass().isArray()) {
+                return "{" + path + "=<array>}";
+            }
             return "{" + path + "=" + value + "}";
         }
     }

+ 15 - 16
assira/src/test/java/net/ranides/assira/reflection/walker/rules/CollectRulesTest.java

@@ -118,36 +118,35 @@ public class CollectRulesTest {
 
     @Test
     public void arrays() {
-        StringWriter writer = new StringWriter();
+        List<WalkerRules.WalkerEntry> target = new ArrayList<>();
 
         List<Object> list = Arrays.asList(RECORD, FOO1, QUAZ);
 
-        ObjectWalker.walk(list, "record", WalkerRules.PRINTER.visitor(writer));
+        ObjectWalker.walk(list, "record", WalkerRules.COLLECT.visitor(target));
 
-        NewAssert.assertLineEquals(TestFiles.WALK_COLLECT_ARRAYS, writer.toString());
+        NewAssert.assertLineEquals(TestFiles.WALK_COLLECT_ARRAYS, target);
     }
 
     @Test
     public void matchText() {
-        StringWriter writer = new StringWriter();
+        List<WalkerRules.WalkerEntry> target = new ArrayList<>();
 
-        ObjectVisitor visitor = WalkerRules.printer()
-                .rule()
-                .match(Record.class)
-                .match(Foo.class)
+        ObjectVisitor visitor = WalkerRules.collectEntries()
+            .rule()
                 .match(Bar.class)
                 .match(Point.class)
-                .text("<native>")
-                .rules(WalkerRules.PRINTER)
-                .tag("TEST", TraceUtils.getTestFrame().orElse(null))
-                .tag("HOME", "#{TEST.methodName}")
-                .tag("PATH", "{HOME}: {typeName,text,20} {namePath,text,-50}")
-                .prepare()
-                .visitor(writer);
+                .term(WalkerRules.WalkerEntry::new)
+            .rule()
+                .match(Record.class)
+                .match(Foo.class)
+                .follow()
+            .rules(WalkerRules.COLLECT)
+            .prepare()
+            .visitor(target);
 
         ObjectWalker.walk(Arrays.asList(RECORD, FOO1), "record", visitor);
 
-        NewAssert.assertLineEquals(TestFiles.WALK_COLLECT_MATCH_TEXT, writer.toString());
+        NewAssert.assertLineEquals(TestFiles.WALK_COLLECT_MATCH_TEXT, target);
     }
 
 }

+ 5 - 5
assira/src/test/java/net/ranides/assira/reflection/walker/rules/PrintRulesTest.java

@@ -78,19 +78,19 @@ public class PrintRulesTest {
                 .match(List.class)
                 .match(Collection.class)
                 .match(Map.class)
-                .hint("#{kind.shortname,text,16}:{depth} {id,text,4}.{namePath,text,-50} {typeName}")
+                .hint("#{kind.shortName,text,16}:{depth} {id,text,4}.{namePath,text,-50} {typeName}")
                 .rule()
                 .match(WalkerContexts.ObjectContext::isNull)
-                .term("#{kind.shortname,text,16}:{depth} {id,text,4}.{namePath,text,-50} <null>")
+                .term("#{kind.shortName,text,16}:{depth} {id,text,4}.{namePath,text,-50} <null>")
                 .rule()
                 .match(String.class)
-                .term("#{kind.shortname,text,16}:{depth} {id,text,4}.{namePath,text,-50} String = '{value}'")
+                .term("#{kind.shortName,text,16}:{depth} {id,text,4}.{namePath,text,-50} String = '{value}'")
                 .rule()
                 .match(WalkerContexts.ObjectContext::isVisited)
-                .term("#{kind.shortname,text,16}:{depth} {id,text,4}.{namePath,text,-50} <ref> = #{ref}")
+                .term("#{kind.shortName,text,16}:{depth} {id,text,4}.{namePath,text,-50} <ref> = #{ref}")
                 .rule()
                 .match(Object.class)
-                .hint("#{kind.shortname,text,16}:{depth} {id,text,4}.{namePath,text,-50} {actual.shortname} = {value}")
+                .hint("#{kind.shortName,text,16}:{depth} {id,text,4}.{namePath,text,-50} {actual.shortName} = {value}")
                 .prepare()
                 .visitor(writer);
 

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 53 - 53
assira/src/test/resources/reflective/walker/collectArrays.txt


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 24 - 46
assira/src/test/resources/reflective/walker/collectMatchText.txt