Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 208
  • Last Modified:

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

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
kullyN
Asked:
kullyN
  • 6
  • 3
1 Solution
 
zzynxSoftware engineerCommented:
>>... 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
 
kullyNAuthor Commented:
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
 
zzynxSoftware engineerCommented:
Well, then this is how you retrieve that collection:

Collection coll = (Collection) result.get(CommonConstants.PARAM_RESULTS);
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
zzynxSoftware engineerCommented:
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
 
zzynxSoftware engineerCommented:
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
 
kullyNAuthor Commented:
none of these have worked, sorry
0
 
zzynxSoftware engineerCommented:
>> 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
 
kullyNAuthor Commented:
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
 
zzynxSoftware engineerCommented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 6
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now