/*
* 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;
}
}