+++ /dev/null
-/**\r
- * This document is a part of the source code and related artifacts\r
- * for CollectionSpace, an open source collections management system\r
- * for museums and related institutions:\r
- *\r
- * http://www.collectionspace.org\r
- * http://wiki.collectionspace.org\r
- *\r
- * Copyright (c) 2009 Regents of the University of California\r
- *\r
- * Licensed under the Educational Community License (ECL), Version 2.0.\r
- * You may not use this file except in compliance with this License.\r
- *\r
- * You may obtain a copy of the ECL 2.0 License at\r
- * https://source.collectionspace.org/collection-space/LICENSE.txt\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-\r
-package org.collectionspace.services.common;\r
-\r
-import org.apache.commons.jexl2.Expression;\r
-import org.apache.commons.jexl2.JexlContext;\r
-import org.apache.commons.jexl2.JexlEngine;\r
-import org.apache.commons.jexl2.MapContext;\r
-\r
-import java.io.File;\r
-import java.util.regex.Pattern;\r
-import java.util.regex.Matcher;\r
-\r
-/** General utility methods.\r
- * @author Laramie Crocker\r
- */\r
-public class Tools {\r
- /** @return first glued to second with the separator string, at most one time - useful for appending paths.\r
- */\r
- public static String glue(String first, String separator, String second){\r
- if (first==null) { first = ""; }\r
- if (second==null) { second = ""; }\r
- if (separator==null) { separator = ""; }\r
- if (first.startsWith(separator) && second.startsWith(separator)){\r
- return first.substring(0, first.length()-separator.length()) + second;\r
- }\r
- if (first.endsWith(separator) || second.startsWith(separator)){\r
- return first+second;\r
- }\r
- return first+separator+second;\r
- }\r
-\r
- /** Handles null strings as empty. */\r
- public static boolean isEmpty(String str){\r
- return !notEmpty(str);\r
- }\r
-\r
- /** Handles null strings as empty. */\r
- public static boolean notEmpty(String str){\r
- if (str==null) return false;\r
- if (str.length()==0) return false;\r
- return true;\r
- }\r
-\r
- /** Handles null strings as false. */\r
- public static boolean isTrue(String test){\r
- return notEmpty(test) && (new Boolean(test)).booleanValue();\r
- }\r
-\r
- /* Example usage of searchAndReplace:\r
- for (Map.Entry<String,String> entry : variablesMap.entrySet()){\r
- String key = entry.getKey();\r
- String replace = entry.getValue();\r
- String find = "\\$\\{"+key+"\\}"; //must add expression escapes\r
- //because $ and braces are "special", and we want to find "${object.CSID}"\r
- uri = Tools.searchAndReplace(uri, find, replace);\r
- System.out.println("---- REPLACE.uri: "+initURI);\r
- System.out.println("---- REPLACE.find: "+find);\r
- System.out.println("---- REPLACE.replace: "+replace);\r
- System.out.println("---- REPLACE.uri result: "+uri);\r
- }\r
- */\r
- public static String searchAndReplace(String source, String find, String replace){\r
- Pattern pattern = Pattern.compile(find);\r
- Matcher matcher = pattern.matcher(source);\r
- String output = matcher.replaceAll(replace);\r
- return output;\r
- }\r
-\r
- static boolean m_fileSystemIsDOS = "\\".equals(File.separator);\r
- static boolean m_fileSystemIsMac = ":".equals(File.separator);\r
-\r
- public static boolean fileSystemIsDOS(){return m_fileSystemIsDOS;}\r
- public static boolean fileSystemIsMac(){return m_fileSystemIsMac;}\r
-\r
- public static String fixFilename(String filename){\r
- if ( m_fileSystemIsDOS ) {\r
- return filename.replace('/', '\\');\r
- }\r
- if ( m_fileSystemIsMac ) {\r
- String t = filename.replace('/', ':');\r
- t = t.replace('\\', ':');\r
- return t;\r
- }\r
- return filename.replace('\\','/');\r
- }\r
-\r
- public static String join(String dir, String file){\r
- if ( dir.length() == 0 ) {\r
- return file;\r
- }\r
- dir = Tools.fixFilename(dir);\r
- file = Tools.fixFilename(file);\r
- if ( ! dir.endsWith(File.separator) ) {\r
- dir += File.separator;\r
- }\r
- if ( file.startsWith(File.separator) ) {\r
- file = file.substring(1);\r
- }\r
- return dir + file;\r
- }\r
-\r
-\r
-\r
-}\r