diff -r 000000000000 -r 522a326673b6 sysmodelmgr/com.symbian.smt.gui/src/com/symbian/smt/gui/Helper.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysmodelmgr/com.symbian.smt.gui/src/com/symbian/smt/gui/Helper.java Thu Mar 11 19:08:43 2010 +0200 @@ -0,0 +1,198 @@ +// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// +package com.symbian.smt.gui; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * A helper class for general usage. + * + * @author barbararosi-schwartz + * + */ +public final class Helper { + + /** + * Concatenates the strings in the provided array using the provided + * separator and returns the concatenated string. + * + * @param separator + * the separator to be used for the concatenation + * @param items + * the array of strings to be concatenated + * @return the concatenated String or an empty String if the provided array + * is null or empty. + */ + public static String concatenateString(String separator, String[] items) { + StringBuilder joinedString = new StringBuilder(); + + if (items != null) { + for (String item : items) { + joinedString.append(item); + joinedString.append(separator); + } + + if (joinedString.length() > 0) { + joinedString.deleteCharAt(joinedString.length() - 1); + } + } + + return joinedString.toString(); + } + + /** + * Adds the absolute location represented by the provided rootLocation to + * the filenames + * + * @param filenames + * the String representing the relative filenames, separated by + * the provided separator + * @param rootLocation + * the String representing the location of the root of the + * filesystem that will turn the relative paths into absolute + * ones + * @param separator + * the String representing the separator that separates the file + * names + * @return the String representing the separator separated absolute + * filenames + */ + public static String relative2AbsolutePaths(String filenames, + String rootLocation, String separator) { + String[] relativeNames = Helper.splitString(filenames, separator); + String[] absoluteNames = new String[relativeNames.length]; + int i = 0; + + for (String name : relativeNames) { + if (name.startsWith(".")) { + try { + name = new File(rootLocation + name).getCanonicalPath(); + } catch (IOException e) { + Logger.log(e.getMessage(), e); + } + } + + absoluteNames[i] = name; + i++; + } + + return concatenateString(separator, absoluteNames); + } + + /** + * Splits the provided concatenated string into its constituent parts based + * upon the provided separator and returns an array of the constituents. If + * the provided input is null or empty, returns an empty array. + * + * @param concatenatedString + * a String containing components separated by the given + * separator + * @param separator + * the separator used + * @return an array of String with the separate components or an empty array + * if concatenatedString is null or empty + */ + public static String[] splitString(String concatenatedString, + String separator) { + if (separator.equals("|")) { + separator = "\\|"; + } + + if (concatenatedString != null && concatenatedString.length() > 0) { + return concatenatedString.split(separator); + } else { + String[] empty = {}; + return empty; + } + } + + /** + * Converts the List of String objects into a String array. The opposite + * conversion is also provided by this class with method + * toListofStrings(String []). + * + * @param list + * the java.util.List of String objects to be converted (may be + * empty but cannot be null) + * @return the corresponding String array or an empty array if list is + * empty. + * @see #toListofStrings(String []) + */ + public static final String[] toArrayOfStrings(List list) { + if (list == null) { + throw new IllegalArgumentException("Parameter list cannot be null."); + } + + String[] array = new String[list.size()]; + + return list.toArray(array); + } + + /** + * Converts the provided ResourcesEnums array into a java.util.List + * containing the args of the provided ResourceEnums. + * + * @param array + * the array of ResourcesEnums objects to be converted (may be + * empty but cannot be null) + * @return the corresponding List of String args or an empty List if array + * is empty + */ + public static final List toListOfStrings(ResourcesEnums[] array) { + if (array == null) { + throw new IllegalArgumentException( + "Parameter array cannot be null."); + } + + ArrayList arrayList = new ArrayList(); + + for (ResourcesEnums re : array) { + arrayList.add(re.arg()); + } + + return arrayList; + } + + /** + * Converts the provided String array into a java.util.List. The opposite + * conversion is also provided by this class with method + * toArrayOfStrings(List). + * + * @param array + * the array of String objects to be converted (may be empty but + * cannot be null) + * @return the corresponding List of String objects or an empty List if + * array is empty + * @see #toArrayOfStrings(List) + */ + public static final List toListOfStrings(String[] array) { + if (array == null) { + throw new IllegalArgumentException( + "Parameter array cannot be null."); + } + + ArrayList arrayList = new ArrayList(); + + for (String s : array) { + arrayList.add(s); + } + + return arrayList; + } + +}