Skip to content

Commit

Permalink
Separated the utils into few new Maven modules (Cls, Dates, Pool, Var…
Browse files Browse the repository at this point in the history
…, Arr).
  • Loading branch information
nmihajlovski committed Jun 20, 2015
1 parent 5a1c648 commit 689e497
Show file tree
Hide file tree
Showing 110 changed files with 799 additions and 511 deletions.
8 changes: 8 additions & 0 deletions pom.xml
Expand Up @@ -63,10 +63,18 @@
<module>rapidoid-plugins</module>
<module>rapidoid-dao</module>
<module>rapidoid-dict</module>
<module>rapidoid-tuple</module>
<module>rapidoid-u</module>
<module>rapidoid-config</module>
<module>rapidoid-arr</module>
<module>rapidoid-dates</module>
<module>rapidoid-log</module>
<module>rapidoid-var</module>
<module>rapidoid-anyobj</module>
<module>rapidoid-cls</module>
<module>rapidoid-ctx</module>
<module>rapidoid-scan</module>
<module>rapidoid-pool</module>
<module>rapidoid-utils</module>
<module>rapidoid-beany</module>
<module>rapidoid-model</module>
Expand Down
38 changes: 38 additions & 0 deletions rapidoid-anyobj/pom.xml
@@ -0,0 +1,38 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid</artifactId>
<version>3.1.0-SNAPSHOT</version>
</parent>

<artifactId>rapidoid-anyobj</artifactId>
<packaging>jar</packaging>
<description>Rapidoid AnyObj</description>

<dependencies>
<dependency>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid-u</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid-arr</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid-dates</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid-test-commons</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

</project>
79 changes: 79 additions & 0 deletions rapidoid-anyobj/src/main/java/org/rapidoid/anyobj/AnyObj.java
@@ -0,0 +1,79 @@
package org.rapidoid.anyobj;

/*
* #%L
* rapidoid-anyobj
* %%
* Copyright (C) 2014 - 2015 Nikolche Mihajlovski
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/

import java.util.Collection;

import org.rapidoid.arr.Arr;
import org.rapidoid.util.U;

/**
* @author Nikolche Mihajlovski
* @since 3.1.0
*/
public class AnyObj {

public static boolean contains(Object arrOrColl, Object value) {
if (arrOrColl instanceof Object[]) {
Object[] arr = (Object[]) arrOrColl;
return Arr.indexOf(arr, value) >= 0;
} else if (arrOrColl instanceof Collection<?>) {
Collection<?> coll = (Collection<?>) arrOrColl;
return coll.contains(value);
} else {
throw U.illegalArg("Expected array or collection, but found: " + U.readable(arrOrColl));
}
}

@SuppressWarnings("unchecked")
public static Object include(Object arrOrColl, Object item) {
if (arrOrColl instanceof Object[]) {
Object[] arr = (Object[]) arrOrColl;
return Arr.indexOf(arr, item) < 0 ? Arr.expand(arr, item) : arr;
} else if (arrOrColl instanceof Collection<?>) {
Collection<Object> coll = (Collection<Object>) arrOrColl;
if (!coll.contains(item)) {
coll.add(item);
}
return coll;
} else {
throw U.illegalArg("Expected array or collection!");
}
}

@SuppressWarnings("unchecked")
public static Object exclude(Object arrOrColl, Object item) {
if (arrOrColl instanceof Object[]) {
Object[] arr = (Object[]) arrOrColl;
int ind = Arr.indexOf(arr, item);
return ind >= 0 ? Arr.deleteAt(arr, ind) : arr;
} else if (arrOrColl instanceof Collection<?>) {
Collection<Object> coll = (Collection<Object>) arrOrColl;
if (coll.contains(item)) {
coll.remove(item);
}
return coll;
} else {
throw U.illegalArg("Expected array or collection!");
}
}

}
@@ -1,8 +1,8 @@
package org.rapidoid.util;
package org.rapidoid.anyobj;

/*
* #%L
* rapidoid-utils
* rapidoid-anyobj
* %%
* Copyright (C) 2014 - 2015 Nikolche Mihajlovski
* %%
Expand All @@ -20,28 +20,29 @@
* #L%
*/

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.test.TestCommons;
import org.rapidoid.util.U;
import org.testng.annotations.Test;

@Authors("Nikolche Mihajlovski")
@Since("2.0.0")
public class UtilsTest extends TestCommons {
/**
* @author Nikolche Mihajlovski
* @since 3.1.0
*/
public class AnyObjTest extends TestCommons {

@Test
public void testExclude() {
String[] arr = { "a", "b", "c" };
eq(UTILS.exclude(arr, "a"), U.array("b", "c"));
eq(UTILS.exclude(arr, "b"), U.array("a", "c"));
eq(UTILS.exclude(arr, "c"), U.array("a", "b"));
eq(AnyObj.exclude(arr, "a"), U.array("b", "c"));
eq(AnyObj.exclude(arr, "b"), U.array("a", "c"));
eq(AnyObj.exclude(arr, "c"), U.array("a", "b"));
}

@Test
public void testInclude() {
String[] arr = { "a", "b", "c" };
eq(UTILS.include(arr, "a"), U.array("a", "b", "c"));
eq(UTILS.include(arr, "d"), U.array("a", "b", "c", "d"));
eq(AnyObj.include(arr, "a"), U.array("a", "b", "c"));
eq(AnyObj.include(arr, "d"), U.array("a", "b", "c", "d"));
}

}
Expand Up @@ -31,6 +31,7 @@
import org.rapidoid.annotation.Scaffold;
import org.rapidoid.annotation.Since;
import org.rapidoid.beany.Beany;
import org.rapidoid.cls.Cls;
import org.rapidoid.config.Conf;
import org.rapidoid.html.Cmd;
import org.rapidoid.html.Tag;
Expand All @@ -46,10 +47,9 @@
import org.rapidoid.pages.impl.ComplexView;
import org.rapidoid.plugins.DB;
import org.rapidoid.plugins.Languages;
import org.rapidoid.scan.Scan;
import org.rapidoid.security.Secure;
import org.rapidoid.util.Cls;
import org.rapidoid.util.English;
import org.rapidoid.util.Scan;
import org.rapidoid.util.U;
import org.rapidoid.util.UTILS;

Expand Down
Expand Up @@ -28,9 +28,9 @@
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Order;
import org.rapidoid.annotation.Since;
import org.rapidoid.arr.Arr;
import org.rapidoid.beany.Metadata;
import org.rapidoid.security.annotation.DevMode;
import org.rapidoid.util.Arr;

@Authors("Nikolche Mihajlovski")
@Since("2.0.0")
Expand Down
4 changes: 2 additions & 2 deletions rapidoid-app/src/main/java/org/rapidoid/app/Apps.java
Expand Up @@ -29,6 +29,7 @@
import org.rapidoid.annotation.Transaction;
import org.rapidoid.aop.AOP;
import org.rapidoid.beany.Beany;
import org.rapidoid.cls.Cls;
import org.rapidoid.config.Conf;
import org.rapidoid.http.HTTP;
import org.rapidoid.http.HTTPServer;
Expand All @@ -43,8 +44,7 @@
import org.rapidoid.plugins.spec.LanguagesPlugin;
import org.rapidoid.plugins.spec.LifecyclePlugin;
import org.rapidoid.plugins.spec.UsersPlugin;
import org.rapidoid.util.Cls;
import org.rapidoid.util.Scan;
import org.rapidoid.scan.Scan;
import org.rapidoid.util.U;
import org.rapidoid.util.UTILS;
import org.rapidoid.util.Usage;
Expand Down
Expand Up @@ -23,10 +23,10 @@
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Session;
import org.rapidoid.annotation.Since;
import org.rapidoid.cls.Cls;
import org.rapidoid.html.Tag;
import org.rapidoid.plugins.Entities;
import org.rapidoid.security.Secure;
import org.rapidoid.util.Cls;
import org.rapidoid.widget.ButtonWidget;
import org.rapidoid.widget.GridWidget;

Expand Down
Expand Up @@ -27,9 +27,9 @@
import org.rapidoid.annotation.Transaction;
import org.rapidoid.annotation.TransactionMode;
import org.rapidoid.aop.AOPInterceptor;
import org.rapidoid.cls.Cls;
import org.rapidoid.http.HttpExchange;
import org.rapidoid.plugins.DB;
import org.rapidoid.util.Cls;
import org.rapidoid.util.U;

public class TransactionInterceptor implements AOPInterceptor {
Expand Down
Expand Up @@ -23,10 +23,10 @@
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Session;
import org.rapidoid.annotation.Since;
import org.rapidoid.cls.Cls;
import org.rapidoid.html.Tag;
import org.rapidoid.plugins.DB;
import org.rapidoid.security.Secure;
import org.rapidoid.util.Cls;
import org.rapidoid.util.U;
import org.rapidoid.widget.ButtonWidget;
import org.rapidoid.widget.FormWidget;
Expand Down
28 changes: 28 additions & 0 deletions rapidoid-arr/pom.xml
@@ -0,0 +1,28 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid</artifactId>
<version>3.1.0-SNAPSHOT</version>
</parent>

<artifactId>rapidoid-arr</artifactId>
<packaging>jar</packaging>
<description>Rapidoid Arr</description>

<dependencies>
<dependency>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid-u</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.rapidoid</groupId>
<artifactId>rapidoid-test-commons</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

</project>
@@ -1,8 +1,8 @@
package org.rapidoid.util;
package org.rapidoid.arr;

/*
* #%L
* rapidoid-utils
* rapidoid-arr
* %%
* Copyright (C) 2014 - 2015 Nikolche Mihajlovski
* %%
Expand All @@ -22,11 +22,12 @@

import java.util.Arrays;

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.util.U;

@Authors("Nikolche Mihajlovski")
@Since("2.0.0")
/**
* @author Nikolche Mihajlovski
* @since 2.0.0
*/
public class Arr {

public static int indexOf(Object[] arr, Object value) {
Expand Down
@@ -1,8 +1,8 @@
package org.rapidoid.util;
package org.rapidoid.arr;

/*
* #%L
* rapidoid-utils
* rapidoid-arr
* %%
* Copyright (C) 2014 - 2015 Nikolche Mihajlovski
* %%
Expand All @@ -20,13 +20,13 @@
* #L%
*/

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.test.TestCommons;
import org.testng.annotations.Test;

@Authors("Nikolche Mihajlovski")
@Since("2.0.0")
/**
* @author Nikolche Mihajlovski
* @since 2.0.0
*/
public class ArrTest extends TestCommons {

@Test
Expand Down
4 changes: 2 additions & 2 deletions rapidoid-beany/src/main/java/org/rapidoid/beany/BeanProp.java
Expand Up @@ -31,8 +31,8 @@

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.util.Cls;
import org.rapidoid.util.TypeKind;
import org.rapidoid.cls.Cls;
import org.rapidoid.cls.TypeKind;
import org.rapidoid.util.U;
import org.rapidoid.var.Var;

Expand Down
Expand Up @@ -32,9 +32,9 @@

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.cls.Cls;
import org.rapidoid.lambda.Lambdas;
import org.rapidoid.lambda.Mapper;
import org.rapidoid.util.Cls;
import org.rapidoid.util.U;
import org.rapidoid.util.UTILS;

Expand Down

0 comments on commit 689e497

Please sign in to comment.