Solved

How can I retrieve data from a collection which is within a map?

Posted on 2004-10-12
11
197 Views
Last Modified: 2010-03-31
This function makes a call to listCustomerbyRef which then returns a map which includes 1) param   2) collection of customer details. i need to access these customer details from the collection and have the correct commands (commented out below at bottom of code) - but i cant retrieve these values

public void testListCustomersByRef() {
            
try{
                  TestableCustomerManager cm = new TestableCustomerManager();
                  Collection cusRef = new ArrayList();
                  Map result;
                  cusRef.add("0000564");
                  
                  result = cm.listCustomersByRef(cusRef,1);

                         //code missing to go here

                  
                  /*      cust.setRef((String) result.get("ref"));
                      cust.setName((String) result.get("name"));
                      cust.setRulesRow((Long) result.get("rules_row"));
                      cust.setLftCode((String) result.get("lftCode"));
                      cust.setLunCode((String) result.get("lunCode"));
                        System.out.println(cust.getName());
               
               
               
                CustContact custContact = new CustContact();
                custContact.setTitle((String) result.get("title"));
                custContact.setForename((String) result.get("forename"));
                custContact.setSurname((String) result.get("surname"));
                custContact.setTelNo((String) result.get("telNo"));
                custContact.setFaxNumber((String) result.get("faxNumber"));
                  System.out.println(custContact.getForename());
               
               
               
                Address address = new Address();
                address.setAddLine1((String) result.get("addLine1"));
                address.setAddLine2((String) result.get("addLine2"));
                address.setAddLine3((String) result.get("addLine3"));
                address.setAddLine4((String) result.get("addLine4"));
                address.setAddLine5((String) result.get("addLine5"));
                address.setPostTown((String) result.get("postTown"));
                address.setPostcode((String) result.get("postcode"));
                address.setCountry((String) result.get("country"));
               
                custContact.setAddress(address);
                //cust.setCustContacts((Set)custContact);
                  
                  System.out.println(cust.getName());
                  System.out.println("Tested listCustomersByRef method");*/
            }
            catch(ReadException e){
                  System.out.println(e.getMessage());
            }
            catch(Exception e){
                  System.out.println(e.getMessage());
            }
      }
0
Comment
Question by:kullyN
  • 6
  • 3
11 Comments
 
LVL 37

Accepted Solution

by:
zzynx earned 250 total points
Comment Utility
>>... returns a map which includes 1) param   2) collection of customer details
What type of collection is that collection? List, Map, Set,...?

First you have to know which is the key (e.g. "coll")

List theCollection = (List) result.get("coll");
theCollection.get(0) gets the first element in that collection
0
 

Author Comment

by:kullyN
Comment Utility
This is the code from the class which returns the map:


Collection coll = getCollectionFromSql(sQuery, params, true, pageno, true, true);
            HashMap result = new HashMap(2);
            result.put(CommonConstants.PARAM_RESULTS, coll);
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
Well, then this is how you retrieve that collection:

Collection coll = (Collection) result.get(CommonConstants.PARAM_RESULTS);
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
And afterwards:

Iterator it = coll.iterator();
while (it.hasNext()) {
   ItemType item = (ItemType) it.next();  // ItemType being the type of the items in the collection
}
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 37

Expert Comment

by:zzynx
Comment Utility
But Collection is just an interface
These are the classes that implement that interface:
AbstractCollection, AbstractList, AbstractSet, ArrayList, BeanContextServicesSupport, BeanContextSupport, HashSet, LinkedHashSet, LinkedList, TreeSet, Vector

It would be handy if you knew which one it was...
0
 

Author Comment

by:kullyN
Comment Utility
none of these have worked, sorry
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
>> none of these have worked
What do you get?

Does

    result.containsKey(CommonConstants.PARAM_RESULTS)

return true?

If not, the collection simply isn't available in the map.
0
 

Author Comment

by:kullyN
Comment Utility
i get null print statements

TestableCustomerManager cm = new TestableCustomerManager();
                  Collection cusRef = new ArrayList();
                  Map result;
                  
                  cusRef.add("0000564");
                  
                  result = cm.listCustomersByRef(cusRef,1);
                  Collection customers = (Collection)result.get(CommonConstants.PARAM_RESULTS);
                  
                  Iterator it = customers.iterator();
                  while (it.hasNext()) {
                     String item = (String) it.next();  // ItemType being the type of the items in the collection
                     System.out.println(item);
                  }
                  
0
 
LVL 37

Expert Comment

by:zzynx
Comment Utility
What can I say?
If null's are coming out, that means that null's were added.
Time to critically investigate the working of

          result = cm.listCustomersByRef(cusRef,1);
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now