You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2012/07/06 12:51:21 UTC
svn commit: r1358111 [9/13] - in
/incubator/isis/trunk/framework/core/commons: ./
src/main/java/org/apache/isis/core/commons/authentication/
src/main/java/org/apache/isis/core/commons/components/
src/main/java/org/apache/isis/core/commons/config/ src/m...
Modified: incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/MapUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/MapUtils.java?rev=1358111&r1=1358110&r2=1358111&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/MapUtils.java (original)
+++ incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/MapUtils.java Fri Jul 6 10:51:16 2012
@@ -1,53 +1,53 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.isis.core.commons.lang;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public final class MapUtils {
-
- private MapUtils() {
- }
-
- /**
- * Converts a list of objects [a, 1, b, 2] into a map {a -> 1; b -> 2}
- */
- public static Map<String, String> asMap(final String... paramArgs) {
- final HashMap<String, String> map = new HashMap<String, String>();
- boolean param = true;
- String paramStr = null;
- for (final String paramArg : paramArgs) {
- if (param) {
- paramStr = paramArg;
- } else {
- final String arg = paramArg;
- map.put(paramStr, arg);
- paramStr = null;
- }
- param = !param;
- }
- if (paramStr != null) {
- throw new IllegalArgumentException("Must have equal number of parameters and arguments");
- }
- return map;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.isis.core.commons.lang;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public final class MapUtils {
+
+ private MapUtils() {
+ }
+
+ /**
+ * Converts a list of objects [a, 1, b, 2] into a map {a -> 1; b -> 2}
+ */
+ public static Map<String, String> asMap(final String... paramArgs) {
+ final HashMap<String, String> map = new HashMap<String, String>();
+ boolean param = true;
+ String paramStr = null;
+ for (final String paramArg : paramArgs) {
+ if (param) {
+ paramStr = paramArg;
+ } else {
+ final String arg = paramArg;
+ map.put(paramStr, arg);
+ paramStr = null;
+ }
+ param = !param;
+ }
+ if (paramStr != null) {
+ throw new IllegalArgumentException("Must have equal number of parameters and arguments");
+ }
+ return map;
+ }
+
+}
Modified: incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/MethodUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/MethodUtils.java?rev=1358111&r1=1358110&r2=1358111&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/MethodUtils.java (original)
+++ incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/MethodUtils.java Fri Jul 6 10:51:16 2012
@@ -1,59 +1,59 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.isis.core.commons.lang;
-
-import java.lang.reflect.Method;
-
-public class MethodUtils {
-
- private MethodUtils() {
- }
-
- public static Method getMethod(final Object object, final String methodName, final Class<?>... parameterClass) throws NoSuchMethodException {
- return getMethod(object.getClass(), methodName, parameterClass);
- }
-
- public static Method getMethod(final Object object, final String methodName) throws NoSuchMethodException {
- return getMethod(object.getClass(), methodName, new Class[0]);
- }
-
- public static Method getMethod(final Class<?> clazz, final String methodName, final Class<?>... parameterClass) throws NoSuchMethodException {
- return clazz.getMethod(methodName, parameterClass);
- }
-
- public static Method findMethodElseNull(final Class<?> clazz, final String methodName, final Class<?>... parameterClass) {
- try {
- return clazz.getMethod(methodName, parameterClass);
- } catch (final NoSuchMethodException e) {
- return null;
- }
- }
-
- public static Method findMethodElseNull(final Class<?> clazz, final String[] candidateMethodNames, final Class<?>... parameterClass) {
- for (final String candidateMethodName : candidateMethodNames) {
- final Method method = findMethodElseNull(clazz, candidateMethodName, parameterClass);
- if (method != null) {
- return method;
- }
- }
- return null;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.isis.core.commons.lang;
+
+import java.lang.reflect.Method;
+
+public class MethodUtils {
+
+ private MethodUtils() {
+ }
+
+ public static Method getMethod(final Object object, final String methodName, final Class<?>... parameterClass) throws NoSuchMethodException {
+ return getMethod(object.getClass(), methodName, parameterClass);
+ }
+
+ public static Method getMethod(final Object object, final String methodName) throws NoSuchMethodException {
+ return getMethod(object.getClass(), methodName, new Class[0]);
+ }
+
+ public static Method getMethod(final Class<?> clazz, final String methodName, final Class<?>... parameterClass) throws NoSuchMethodException {
+ return clazz.getMethod(methodName, parameterClass);
+ }
+
+ public static Method findMethodElseNull(final Class<?> clazz, final String methodName, final Class<?>... parameterClass) {
+ try {
+ return clazz.getMethod(methodName, parameterClass);
+ } catch (final NoSuchMethodException e) {
+ return null;
+ }
+ }
+
+ public static Method findMethodElseNull(final Class<?> clazz, final String[] candidateMethodNames, final Class<?>... parameterClass) {
+ for (final String candidateMethodName : candidateMethodNames) {
+ final Method method = findMethodElseNull(clazz, candidateMethodName, parameterClass);
+ if (method != null) {
+ return method;
+ }
+ }
+ return null;
+ }
+
+}
Modified: incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/NameUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/NameUtils.java?rev=1358111&r1=1358110&r2=1358111&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/NameUtils.java (original)
+++ incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/NameUtils.java Fri Jul 6 10:51:16 2012
@@ -1,171 +1,171 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.isis.core.commons.lang;
-
-public final class NameUtils {
-
- private static final char SPACE = ' ';
-
- private NameUtils() {
- }
-
- /**
- * Returns the name of a Java entity without any prefix. A prefix is defined
- * as the first set of lowercase letters and the name is characters from,
- * and including, the first upper case letter. If no upper case letter is
- * found then an empty string is returned.
- *
- * <p>
- * Calling this method with the following Java names will produce these
- * results:
- *
- * <pre>
- * getCarRegistration -> CarRegistration
- * CityMayor -> CityMayor
- * isReady -> Ready
- * </pre>
- *
- */
- public static String javaBaseName(final String javaName) {
- int pos = 0;
-
- // find first upper case character
- final int len = javaName.length();
-
- while ((pos < len) && (javaName.charAt(pos) != '_') && Character.isLowerCase(javaName.charAt(pos))) {
- pos++;
- }
-
- if (pos >= len) {
- return "";
- }
-
- if (javaName.charAt(pos) == '_') {
- pos++;
- }
-
- if (pos >= len) {
- return "";
- }
-
- final String baseName = javaName.substring(pos);
- final char firstChar = baseName.charAt(0);
-
- if (Character.isLowerCase(firstChar)) {
- return Character.toUpperCase(firstChar) + baseName.substring(1);
- } else {
- return baseName;
- }
- }
-
- public static String javaBaseNameStripAccessorPrefixIfRequired(final String javaName) {
- if (javaName.startsWith("is") || javaName.startsWith("get")) {
- return javaBaseName(javaName);
- } else {
- return capitalizeName(javaName);
- }
- }
-
- public static String capitalizeName(final String name) {
- return Character.toUpperCase(name.charAt(0)) + name.substring(1);
- }
-
- public static boolean startsWith(final String fullMethodName, final String prefix) {
- final int length = prefix.length();
- if (length >= fullMethodName.length()) {
- return false;
- } else {
- final char startingCharacter = fullMethodName.charAt(length);
- return fullMethodName.startsWith(prefix) && Character.isUpperCase(startingCharacter);
- }
- }
-
- /**
- * Return a lower case, non-spaced version of the specified name.
- */
- public static String simpleName(final String name) {
- final int len = name.length();
- final StringBuffer sb = new StringBuffer(len);
- for (int pos = 0; pos < len; pos++) {
- final char ch = name.charAt(pos);
- if (ch == ' ') {
- continue;
- }
- sb.append(Character.toLowerCase(ch));
- }
- return sb.toString();
- }
-
- /**
- * Returns a word spaced version of the specified name, so there are spaces
- * between the words, where each word starts with a capital letter. E.g.,
- * "NextAvailableDate" is returned as "Next Available Date".
- */
- public static String naturalName(final String name) {
-
- final int length = name.length();
-
- if (length <= 1) {
- return name.toUpperCase();// ensure first character is upper case
- }
-
- final StringBuffer naturalName = new StringBuffer(length);
-
- char previousCharacter;
- char character = Character.toUpperCase(name.charAt(0));// ensure first
- // character is
- // upper case
- naturalName.append(character);
- char nextCharacter = name.charAt(1);
-
- for (int pos = 2; pos < length; pos++) {
- previousCharacter = character;
- character = nextCharacter;
- nextCharacter = name.charAt(pos);
-
- if (previousCharacter != NameUtils.SPACE) {
- if (Character.isUpperCase(character) && !Character.isUpperCase(previousCharacter)) {
- naturalName.append(NameUtils.SPACE);
- }
- if (Character.isUpperCase(character) && Character.isLowerCase(nextCharacter) && Character.isUpperCase(previousCharacter)) {
- naturalName.append(NameUtils.SPACE);
- }
- if (Character.isDigit(character) && !Character.isDigit(previousCharacter)) {
- naturalName.append(NameUtils.SPACE);
- }
- }
- naturalName.append(character);
- }
- naturalName.append(nextCharacter);
- return naturalName.toString();
- }
-
- public static String pluralName(final String name) {
- String pluralName;
- if (name.endsWith("y")) {
- pluralName = name.substring(0, name.length() - 1) + "ies";
- } else if (name.endsWith("s") || name.endsWith("x")) {
- pluralName = name + "es";
- } else {
- pluralName = name + 's';
- }
- return pluralName;
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.isis.core.commons.lang;
+
+public final class NameUtils {
+
+ private static final char SPACE = ' ';
+
+ private NameUtils() {
+ }
+
+ /**
+ * Returns the name of a Java entity without any prefix. A prefix is defined
+ * as the first set of lowercase letters and the name is characters from,
+ * and including, the first upper case letter. If no upper case letter is
+ * found then an empty string is returned.
+ *
+ * <p>
+ * Calling this method with the following Java names will produce these
+ * results:
+ *
+ * <pre>
+ * getCarRegistration -> CarRegistration
+ * CityMayor -> CityMayor
+ * isReady -> Ready
+ * </pre>
+ *
+ */
+ public static String javaBaseName(final String javaName) {
+ int pos = 0;
+
+ // find first upper case character
+ final int len = javaName.length();
+
+ while ((pos < len) && (javaName.charAt(pos) != '_') && Character.isLowerCase(javaName.charAt(pos))) {
+ pos++;
+ }
+
+ if (pos >= len) {
+ return "";
+ }
+
+ if (javaName.charAt(pos) == '_') {
+ pos++;
+ }
+
+ if (pos >= len) {
+ return "";
+ }
+
+ final String baseName = javaName.substring(pos);
+ final char firstChar = baseName.charAt(0);
+
+ if (Character.isLowerCase(firstChar)) {
+ return Character.toUpperCase(firstChar) + baseName.substring(1);
+ } else {
+ return baseName;
+ }
+ }
+
+ public static String javaBaseNameStripAccessorPrefixIfRequired(final String javaName) {
+ if (javaName.startsWith("is") || javaName.startsWith("get")) {
+ return javaBaseName(javaName);
+ } else {
+ return capitalizeName(javaName);
+ }
+ }
+
+ public static String capitalizeName(final String name) {
+ return Character.toUpperCase(name.charAt(0)) + name.substring(1);
+ }
+
+ public static boolean startsWith(final String fullMethodName, final String prefix) {
+ final int length = prefix.length();
+ if (length >= fullMethodName.length()) {
+ return false;
+ } else {
+ final char startingCharacter = fullMethodName.charAt(length);
+ return fullMethodName.startsWith(prefix) && Character.isUpperCase(startingCharacter);
+ }
+ }
+
+ /**
+ * Return a lower case, non-spaced version of the specified name.
+ */
+ public static String simpleName(final String name) {
+ final int len = name.length();
+ final StringBuffer sb = new StringBuffer(len);
+ for (int pos = 0; pos < len; pos++) {
+ final char ch = name.charAt(pos);
+ if (ch == ' ') {
+ continue;
+ }
+ sb.append(Character.toLowerCase(ch));
+ }
+ return sb.toString();
+ }
+
+ /**
+ * Returns a word spaced version of the specified name, so there are spaces
+ * between the words, where each word starts with a capital letter. E.g.,
+ * "NextAvailableDate" is returned as "Next Available Date".
+ */
+ public static String naturalName(final String name) {
+
+ final int length = name.length();
+
+ if (length <= 1) {
+ return name.toUpperCase();// ensure first character is upper case
+ }
+
+ final StringBuffer naturalName = new StringBuffer(length);
+
+ char previousCharacter;
+ char character = Character.toUpperCase(name.charAt(0));// ensure first
+ // character is
+ // upper case
+ naturalName.append(character);
+ char nextCharacter = name.charAt(1);
+
+ for (int pos = 2; pos < length; pos++) {
+ previousCharacter = character;
+ character = nextCharacter;
+ nextCharacter = name.charAt(pos);
+
+ if (previousCharacter != NameUtils.SPACE) {
+ if (Character.isUpperCase(character) && !Character.isUpperCase(previousCharacter)) {
+ naturalName.append(NameUtils.SPACE);
+ }
+ if (Character.isUpperCase(character) && Character.isLowerCase(nextCharacter) && Character.isUpperCase(previousCharacter)) {
+ naturalName.append(NameUtils.SPACE);
+ }
+ if (Character.isDigit(character) && !Character.isDigit(previousCharacter)) {
+ naturalName.append(NameUtils.SPACE);
+ }
+ }
+ naturalName.append(character);
+ }
+ naturalName.append(nextCharacter);
+ return naturalName.toString();
+ }
+
+ public static String pluralName(final String name) {
+ String pluralName;
+ if (name.endsWith("y")) {
+ pluralName = name.substring(0, name.length() - 1) + "ies";
+ } else if (name.endsWith("s") || name.endsWith("x")) {
+ pluralName = name + "es";
+ } else {
+ pluralName = name + 's';
+ }
+ return pluralName;
+ }
+}
Modified: incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/PathUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/PathUtils.java?rev=1358111&r1=1358110&r2=1358111&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/PathUtils.java (original)
+++ incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/PathUtils.java Fri Jul 6 10:51:16 2012
@@ -1,47 +1,47 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.isis.core.commons.lang;
-
-public final class PathUtils {
-
- private PathUtils() {
- }
-
- public static String combine(final String path, final String suffix) {
- if (isEmpty(path) && isEmpty(suffix)) {
- return "";
- }
- if (isEmpty(path)) {
- return suffix;
- }
- if (isEmpty(suffix)) {
- return path;
- }
- if (path.endsWith("/") || suffix.startsWith("/")) {
- return path + suffix;
- }
- return path + "/" + suffix;
- }
-
- private static boolean isEmpty(final String str) {
- return str == null || str.length() == 0;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.isis.core.commons.lang;
+
+public final class PathUtils {
+
+ private PathUtils() {
+ }
+
+ public static String combine(final String path, final String suffix) {
+ if (isEmpty(path) && isEmpty(suffix)) {
+ return "";
+ }
+ if (isEmpty(path)) {
+ return suffix;
+ }
+ if (isEmpty(suffix)) {
+ return path;
+ }
+ if (path.endsWith("/") || suffix.startsWith("/")) {
+ return path + suffix;
+ }
+ return path + "/" + suffix;
+ }
+
+ private static boolean isEmpty(final String str) {
+ return str == null || str.length() == 0;
+ }
+
+}
Modified: incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/Resources.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/Resources.java?rev=1358111&r1=1358110&r2=1358111&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/Resources.java (original)
+++ incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/Resources.java Fri Jul 6 10:51:16 2012
@@ -1,122 +1,122 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.isis.core.commons.lang;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Properties;
-
-/**
- * Adapted from Ibatis Common.
- */
-public class Resources {
-
- /**
- * Returns the URL, or null if not available.
- */
- public static URL getResourceURL(final String resource) {
-
- // try thread's classloader
- ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
- URL url = classLoader.getResource(resource);
- if (url != null) {
- return url;
- }
-
- // try this class' classloader
- classLoader = Resources.class.getClassLoader();
- url = classLoader.getResource(resource);
- if (url != null) {
- return url;
- }
-
- // try system class loader (could return null)
- // wrapping in a try...catch because when running tests by Maven for a
- // non-existing
- // resource, seems to bomb out. Is okay when run from Eclipse. A bit of
- // a puzzle.
- try {
- return ClassLoader.getSystemResource(resource);
- } catch (final NullPointerException ignore) {
- return null;
- }
- }
-
- public static InputStream getResourceAsStream(final String resource) {
-
- // try thread's classloader
- ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
- InputStream is = classLoader.getResourceAsStream(resource);
- if (is != null) {
- return is;
- }
-
- // try this class' classloader
- classLoader = Resources.class.getClassLoader();
- is = classLoader.getResourceAsStream(resource);
- if (is != null) {
- return is;
- }
-
- // try system class loader (could return null)
- // have wrapped in a try...catch because for same reason as
- // getResourceURL
- try {
- return ClassLoader.getSystemResourceAsStream(resource);
- } catch (final NullPointerException ignore) {
- return null;
- }
- }
-
- public static File getResourceAsFile(final String resource) {
- final URL url = getResourceURL(resource);
- if (url == null) {
- return null;
- }
-
- return new File(url.getFile());
- }
-
- public static Properties getResourceAsProperties(final String resource) {
-
- final InputStream is = getResourceAsStream(resource);
- if (is == null) {
- return null;
- }
-
- final Properties props = new Properties();
- try {
- props.load(is);
- } catch (final IOException ex) {
- throw new RuntimeException(ex);
- } finally {
- try {
- is.close();
- } catch (final IOException ignore) {
- // ignore
- }
- }
-
- return props;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.isis.core.commons.lang;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Properties;
+
+/**
+ * Adapted from Ibatis Common.
+ */
+public class Resources {
+
+ /**
+ * Returns the URL, or null if not available.
+ */
+ public static URL getResourceURL(final String resource) {
+
+ // try thread's classloader
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ URL url = classLoader.getResource(resource);
+ if (url != null) {
+ return url;
+ }
+
+ // try this class' classloader
+ classLoader = Resources.class.getClassLoader();
+ url = classLoader.getResource(resource);
+ if (url != null) {
+ return url;
+ }
+
+ // try system class loader (could return null)
+ // wrapping in a try...catch because when running tests by Maven for a
+ // non-existing
+ // resource, seems to bomb out. Is okay when run from Eclipse. A bit of
+ // a puzzle.
+ try {
+ return ClassLoader.getSystemResource(resource);
+ } catch (final NullPointerException ignore) {
+ return null;
+ }
+ }
+
+ public static InputStream getResourceAsStream(final String resource) {
+
+ // try thread's classloader
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ InputStream is = classLoader.getResourceAsStream(resource);
+ if (is != null) {
+ return is;
+ }
+
+ // try this class' classloader
+ classLoader = Resources.class.getClassLoader();
+ is = classLoader.getResourceAsStream(resource);
+ if (is != null) {
+ return is;
+ }
+
+ // try system class loader (could return null)
+ // have wrapped in a try...catch because for same reason as
+ // getResourceURL
+ try {
+ return ClassLoader.getSystemResourceAsStream(resource);
+ } catch (final NullPointerException ignore) {
+ return null;
+ }
+ }
+
+ public static File getResourceAsFile(final String resource) {
+ final URL url = getResourceURL(resource);
+ if (url == null) {
+ return null;
+ }
+
+ return new File(url.getFile());
+ }
+
+ public static Properties getResourceAsProperties(final String resource) {
+
+ final InputStream is = getResourceAsStream(resource);
+ if (is == null) {
+ return null;
+ }
+
+ final Properties props = new Properties();
+ try {
+ props.load(is);
+ } catch (final IOException ex) {
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ is.close();
+ } catch (final IOException ignore) {
+ // ignore
+ }
+ }
+
+ return props;
+ }
+
+}
Modified: incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringBuilderUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringBuilderUtils.java?rev=1358111&r1=1358110&r2=1358111&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringBuilderUtils.java (original)
+++ incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringBuilderUtils.java Fri Jul 6 10:51:16 2012
@@ -1,36 +1,36 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.isis.core.commons.lang;
-
-public class StringBuilderUtils {
-
- public static void appendBuf(final StringBuilder buf, final String formatString, final Object... args) {
- buf.append(String.format(formatString, args));
- }
-
- /**
- * @deprecated - use a {@link StringBuilder} instead!
- */
- @Deprecated
- public static void appendBuf(final StringBuffer buf, final String formatString, final Object... args) {
- buf.append(String.format(formatString, args));
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.isis.core.commons.lang;
+
+public class StringBuilderUtils {
+
+ public static void appendBuf(final StringBuilder buf, final String formatString, final Object... args) {
+ buf.append(String.format(formatString, args));
+ }
+
+ /**
+ * @deprecated - use a {@link StringBuilder} instead!
+ */
+ @Deprecated
+ public static void appendBuf(final StringBuffer buf, final String formatString, final Object... args) {
+ buf.append(String.format(formatString, args));
+ }
+
+}
Modified: incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java?rev=1358111&r1=1358110&r2=1358111&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java (original)
+++ incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/StringUtils.java Fri Jul 6 10:51:16 2012
@@ -1,360 +1,388 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.isis.core.commons.lang;
-
-import java.io.File;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import com.google.common.collect.Lists;
-
-public final class StringUtils {
- private StringUtils() {
- }
-
- // ////////////////////////////////////////////////////////////
- // naturalName, naturalize, simpleName, camel, memberIdFor
- // ////////////////////////////////////////////////////////////
-
- public static String naturalName(final String name) {
-
- int pos = 0;
-
- // find first upper case character
- while ((pos < name.length()) && Character.isLowerCase(name.charAt(pos))) {
- pos++;
- }
-
- if (pos == name.length()) {
- return "invalid name";
- }
- return naturalize(name, pos);
- }
-
- public static String naturalize(final String name) {
- return naturalize(name, 0);
- }
-
- private static String naturalize(final String name, final int startingPosition) {
- if (name.length() <= startingPosition) {
- throw new IllegalArgumentException("string shorter than starting position provided");
- }
- final StringBuffer s = new StringBuffer(name.length() - startingPosition);
- for (int j = startingPosition; j < name.length(); j++) { // process
- // english name
- // - add spaces
- if ((j > startingPosition) && isStartOfNewWord(name.charAt(j), name.charAt(j - 1))) {
- s.append(' ');
- }
- if (j == startingPosition) {
- s.append(Character.toUpperCase(name.charAt(j)));
- } else {
- s.append(name.charAt(j));
- }
- }
- final String str = s.toString();
- return str;
- }
-
- private static boolean isStartOfNewWord(final char c, final char previousChar) {
- return Character.isUpperCase(c) || Character.isDigit(c) && !Character.isDigit(previousChar);
- }
-
- public static String simpleName(final String str) {
- final int lastDot = str.lastIndexOf('.');
- if (lastDot == -1) {
- return str;
- }
- if (lastDot == str.length() - 1) {
- throw new IllegalArgumentException("Name cannot end in '.'");
- }
- return str.substring(lastDot + 1);
- }
-
- public static String camel(final String name) {
- final StringBuffer b = new StringBuffer(name.length());
- final StringTokenizer t = new StringTokenizer(name);
- b.append(t.nextToken());
- while (t.hasMoreTokens()) {
- final String token = t.nextToken();
- b.append(token.substring(0, 1).toUpperCase()); // replace spaces
- // with
- // camelCase
- b.append(token.substring(1));
- }
- return b.toString();
- }
-
- // TODO: combine with camel
- public static String camelLowerFirst(final String name) {
- final StringBuffer b = new StringBuffer(name.length());
- final StringTokenizer t = new StringTokenizer(name);
- b.append(lowerFirst(t.nextToken()));
- while (t.hasMoreTokens()) {
- final String token = t.nextToken();
- b.append(token.substring(0, 1).toUpperCase()); // replace spaces
- // with camelCase
- b.append(token.substring(1).toLowerCase());
- }
- return b.toString();
- }
-
- public static String pascal(final String name) {
- return capitalize(camel(name));
- }
-
- public static String memberIdFor(final String member) {
- return lowerLeading(camel(member));
- }
-
- // ////////////////////////////////////////////////////////////
- // capitalize, lowerFirst, firstWord
- // ////////////////////////////////////////////////////////////
-
- public static String capitalize(final String str) {
- if (str == null || str.length() == 0) {
- return str;
- }
- if (str.length() == 1) {
- return str.toUpperCase();
- }
- return Character.toUpperCase(str.charAt(0)) + str.substring(1);
- }
-
- /**
- * Simply forces first char to be lower case.
- */
- public static String lowerFirst(final String str) {
- if (isNullOrEmpty(str)) {
- return str;
- }
- if (str.length() == 1) {
- return str.toLowerCase();
- }
- return str.substring(0, 1).toLowerCase() + str.substring(1);
- }
-
- public static String lowerLeading(final String str) {
- return lowerFirst(str);
- }
-
- public static String firstWord(final String line) {
- final String[] split = line.split(" ");
- return split[0];
- }
-
- // ////////////////////////////////////////////////////////////
- // isNullOrEmpty, nullSafeEquals
- // ////////////////////////////////////////////////////////////
-
- public static boolean isNullOrEmpty(final String str) {
- return str == null || str.isEmpty();
- }
-
- public static boolean nullSafeEquals(final String str1, final String str2) {
- if (str1 == null || str2 == null) {
- return false;
- }
- return str1.equals(str2);
- }
-
- // ////////////////////////////////////////////////////////////
- // in, combine, combinePaths, splitOnCommas
- // ////////////////////////////////////////////////////////////
-
- public static boolean in(final String str, final String[] strings) {
- for (final String strCandidate : strings) {
- if (strCandidate.equals(str)) {
- return true;
- }
- }
- return false;
- }
-
- public static String combine(final List<String> list) {
- final StringBuffer buf = new StringBuffer();
- for (final String message : list) {
- if (list.size() > 1) {
- buf.append("; ");
- }
- buf.append(message);
- }
- return buf.toString();
- }
-
- public static String combinePaths(final String path, final String... furtherPaths) {
- final StringBuilder buf = new StringBuilder(path);
- for (final String furtherPath : furtherPaths) {
- if (buf.charAt(buf.length() - 1) != File.separatorChar) {
- buf.append(File.separatorChar);
- }
- buf.append(furtherPath);
- }
- return buf.toString();
- }
-
- public static List<String> splitOnCommas(final String commaSeparatedList) {
- if (commaSeparatedList == null) {
- return null;
- }
- final String removeLeadingWhiteSpace = removeLeadingWhiteSpace(commaSeparatedList);
- // special handling
- if (removeLeadingWhiteSpace.length() == 0) {
- return Collections.emptyList();
- }
- final String[] splitAsArray = removeLeadingWhiteSpace.split("\\W*,\\W*");
- return Arrays.asList(splitAsArray);
- }
-
- // ////////////////////////////////////////////////////////////
- // commaSeparatedClassNames
- // ////////////////////////////////////////////////////////////
-
- public static String commaSeparatedClassNames(final List<Object> objects) {
- final StringBuilder buf = new StringBuilder();
- int i = 0;
- for (final Object object : objects) {
- if (i++ > 0) {
- buf.append(',');
- }
- buf.append(object.getClass().getName());
- }
- return buf.toString();
- }
-
- private static final char CARRIAGE_RETURN = '\n';
- private static final char LINE_FEED = '\r';
-
- /**
- * Converts any <tt>\n</tt> to <tt>line.separator</tt>
- *
- * @param string
- * @return
- */
- public static String lineSeparated(final String string) {
- final StringBuilder buf = new StringBuilder();
- final String lineSeparator = System.getProperty("line.separator");
- boolean lastWasLineFeed = false;
- for (final char c : string.toCharArray()) {
- final boolean isLineFeed = c == LINE_FEED;
- final boolean isCarriageReturn = c == CARRIAGE_RETURN;
- if (isCarriageReturn) {
- buf.append(lineSeparator);
- lastWasLineFeed = false;
- } else {
- if (lastWasLineFeed) {
- buf.append(LINE_FEED);
- }
- if (isLineFeed) {
- lastWasLineFeed = true;
- } else {
- buf.append(c);
- lastWasLineFeed = false;
- }
- }
- }
- if (lastWasLineFeed) {
- buf.append(LINE_FEED);
- }
- return buf.toString();
- }
-
- // ////////////////////////////////////////////////////////////
- // removeTabs, removeLeadingWhiteSpace, stripLeadingSlash, stripNewLines,
- // normalize
- // ////////////////////////////////////////////////////////////
-
- public static String removeTabs(final String text) {
- // quick return - jvm java should always return here
- if (text.indexOf('\t') == -1) {
- return text;
- }
- final StringBuffer buf = new StringBuffer();
- for (int i = 0; i < text.length(); i++) {
- // a bit clunky to stay with j# api
- if (text.charAt(i) != '\t') {
- buf.append(text.charAt(i));
- }
- }
- return buf.toString();
- }
-
- public static String removeLeadingWhiteSpace(final String str) {
- if (str == null) {
- return null;
- }
- return str.replaceAll("^\\W*", "");
- }
-
- public static String stripNewLines(final String str) {
- return str.replaceAll("[\r\n]", "");
- }
-
- public static String stripLeadingSlash(final String path) {
- if (!path.startsWith("/")) {
- return path;
- }
- if (path.length() < 2) {
- return "";
- }
- return path.substring(1);
- }
-
- /**
- * Condenses any whitespace to a single character
- *
- * @param str
- * @return
- */
- public static String normalized(final String str) {
- if (str == null) {
- return null;
- }
- return str.replaceAll("\\s+", " ");
- }
-
- public static String[] normalized(final String... strings) {
- final List<String> stringList = Lists.newArrayList();
- for (final String string : strings) {
- stringList.add(normalized(string));
- }
- return stringList.toArray(new String[] {});
- }
-
- public static String removePrefix(final String name, final String prefix) {
- if (name.startsWith(prefix)) {
- return name.substring(prefix.length());
- } else {
- return name;
- }
- }
-
- public static <T> T coalesce(final T... strings) {
- for (final T str : strings) {
- if (str != null) {
- return str;
- }
- }
- return null;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.isis.core.commons.lang;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import javax.annotation.Nullable;
+
+import com.google.common.base.Function;
+import com.google.common.base.Joiner;
+import com.google.common.base.Splitter;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+
+public final class StringUtils {
+ private StringUtils() {
+ }
+
+ private static Function<String, String> LOWER_CASE_THEN_CAPITALIZE = new Function<String, String>() {
+ @Override
+ public String apply(String input) {
+ return StringUtils.capitalize(input.toLowerCase());
+ }
+ };
+
+ private static Function<String, String> UPPER_CASE = new Function<String, String>() {
+ @Override
+ public String apply(String input) {
+ return input.toUpperCase();
+ }
+ };
+
+ // ////////////////////////////////////////////////////////////
+ // naturalName, naturalize, simpleName, camel, memberIdFor
+ // ////////////////////////////////////////////////////////////
+
+ public static String naturalName(final String name) {
+
+ int pos = 0;
+
+ // find first upper case character
+ while ((pos < name.length()) && Character.isLowerCase(name.charAt(pos))) {
+ pos++;
+ }
+
+ if (pos == name.length()) {
+ return "invalid name";
+ }
+ return naturalize(name, pos);
+ }
+
+ public static String naturalize(final String name) {
+ return naturalize(name, 0);
+ }
+
+ private static String naturalize(final String name, final int startingPosition) {
+ if (name.length() <= startingPosition) {
+ throw new IllegalArgumentException("string shorter than starting position provided");
+ }
+ final StringBuffer s = new StringBuffer(name.length() - startingPosition);
+ for (int j = startingPosition; j < name.length(); j++) { // process
+ // english name
+ // - add spaces
+ if ((j > startingPosition) && isStartOfNewWord(name.charAt(j), name.charAt(j - 1))) {
+ s.append(' ');
+ }
+ if (j == startingPosition) {
+ s.append(Character.toUpperCase(name.charAt(j)));
+ } else {
+ s.append(name.charAt(j));
+ }
+ }
+ final String str = s.toString();
+ return str;
+ }
+
+ private static boolean isStartOfNewWord(final char c, final char previousChar) {
+ return Character.isUpperCase(c) || Character.isDigit(c) && !Character.isDigit(previousChar);
+ }
+
+ public static String simpleName(final String str) {
+ final int lastDot = str.lastIndexOf('.');
+ if (lastDot == -1) {
+ return str;
+ }
+ if (lastDot == str.length() - 1) {
+ throw new IllegalArgumentException("Name cannot end in '.'");
+ }
+ return str.substring(lastDot + 1);
+ }
+
+ public static String camel(final String name) {
+ final StringBuffer b = new StringBuffer(name.length());
+ final StringTokenizer t = new StringTokenizer(name);
+ b.append(t.nextToken());
+ while (t.hasMoreTokens()) {
+ final String token = t.nextToken();
+ b.append(token.substring(0, 1).toUpperCase()); // replace spaces
+ // with
+ // camelCase
+ b.append(token.substring(1));
+ }
+ return b.toString();
+ }
+
+ // TODO: combine with camel
+ public static String camelLowerFirst(final String name) {
+ final StringBuffer b = new StringBuffer(name.length());
+ final StringTokenizer t = new StringTokenizer(name);
+ b.append(lowerFirst(t.nextToken()));
+ while (t.hasMoreTokens()) {
+ final String token = t.nextToken();
+ b.append(token.substring(0, 1).toUpperCase()); // replace spaces
+ // with camelCase
+ b.append(token.substring(1).toLowerCase());
+ }
+ return b.toString();
+ }
+
+ public static String pascal(final String name) {
+ return capitalize(camel(name));
+ }
+
+ public static String memberIdFor(final String member) {
+ return lowerLeading(camel(member));
+ }
+
+ // ////////////////////////////////////////////////////////////
+ // capitalize, lowerFirst, firstWord
+ // ////////////////////////////////////////////////////////////
+
+ public static String capitalize(final String str) {
+ if (str == null || str.length() == 0) {
+ return str;
+ }
+ if (str.length() == 1) {
+ return str.toUpperCase();
+ }
+ return Character.toUpperCase(str.charAt(0)) + str.substring(1);
+ }
+
+ /**
+ * Simply forces first char to be lower case.
+ */
+ public static String lowerFirst(final String str) {
+ if (isNullOrEmpty(str)) {
+ return str;
+ }
+ if (str.length() == 1) {
+ return str.toLowerCase();
+ }
+ return str.substring(0, 1).toLowerCase() + str.substring(1);
+ }
+
+ public static String lowerLeading(final String str) {
+ return lowerFirst(str);
+ }
+
+ public static String firstWord(final String line) {
+ final String[] split = line.split(" ");
+ return split[0];
+ }
+
+ // ////////////////////////////////////////////////////////////
+ // isNullOrEmpty, nullSafeEquals
+ // ////////////////////////////////////////////////////////////
+
+ public static boolean isNullOrEmpty(final String str) {
+ return str == null || str.isEmpty();
+ }
+
+ public static boolean nullSafeEquals(final String str1, final String str2) {
+ if (str1 == null || str2 == null) {
+ return false;
+ }
+ return str1.equals(str2);
+ }
+
+ // ////////////////////////////////////////////////////////////
+ // in, combine, combinePaths, splitOnCommas
+ // ////////////////////////////////////////////////////////////
+
+ public static boolean in(final String str, final String[] strings) {
+ for (final String strCandidate : strings) {
+ if (strCandidate.equals(str)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static String combine(final List<String> list) {
+ final StringBuffer buf = new StringBuffer();
+ for (final String message : list) {
+ if (list.size() > 1) {
+ buf.append("; ");
+ }
+ buf.append(message);
+ }
+ return buf.toString();
+ }
+
+ public static String combinePaths(final String path, final String... furtherPaths) {
+ final StringBuilder buf = new StringBuilder(path);
+ for (final String furtherPath : furtherPaths) {
+ if (buf.charAt(buf.length() - 1) != File.separatorChar) {
+ buf.append(File.separatorChar);
+ }
+ buf.append(furtherPath);
+ }
+ return buf.toString();
+ }
+
+ public static List<String> splitOnCommas(final String commaSeparatedList) {
+ if (commaSeparatedList == null) {
+ return null;
+ }
+ final String removeLeadingWhiteSpace = removeLeadingWhiteSpace(commaSeparatedList);
+ // special handling
+ if (removeLeadingWhiteSpace.length() == 0) {
+ return Collections.emptyList();
+ }
+ final String[] splitAsArray = removeLeadingWhiteSpace.split("\\W*,\\W*");
+ return Arrays.asList(splitAsArray);
+ }
+
+ // ////////////////////////////////////////////////////////////
+ // commaSeparatedClassNames
+ // ////////////////////////////////////////////////////////////
+
+ public static String commaSeparatedClassNames(final List<Object> objects) {
+ final StringBuilder buf = new StringBuilder();
+ int i = 0;
+ for (final Object object : objects) {
+ if (i++ > 0) {
+ buf.append(',');
+ }
+ buf.append(object.getClass().getName());
+ }
+ return buf.toString();
+ }
+
+ private static final char CARRIAGE_RETURN = '\n';
+ private static final char LINE_FEED = '\r';
+
+ /**
+ * Converts any <tt>\n</tt> to <tt>line.separator</tt>
+ *
+ * @param string
+ * @return
+ */
+ public static String lineSeparated(final String string) {
+ final StringBuilder buf = new StringBuilder();
+ final String lineSeparator = System.getProperty("line.separator");
+ boolean lastWasLineFeed = false;
+ for (final char c : string.toCharArray()) {
+ final boolean isLineFeed = c == LINE_FEED;
+ final boolean isCarriageReturn = c == CARRIAGE_RETURN;
+ if (isCarriageReturn) {
+ buf.append(lineSeparator);
+ lastWasLineFeed = false;
+ } else {
+ if (lastWasLineFeed) {
+ buf.append(LINE_FEED);
+ }
+ if (isLineFeed) {
+ lastWasLineFeed = true;
+ } else {
+ buf.append(c);
+ lastWasLineFeed = false;
+ }
+ }
+ }
+ if (lastWasLineFeed) {
+ buf.append(LINE_FEED);
+ }
+ return buf.toString();
+ }
+
+ // ////////////////////////////////////////////////////////////
+ // removeTabs, removeLeadingWhiteSpace, stripLeadingSlash, stripNewLines,
+ // normalize
+ // ////////////////////////////////////////////////////////////
+
+ public static String removeTabs(final String text) {
+ // quick return - jvm java should always return here
+ if (text.indexOf('\t') == -1) {
+ return text;
+ }
+ final StringBuffer buf = new StringBuffer();
+ for (int i = 0; i < text.length(); i++) {
+ // a bit clunky to stay with j# api
+ if (text.charAt(i) != '\t') {
+ buf.append(text.charAt(i));
+ }
+ }
+ return buf.toString();
+ }
+
+ public static String removeLeadingWhiteSpace(final String str) {
+ if (str == null) {
+ return null;
+ }
+ return str.replaceAll("^\\W*", "");
+ }
+
+ public static String stripNewLines(final String str) {
+ return str.replaceAll("[\r\n]", "");
+ }
+
+ public static String stripLeadingSlash(final String path) {
+ if (!path.startsWith("/")) {
+ return path;
+ }
+ if (path.length() < 2) {
+ return "";
+ }
+ return path.substring(1);
+ }
+
+ /**
+ * Condenses any whitespace to a single character
+ *
+ * @param str
+ * @return
+ */
+ public static String normalized(final String str) {
+ if (str == null) {
+ return null;
+ }
+ return str.replaceAll("\\s+", " ");
+ }
+
+ public static String[] normalized(final String... strings) {
+ final List<String> stringList = Lists.newArrayList();
+ for (final String string : strings) {
+ stringList.add(normalized(string));
+ }
+ return stringList.toArray(new String[] {});
+ }
+
+ public static String removePrefix(final String name, final String prefix) {
+ if (name.startsWith(prefix)) {
+ return name.substring(prefix.length());
+ } else {
+ return name;
+ }
+ }
+
+ public static <T> T coalesce(final T... strings) {
+ for (final T str : strings) {
+ if (str != null) {
+ return str;
+ }
+ }
+ return null;
+ }
+
+ public static String enumTitle(String string) {
+ return Joiner.on(" ").join(Iterables.transform(Splitter.on("_").split(string), LOWER_CASE_THEN_CAPITALIZE));
+ }
+
+ public static String enumDeTitle(String string) {
+ return Joiner.on("_").join(Iterables.transform(Splitter.on(" ").split(string), UPPER_CASE));
+ }
+
+}
Modified: incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/Threads.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/Threads.java?rev=1358111&r1=1358110&r2=1358111&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/Threads.java (original)
+++ incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/Threads.java Fri Jul 6 10:51:16 2012
@@ -1,33 +1,33 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.isis.core.commons.lang;
-
-public class Threads {
-
- private Threads() {
- }
-
- public static Thread startThread(final Runnable target, final String name) {
- final Thread thread = new Thread(target, name);
- thread.start();
- return thread;
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.isis.core.commons.lang;
+
+public class Threads {
+
+ private Threads() {
+ }
+
+ public static Thread startThread(final Runnable target, final String name) {
+ final Thread thread = new Thread(target, name);
+ thread.start();
+ return thread;
+ }
+
+}
Modified: incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/ThrowableUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/ThrowableUtils.java?rev=1358111&r1=1358110&r2=1358111&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/ThrowableUtils.java (original)
+++ incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/ThrowableUtils.java Fri Jul 6 10:51:16 2012
@@ -1,43 +1,43 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.isis.core.commons.lang;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-
-public final class ThrowableUtils {
-
- public static String stackTraceFor(final Throwable exception) {
- ByteArrayOutputStream baos = null;
- try {
- baos = new ByteArrayOutputStream();
- exception.printStackTrace(new PrintStream(baos));
- return baos.toString();
- } finally {
- if (baos != null) {
- try {
- baos.close();
- } catch (final IOException ignore) {
- }
- }
- }
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.isis.core.commons.lang;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+
+public final class ThrowableUtils {
+
+ public static String stackTraceFor(final Throwable exception) {
+ ByteArrayOutputStream baos = null;
+ try {
+ baos = new ByteArrayOutputStream();
+ exception.printStackTrace(new PrintStream(baos));
+ return baos.toString();
+ } finally {
+ if (baos != null) {
+ try {
+ baos.close();
+ } catch (final IOException ignore) {
+ }
+ }
+ }
+ }
+}
Modified: incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/ToString.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/ToString.java?rev=1358111&r1=1358110&r2=1358111&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/ToString.java (original)
+++ incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/ToString.java Fri Jul 6 10:51:16 2012
@@ -1,181 +1,181 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.isis.core.commons.lang;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-public final class ToString {
-
- public static String createName(final Object forObject) {
- final StringBuffer buffer = new StringBuffer();
- createName(forObject, buffer);
- return buffer.toString();
- }
-
- private static void createName(final Object forObject, final StringBuffer string) {
- string.append(name(forObject));
- string.append("@");
- string.append(Integer.toHexString(forObject.hashCode()));
- }
-
- public static String name(final Object forObject) {
- final String name = forObject.getClass().getName();
- return name.substring(name.lastIndexOf('.') + 1);
- }
-
- public static String timestamp(final Date date) {
- final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd-hhmmssSSS");
- return date == null ? "" : simpleDateFormat.format(date);
- }
-
- public static ToString createWithIdentifier(final Object object) {
- return new ToString(object);
- }
-
- public static ToString createAnonymous(final Object object) {
- final ToString string = new ToString();
- string.append(name(object));
- string.append("[");
- return string;
- }
-
- private boolean addComma = false;
- private final StringBuffer buf;
- private boolean useLineBreaks;
-
- private ToString() {
- buf = new StringBuffer();
- }
-
- public ToString(final Object forObject) {
- buf = new StringBuffer();
- createName(forObject, buf);
- buf.append("[");
- }
-
- public ToString(final Object forObject, final int id) {
- buf = new StringBuffer();
- buf.append(name(forObject));
- buf.append("#");
- buf.append(id);
- buf.append("[");
- }
-
- public ToString(final Object forObject, final String text) {
- this(forObject);
- buf.append(text);
- addComma = text.length() > 0;
- }
-
- public ToString append(final String text) {
- buf.append(text);
- return this;
- }
-
- public ToString append(final String name, final boolean flag) {
- append(name, flag ? "true" : "false");
- return this;
- }
-
- public ToString append(final String name, final byte number) {
- append(name, Byte.toString(number));
- return this;
- }
-
- public ToString append(final String name, final double number) {
- append(name, Double.toString(number));
- return this;
- }
-
- public ToString append(final String name, final float number) {
- append(name, Float.toString(number));
- return this;
- }
-
- public ToString append(final String name, final int number) {
- append(name, Integer.toString(number));
- return this;
- }
-
- public ToString append(final String name, final long number) {
- append(name, Long.toString(number));
- return this;
- }
-
- public ToString append(final String name, final Object object) {
- append(name, object == null ? "null" : object.toString());
- return this;
- }
-
- public ToString append(final String name, final short number) {
- append(name, Short.toString(number));
- return this;
- }
-
- public ToString append(final String name, final String string) {
- if (addComma) {
- this.buf.append(',');
- if (useLineBreaks) {
- this.buf.append("\n\t");
- }
- } else {
- addComma = true;
- }
- this.buf.append(name);
- this.buf.append('=');
- this.buf.append(string);
-
- return this;
- }
-
- public ToString appendAsHex(final String name, final long number) {
- append(name, "#" + Long.toHexString(number));
- return this;
- }
-
- public void appendAsTimestamp(final String name, final Date date) {
- final String dateString = timestamp(date);
- append(name, dateString);
- }
-
- public void appendTruncated(final String name, final String string, final int maxLength) {
- if (string.length() > maxLength) {
- append(name, string.substring(0, maxLength));
- append("...");
- } else {
- append(name, string);
- }
- }
-
- public void setAddComma() {
- this.addComma = true;
- }
-
- public void setUseLineBreaks(final boolean useLineBreaks) {
- this.useLineBreaks = useLineBreaks;
- }
-
- @Override
- public String toString() {
- buf.append(']');
- return buf.toString();
- }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.isis.core.commons.lang;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public final class ToString {
+
+ public static String createName(final Object forObject) {
+ final StringBuffer buffer = new StringBuffer();
+ createName(forObject, buffer);
+ return buffer.toString();
+ }
+
+ private static void createName(final Object forObject, final StringBuffer string) {
+ string.append(name(forObject));
+ string.append("@");
+ string.append(Integer.toHexString(forObject.hashCode()));
+ }
+
+ public static String name(final Object forObject) {
+ final String name = forObject.getClass().getName();
+ return name.substring(name.lastIndexOf('.') + 1);
+ }
+
+ public static String timestamp(final Date date) {
+ final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd-hhmmssSSS");
+ return date == null ? "" : simpleDateFormat.format(date);
+ }
+
+ public static ToString createWithIdentifier(final Object object) {
+ return new ToString(object);
+ }
+
+ public static ToString createAnonymous(final Object object) {
+ final ToString string = new ToString();
+ string.append(name(object));
+ string.append("[");
+ return string;
+ }
+
+ private boolean addComma = false;
+ private final StringBuffer buf;
+ private boolean useLineBreaks;
+
+ private ToString() {
+ buf = new StringBuffer();
+ }
+
+ public ToString(final Object forObject) {
+ buf = new StringBuffer();
+ createName(forObject, buf);
+ buf.append("[");
+ }
+
+ public ToString(final Object forObject, final int id) {
+ buf = new StringBuffer();
+ buf.append(name(forObject));
+ buf.append("#");
+ buf.append(id);
+ buf.append("[");
+ }
+
+ public ToString(final Object forObject, final String text) {
+ this(forObject);
+ buf.append(text);
+ addComma = text.length() > 0;
+ }
+
+ public ToString append(final String text) {
+ buf.append(text);
+ return this;
+ }
+
+ public ToString append(final String name, final boolean flag) {
+ append(name, flag ? "true" : "false");
+ return this;
+ }
+
+ public ToString append(final String name, final byte number) {
+ append(name, Byte.toString(number));
+ return this;
+ }
+
+ public ToString append(final String name, final double number) {
+ append(name, Double.toString(number));
+ return this;
+ }
+
+ public ToString append(final String name, final float number) {
+ append(name, Float.toString(number));
+ return this;
+ }
+
+ public ToString append(final String name, final int number) {
+ append(name, Integer.toString(number));
+ return this;
+ }
+
+ public ToString append(final String name, final long number) {
+ append(name, Long.toString(number));
+ return this;
+ }
+
+ public ToString append(final String name, final Object object) {
+ append(name, object == null ? "null" : object.toString());
+ return this;
+ }
+
+ public ToString append(final String name, final short number) {
+ append(name, Short.toString(number));
+ return this;
+ }
+
+ public ToString append(final String name, final String string) {
+ if (addComma) {
+ this.buf.append(',');
+ if (useLineBreaks) {
+ this.buf.append("\n\t");
+ }
+ } else {
+ addComma = true;
+ }
+ this.buf.append(name);
+ this.buf.append('=');
+ this.buf.append(string);
+
+ return this;
+ }
+
+ public ToString appendAsHex(final String name, final long number) {
+ append(name, "#" + Long.toHexString(number));
+ return this;
+ }
+
+ public void appendAsTimestamp(final String name, final Date date) {
+ final String dateString = timestamp(date);
+ append(name, dateString);
+ }
+
+ public void appendTruncated(final String name, final String string, final int maxLength) {
+ if (string.length() > maxLength) {
+ append(name, string.substring(0, maxLength));
+ append("...");
+ } else {
+ append(name, string);
+ }
+ }
+
+ public void setAddComma() {
+ this.addComma = true;
+ }
+
+ public void setUseLineBreaks(final boolean useLineBreaks) {
+ this.useLineBreaks = useLineBreaks;
+ }
+
+ @Override
+ public String toString() {
+ buf.append(']');
+ return buf.toString();
+ }
+}
Modified: incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/WrapperUtils.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/WrapperUtils.java?rev=1358111&r1=1358110&r2=1358111&view=diff
==============================================================================
--- incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/WrapperUtils.java (original)
+++ incubator/isis/trunk/framework/core/commons/src/main/java/org/apache/isis/core/commons/lang/WrapperUtils.java Fri Jul 6 10:51:16 2012
@@ -1,61 +1,61 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-
-package org.apache.isis.core.commons.lang;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public final class WrapperUtils {
-
- private WrapperUtils() {
- }
-
- private static Map<Class<?>, Class<?>> wrapperClasses = new HashMap<Class<?>, Class<?>>();
-
- static {
- wrapperClasses.put(boolean.class, Boolean.class);
- wrapperClasses.put(byte.class, Byte.class);
- wrapperClasses.put(char.class, Character.class);
- wrapperClasses.put(short.class, Short.class);
- wrapperClasses.put(int.class, Integer.class);
- wrapperClasses.put(long.class, Long.class);
- wrapperClasses.put(float.class, Float.class);
- wrapperClasses.put(double.class, Double.class);
- }
-
- public static Class<?> wrap(final Class<?> primitiveClass) {
- return wrapperClasses.get(primitiveClass);
- }
-
- public static Class<?>[] wrapAsNecessary(final Class<?>[] classes) {
- final List<Class<?>> wrappedClasses = new ArrayList<Class<?>>();
- for (final Class<?> cls : classes) {
- if (cls.isPrimitive()) {
- wrappedClasses.add(wrap(cls));
- } else {
- wrappedClasses.add(cls);
- }
- }
- return wrappedClasses.toArray(new Class[] {});
- }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+package org.apache.isis.core.commons.lang;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public final class WrapperUtils {
+
+ private WrapperUtils() {
+ }
+
+ private static Map<Class<?>, Class<?>> wrapperClasses = new HashMap<Class<?>, Class<?>>();
+
+ static {
+ wrapperClasses.put(boolean.class, Boolean.class);
+ wrapperClasses.put(byte.class, Byte.class);
+ wrapperClasses.put(char.class, Character.class);
+ wrapperClasses.put(short.class, Short.class);
+ wrapperClasses.put(int.class, Integer.class);
+ wrapperClasses.put(long.class, Long.class);
+ wrapperClasses.put(float.class, Float.class);
+ wrapperClasses.put(double.class, Double.class);
+ }
+
+ public static Class<?> wrap(final Class<?> primitiveClass) {
+ return wrapperClasses.get(primitiveClass);
+ }
+
+ public static Class<?>[] wrapAsNecessary(final Class<?>[] classes) {
+ final List<Class<?>> wrappedClasses = new ArrayList<Class<?>>();
+ for (final Class<?> cls : classes) {
+ if (cls.isPrimitive()) {
+ wrappedClasses.add(wrap(cls));
+ } else {
+ wrappedClasses.add(cls);
+ }
+ }
+ return wrappedClasses.toArray(new Class[] {});
+ }
+
+}