/*
* visitante: Web analytic using Hadoop Map Reduce
* Author: Pranab Ghosh
*
* 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.
*/
package org.visitante.util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
*
* @author pranab
*/
public class Util {
public static List<String> splitTokens(String text) {
return splitTokens(text, ",");
}
public static List<String> splitTokens(String text, String delim){
List<String> tokens = new ArrayList<String>();
String[] tokenArr = text.split(delim);
for (String token : tokenArr){
tokens.add(token.trim());
}
return tokens;
}
public static String concatTokens(Collection<?> tokens){
return concatTokens( tokens, ",");
}
public static String concatTokens(Collection<?> tokens, String delim){
String text="";
StringBuilder stBuilder = new StringBuilder();
for (Object token : tokens){
stBuilder.append(token).append(delim);
}
text = stBuilder.substring(0, stBuilder.length() - 1);
return text;
}
public static <T> List<T> getSubList(List<T> list, int start, int end){
List<T> subList = new ArrayList<T>();
int len = list.size();
if (start >= 0 && end > start && end <= len ){
for (int i = start; i < end; ++i){
subList.add(list.get(i));
}
}
return subList;
}
public static <T> List<T> getSubList(List<T> list, List<Integer> selectors){
List<T> subList = new ArrayList<T>();
int len = list.size();
for (int i : selectors){
if (i >= len){
throw new IllegalArgumentException("Index out of range of source list");
}
subList.add(list.get(i));
}
return subList;
}
}