/* * CDDL HEADER START * * The contents of this file are subject to the terms of the Common Development * and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at * src/com/vodafone360/people/VODAFONE.LICENSE.txt or * http://github.com/360/360-Engine-for-Android * See the License for the specific language governing permissions and * limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each file and * include the License file at src/com/vodafone360/people/VODAFONE.LICENSE.txt. * If applicable, add the following below this CDDL HEADER, with the fields * enclosed by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * Copyright 2010 Vodafone Sales & Services Ltd. All rights reserved. * Use is subject to license terms. */ package com.vodafone360.people.service.io.api; import java.util.Hashtable; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Vector; import com.vodafone360.people.datatypes.Contact; import com.vodafone360.people.datatypes.ContactDetail; import com.vodafone360.people.datatypes.GroupItem; /** * Class which provides helper functions for assembling Vectors of data prior to * Hessian encoding. */ public class ApiUtils { /** * Create a Hash table from supplied Map, this is passed to Hessian encoder * to create Hessian encoded request body. * * @param map The source map. * @return Hash table from supplied Map. */ protected static Hashtable<String, Object> createHashTable(Map<String, List<String>> map) { Hashtable<String, Object> hashtable = new Hashtable<String, Object>(); Set<Map.Entry<String, List<String>>> set = map.entrySet(); for (Map.Entry<String, List<String>> obj : set) { hashtable.put(obj.getKey(), new Vector<String>(obj.getValue())); } return hashtable; } /** * Create vector from list of ContactDetails. This vector is passed to the * Hessian encoder for generation of Hessian encoded message body. * * @param list List of contact details. * @return New vector. */ protected static Vector<Object> createVectorOfContactDetail(List<ContactDetail> list) { Vector<Object> vector = new Vector<Object>(); for (int i = 0; i < list.size(); i++) { vector.add(list.get(i).createHashtable()); } return vector; } /** * Create Vector of of Hash table items from a list of Contacts (each * Contact being represented by a Hash table). This is supplied to Hessian * encoder. * * @param list List-array of Contacts. * @return Vector of Hash-tables representing Contact list. */ protected static Vector<Object> createVectorOfContact(List<Contact> list) { Vector<Object> vector = new Vector<Object>(); for (int i = 0; i < list.size(); i++) { vector.add(list.get(i).createHashtable()); } return vector; } /** * Create Vector of of Hash table items from a list of GroupItems (each * GroupItems being represented by a Hash table). This is supplied to * Hessian encoder. * * @param list List-array of Contacts. * @return Vector of Hash-tables representing GroupItems list. */ protected static Vector<Object> createVectorOfGroup(List<GroupItem> list) { Vector<Object> vector = new Vector<Object>(); for (int i = 0; i < list.size(); i++) { vector.add(list.get(i).createHashtable()); } return vector; } }