private Map<String, Object> getValueByMapKeys(Object actualItem) {
   Map<String, Object> map = new HashMap<String, Object>();
   for (String property : expected.keySet()) {
     Object value = PropertyAccessor.getPropertyByOgnl(actualItem, property, true);
     map.put(property, value);
   }
   return map;
 }
 public boolean matches(Object actual) {
   if (ArrayHelper.isCollOrArray(actual) == false) {
     buff.append("PropertyItemsMatcher, the actual value must be a array or collection.");
     return false;
   }
   List list = ListHelper.toList(actual);
   actualItems = PropertyAccessor.getPropertyOfList(list, property, true);
   for (Object item : actualItems) {
     boolean match = this.matcher.matches(item);
     if (match == false) {
       return false;
     }
   }
   return true;
 }