Ranides Atterwim 4 лет назад
Родитель
Сommit
405a538caa
21 измененных файлов с 0 добавлено и 659 удалено
  1. 0 23
      assira.drafts/src/main/java/net/ranides/assira/io/ByteReader.java
  2. 0 15
      assira.drafts/src/main/java/net/ranides/assira/io/ByteStream.java
  3. 0 22
      assira.drafts/src/main/java/net/ranides/assira/io/ByteWriter.java
  4. 0 29
      assira.drafts/src/main/java/net/ranides/assira/io/CharReader.java
  5. 0 15
      assira.drafts/src/main/java/net/ranides/assira/io/CharStream.java
  6. 0 26
      assira.drafts/src/main/java/net/ranides/assira/io/CharWriter.java
  7. 0 29
      assira.drafts/src/main/java/net/ranides/assira/io/DataReader.java
  8. 0 15
      assira.drafts/src/main/java/net/ranides/assira/io/DataStream.java
  9. 0 29
      assira.drafts/src/main/java/net/ranides/assira/io/DataWriter.java
  10. 0 23
      assira.drafts/src/main/java/net/ranides/assira/io/RandomStream.java
  11. 0 91
      assira.drafts/src/main/java/net/ranides/assira/lambda/LRunner.java
  12. 0 35
      assira.drafts/src/main/java/net/ranides/assira/lambda/TestMethodPerf.java
  13. 0 80
      assira.drafts/src/main/java/net/ranides/assira/prototype/LightEvents.java
  14. 0 4
      assira.drafts/src/main/java/net/ranides/assira/prototype/LightInterface.java
  15. 0 32
      assira.drafts/src/main/java/net/ranides/assira/prototype/LightObject.java
  16. 0 19
      assira.drafts/src/main/java/net/ranides/assira/prototype/LightType.java
  17. 0 4
      assira.drafts/src/main/java/net/ranides/assira/prototype/LightValue.java
  18. 0 46
      assira.drafts/src/main/java/net/ranides/assira/reflection/SunUtils.java
  19. 0 46
      assira.drafts/src/main/java/net/ranides/assira/trace/EQException.java
  20. 0 57
      assira.drafts/src/main/java/net/ranides/esb/query/EQList.java
  21. 0 19
      assira.drafts/src/main/java/net/ranides/esb/query/EQOrigin.java

+ 0 - 23
assira.drafts/src/main/java/net/ranides/assira/io/ByteReader.java

@@ -1,23 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira
- */
-package net.ranides.assira.io;
-
-import java.io.IOException;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public interface ByteReader extends RandomStream {
-    
-    byte readByte() throws IOException;
-    
-    void readBytes(byte[] target) throws IOException;
-    
-    void readBytes(byte[] target, int offset, int length) throws IOException;
-    
-}

+ 0 - 15
assira.drafts/src/main/java/net/ranides/assira/io/ByteStream.java

@@ -1,15 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira
- */
-package net.ranides.assira.io;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public interface ByteStream extends ByteReader, ByteWriter {
-    
-}

+ 0 - 22
assira.drafts/src/main/java/net/ranides/assira/io/ByteWriter.java

@@ -1,22 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira
- */
-package net.ranides.assira.io;
-
-import java.io.IOException;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public interface ByteWriter {
- 
-    void writeByte(byte value) throws IOException;
-    
-    void writeBytes(byte[] value) throws IOException;
-    
-    void writeBytes(byte[] value, int offset, int length) throws IOException;
-}

+ 0 - 29
assira.drafts/src/main/java/net/ranides/assira/io/CharReader.java

@@ -1,29 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira
- */
-package net.ranides.assira.io;
-
-import java.io.IOException;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public interface CharReader {
-    
-    char readChar() throws IOException;
-    
-    void readChars(char[] target) throws IOException;
-    
-    void readChars(char[] target, int offset, int length) throws IOException;
-    
-    String readString() throws IOException;
-    
-    String readString(int length) throws IOException;
-    
-    String readLine() throws IOException;
-    
-}

+ 0 - 15
assira.drafts/src/main/java/net/ranides/assira/io/CharStream.java

@@ -1,15 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira
- */
-package net.ranides.assira.io;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public interface CharStream extends CharReader, CharWriter {
-    
-}

+ 0 - 26
assira.drafts/src/main/java/net/ranides/assira/io/CharWriter.java

@@ -1,26 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira
- */
-package net.ranides.assira.io;
-
-import java.io.IOException;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public interface CharWriter {
-    
-    void writeChar(char value) throws IOException;
-    
-    void writeChars(char[] value) throws IOException;
-    
-    void writeChars(char[] value, int offset, int length) throws IOException;
-    
-    void writeString(String value) throws IOException;
-    
-    void writeLine(String value) throws IOException;
-}

+ 0 - 29
assira.drafts/src/main/java/net/ranides/assira/io/DataReader.java

@@ -1,29 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira
- */
-package net.ranides.assira.io;
-
-import java.io.IOException;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public interface DataReader extends ByteReader, CharReader {
-    
-    boolean readBool() throws IOException;
-    
-    int readInt() throws IOException;
-    
-    short readShort() throws IOException;
-    
-    long readLong() throws IOException;
-    
-    float readFloat() throws IOException;
-    
-    double readDouble() throws IOException;
-    
-}

+ 0 - 15
assira.drafts/src/main/java/net/ranides/assira/io/DataStream.java

@@ -1,15 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira
- */
-package net.ranides.assira.io;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public interface DataStream extends DataReader, DataWriter {
-    
-}

+ 0 - 29
assira.drafts/src/main/java/net/ranides/assira/io/DataWriter.java

@@ -1,29 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira
- */
-package net.ranides.assira.io;
-
-import java.io.IOException;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public interface DataWriter extends ByteWriter, CharWriter {
-    
-    void writeBool(boolean value) throws IOException;
-    
-    void writeInt(int value) throws IOException;
-    
-    void writeShort(short value) throws IOException;
-    
-    void writeLong(long value) throws IOException;
-    
-    void writeFloat(float value) throws IOException;
-    
-    void writeDouble(double value) throws IOException;
-    
-}

+ 0 - 23
assira.drafts/src/main/java/net/ranides/assira/io/RandomStream.java

@@ -1,23 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira
- */
-package net.ranides.assira.io;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public interface RandomStream {
-    
-    long position(long position);
-    
-    long position();
-    
-    long skip(long count);
-    
-    long size();
-    
-}

+ 0 - 91
assira.drafts/src/main/java/net/ranides/assira/lambda/LRunner.java

@@ -1,91 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira.drafts
- */
-package net.ranides.assira.lambda;
-
-import java.lang.invoke.CallSite;
-import java.lang.invoke.LambdaConversionException;
-import java.lang.invoke.LambdaMetafactory;
-import java.lang.invoke.MethodHandle;
-import java.lang.invoke.MethodHandles;
-import java.lang.invoke.MethodType;
-import java.lang.reflect.Type;
-import java.util.List;
-import net.ranides.assira.reflection.IAttribute;
-import static net.ranides.assira.reflection.IAttribute.BRIDGE;
-import static net.ranides.assira.reflection.IAttribute.DECLARED;
-import static net.ranides.assira.reflection.IAttribute.SYNTHETIC;
-import net.ranides.assira.reflection.IClass;
-import net.ranides.assira.reflection.IMethod;
-import net.ranides.assira.reflection.IMethods;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public class LRunner {
-    
-    private static Class<?> ttype(IClass<?> ic) {
-        Type t = ic.reflective();
-        return t instanceof Class ? (Class)t : Object.class;
-    }
-    
-    public static void main(String[] args) throws LambdaConversionException, Throwable {
-        IClass<Hello> ic = IClass.typeinfo(Hello.class);
-        
-        
-        MethodHandle mh = ic.method("sum").get().handle();
-
-        IClass<IFunction> icf = IClass.typeinfo(IFunction.class);
-        
-        IMethod mf = icf.methods().require(DECLARED).discard(SYNTHETIC).discard(BRIDGE).first().get();
-        System.out.println("f = " + mf);
-        
-        Class<?> rf = ttype(mf.returns());
-        Class<?>[] rfparams = mf.arguments().types().stream().map(t -> ttype(t)).array(Class[]::new);
-        MethodType fmt = MethodType.methodType(rf, rfparams);
-        System.out.println("R = " + fmt);
-        
-        CallSite cs = LambdaMetafactory.metafactory(
-                MethodHandles.lookup(),
-                "apply",
-                MethodType.methodType(IFunction.class),
-//                MethodType.methodType(int.class, Object.class, int.class, int.class), /*mh.type(),*/
-                fmt,
-                mh,
-                mh.type() 
-        );
-        
-        IFunction lambda=(IFunction)cs.getTarget().invokeExact();
-        
-        System.out.println("d = " + lambda.apply(new Hello(400), 3, 0));
-    }
-    
-    
-    public static interface IFunction<T> {
-        
-        int apply(T that, int a, int b);
-        
-    }
-    
-    public static class Hello {
-        
-        private final int seed;
-
-        public Hello(int seed) {
-            this.seed = seed;
-        }
-        
-        public int sum(int a, int b) {
-            return seed+a+b;
-        }
-        
-        public int mul(int a, int b) {
-            return seed+a*b;
-        }
-        
-    };
-}

+ 0 - 35
assira.drafts/src/main/java/net/ranides/assira/lambda/TestMethodPerf.java

@@ -1,35 +0,0 @@
-package net.ranides.assira.lambda;
-
-import java.lang.invoke.LambdaMetafactory;
-import java.lang.invoke.MethodHandle;
-import java.lang.invoke.MethodHandles;
-import java.lang.invoke.MethodType;
-import java.lang.reflect.Method;
-import java.util.function.IntBinaryOperator;
-
-public class TestMethodPerf {
-
-    public static void main(String... args) throws Throwable {
-        // hold result to prevent too much optimizations
-        final int[] dummy = new int[4];
-
-        Method reflected = TestMethodPerf.class
-                .getDeclaredMethod("myMethod", int.class, int.class);
-        final MethodHandles.Lookup lookup = MethodHandles.lookup();
-        MethodHandle mh = lookup.unreflect(reflected);
-        IntBinaryOperator lambda = (IntBinaryOperator) LambdaMetafactory.metafactory(
-                lookup, "applyAsInt", MethodType.methodType(IntBinaryOperator.class),
-                mh.type(), mh, mh.type()).getTarget().invokeExact();
-
-        testLambda(dummy[1], lambda);
-
-    }
-
-    private static int testLambda(int v, IntBinaryOperator accessor) {
-        return accessor.applyAsInt(1000, v);
-    }
-
-    private static int myMethod(int a, int b) {
-        return a < b ? a : b;
-    }
-}

+ 0 - 80
assira.drafts/src/main/java/net/ranides/assira/prototype/LightEvents.java

@@ -1,80 +0,0 @@
-package net.ranides.assira.prototype;
-
-import lombok.experimental.UtilityClass;
-import net.ranides.assira.events.ActiveEvent;
-
-@UtilityClass
-public class LightEvents {
-
-    public static Create create(LightObject source, String property, Object value) {
-        return new Create(source, property, value);
-    }
-
-    public static Update update(LightObject source, String property, Object value) {
-        return new Update(source, property, value);
-    }
-
-    public static Delete delete(LightObject source, String property) {
-        return new Delete(source, property);
-    }
-
-    public static class LightEvent extends ActiveEvent {
-
-        private final LightObject source;
-
-        private final String property;
-
-        private final Object value;
-
-        LightEvent(LightObject source, String property, Object value) {
-            super();
-            this.source = source;
-            this.property = property;
-            this.value = value;
-        }
-
-        public LightObject source() {
-            return source;
-        }
-
-        public String property() {
-            return property;
-        }
-
-        public Object value() {
-            return value;
-        }
-    }
-
-    public static class Create extends LightEvent {
-
-        Create(LightObject source, String property, Object value) {
-            super(source, property, value);
-        }
-
-    }
-
-    public static class Update extends LightEvent {
-
-        private final Object previous;
-
-        Update(LightObject source, String property, Object value) {
-            super(source, property, value);
-            this.previous = source.get(property);
-        }
-
-        public Object previous() {
-            return previous;
-        }
-
-    }
-
-    public static class Delete extends LightEvent {
-
-        Delete(LightObject source, String property) {
-            super(source, property, source.get(property));
-        }
-
-    }
-
-}

+ 0 - 4
assira.drafts/src/main/java/net/ranides/assira/prototype/LightInterface.java

@@ -1,4 +0,0 @@
-package net.ranides.assira.prototype;
-
-public class LightInterface {
-}

+ 0 - 32
assira.drafts/src/main/java/net/ranides/assira/prototype/LightObject.java

@@ -1,32 +0,0 @@
-package net.ranides.assira.prototype;
-
-import net.ranides.assira.collection.maps.OrderedMap;
-import net.ranides.assira.collection.sets.OrderedSet;
-
-import java.util.Optional;
-
-public interface LightObject {
-
-    /*
-
-    supported types:
-        - String
-        - Number
-        - Date
-        - LightObject
-        - LightList
-        -
-
-     */
-
-    Optional<Object> get(String name);
-
-    Optional<Object> set(String name, Object value);
-
-    Optional<Object> remove(String name);
-
-    OrderedSet<String> properties();
-
-    OrderedMap<String, Object> map();
-
-}

+ 0 - 19
assira.drafts/src/main/java/net/ranides/assira/prototype/LightType.java

@@ -1,19 +0,0 @@
-package net.ranides.assira.prototype;
-
-public interface LightType {
-
-    LightType STRING = null;
-    LightType NUMBER = null;
-    LightType BOOL = null;
-    LightType CHAR = null;
-    LightType DATE = null;
-    LightType DURATION = null;
-
-    // homogenic list <A>
-
-    // heterogenic list
-
-    // light object
-
-    // homogenic dictionary <A:B>
-}

+ 0 - 4
assira.drafts/src/main/java/net/ranides/assira/prototype/LightValue.java

@@ -1,4 +0,0 @@
-package net.ranides.assira.prototype;
-
-public interface LightValue {
-}

+ 0 - 46
assira.drafts/src/main/java/net/ranides/assira/reflection/SunUtils.java

@@ -1,46 +0,0 @@
-package net.ranides.assira.reflection;
-
-import net.ranides.assira.annotations.Meta;
-import net.ranides.assira.reflection.IClass;
-import sun.misc.Unsafe;
-
-import java.lang.reflect.Field;
-
-public class SunUtils {
-
-    static final class Li {
-        static final Unsafe API = Unsafe.getUnsafe();
-    }
-
-    @SuppressWarnings("unchecked")
-    private static <T> T getUnsafe() {
-        return (T)IClass.typeinfo("sun.misc.Unsafe").field("theUnsafe").get().get(null);
-    }
-
-    @Meta.Unsafe
-    @Deprecated
-    public static boolean putObjectVolatile(String type, String field, Object value) {
-        try {
-            Class cls = Class.forName(type);
-            Field fld = cls.getDeclaredField(field);
-            Li.API.putObjectVolatile(cls, Li.API.staticFieldOffset(fld), value);
-            return true;
-        } catch (Exception cause) {
-            return false;
-        }
-    }
-
-    @Meta.Unsafe
-    @Deprecated
-    public static boolean putObjectVolatile(Object that, String field, Object value) {
-        try {
-            Class cls = that.getClass();
-            Field fld = cls.getDeclaredField(field);
-            Li.API.putObjectVolatile(that, Li.API.objectFieldOffset(fld), value);
-            return true;
-        } catch (Exception cause) {
-            return false;
-        }
-    }
-
-}

+ 0 - 46
assira.drafts/src/main/java/net/ranides/assira/trace/EQException.java

@@ -1,46 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira.drafts
- */
-
-package net.ranides.assira.trace;
-
-import java.lang.management.ManagementFactory;
-import java.text.MessageFormat;
-import java.time.Instant;
-import java.util.concurrent.atomic.AtomicInteger;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public class EQException extends NSTException {
-    
-    private static final AtomicInteger COUNTER = new AtomicInteger(0);
-    
-    private static final class Li { // NOPMD - lazy init idiom
-        
-        public static final String VMNAME = ManagementFactory.getRuntimeMXBean().getName();
-        
-    }
-    
-    private final String uid;
-    private final String text;
-
-    public EQException(String pattern, Object... params) {
-        text = MessageFormat.format(pattern, params);
-        uid = Li.VMNAME + "@" + COUNTER.incrementAndGet();
-    }
-
-    @Override
-    public String toString() {
-        return "EMException{ " + uid + " : " + text + " }";
-    }
-
-    public String getUid() {
-        return uid;
-    }
-
-}

+ 0 - 57
assira.drafts/src/main/java/net/ranides/esb/query/EQList.java

@@ -1,57 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira.drafts
- */
-
-package net.ranides.esb.query;
-
-import java.util.List;
-import java.util.stream.Stream;
-import net.ranides.assira.collection.query.CQuery;
-
-/**
- * Idea jest taka:
- * Odpowiedzią na zapytanie do szyny jest EQList, która zawiera pola "origin" oraz "qid". 
- * Na serwerze odpowiedni DAO (patrz: origin) przechowuje informację o SQLu czy innym URLu 
- * wygenerowanym dla zapytania (patrz: qid). Dane nie są jeszcze transportowane, nie zostało
- * nawet wykonane zapytanie do żadnej bazy.
- * 
- * Jeśli poprosimy o dane (#list, #stream, #cstream) to do szyny idzie kolejny request (FETCH origin,qid).
- * Teraz w odpowiednich bazach rusza zapytanie, a wyniki są transportowane do klienta.
- * 
- * Każdy DAO oferuje funkcje: mapowania, filtrowania, joinowania. 
- * Każda taka funkcja ma nazwę oraz może pobierać argumenty. 
- * Część usług może być używana przez szynę podczas generowania query planu, np podczas joinowania szyna może użyć 
- * dostępnych filtrów, aby wstępnie ograniczyć zbiory. 
- * 
- * 
- * Czyli np katalog użytkowników może mieć filtry: 
- *      "id", 
- * "name", "age", "location". Z czego 
- * 
- * 
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public interface EQList {
-    
-    EQOrigin origin();
-    
-    long qid();
-    
-    List<Object> list();
-    
-    Stream<Object> stream();
-    
-    CQuery<Object> cstream();
-    
-    EQList filter(String name, Object... params);
-
-    EQList map(String name, Object... params);
-    
-    EQList join(EQList list);
-    
-    EQList join(String name, EQList list);
-    
-}

+ 0 - 19
assira.drafts/src/main/java/net/ranides/esb/query/EQOrigin.java

@@ -1,19 +0,0 @@
-/*
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- * @copyright Ranides Atterwim
- * @license WTFPL
- * @url http://ranides.net/projects/assira.drafts
- */
-
-package net.ranides.esb.query;
-
-/**
- *
- * @author Ranides Atterwim {@literal <ranides@gmail.com>}
- */
-public interface EQOrigin {
-
-    String name();
-    
-    
-}