@@ -0,0 +1,990 @@
+package net.redborder.utils.types.impl;%0A%0Aimport net.redborder.utils.types.MappedType;%0Aimport net.redborder.utils.types.Type;%0Aimport net.redborder.utils.types.TypeManager;%0A%0Aimport java.util.ArrayList;%0Aimport java.util.HashMap;%0Aimport java.util.List;%0Aimport java.util.Map;%0A%0Apublic class ArrayType implements Type %7B%0A    Map%3CString, Type%3E types = new HashMap%3C%3E();%0A%0A    public ArrayType(Map%3CString, Object%3E params) %7B%0A        Map%3CString, Map%3CString, Object%3E%3E components = (Map%3CString, Map%3CString, Object%3E%3E) params.get(%22components%22);%0A%0A        for (Map.Entry%3CString, Map%3CString, Object%3E%3E component : components.entrySet()) %7B%0A            Type type = TypeManager.newType(component.getValue());%0A            types.put(component.getKey(), type);%0A        %7D%0A    %7D%0A%0A    @Override%0A    public Object get() %7B%0A        List%3CObject%3E array = new ArrayList%3C%3E();%0A%0A        for (Map.Entry%3CString, Type%3E type : types.entrySet()) %7B%0A            array.add(type.getValue().get());%0A        %7D%0A%0A        return array;%0A    %7D%0A%7D%0A

Add new array type (#16)