@Override
 public TemplateCollectionModel keys() throws TemplateModelException {
   Iterator<String> result = null;
   try {
     result = binaryNodeData.getAttributeNames().iterator();
   } catch (RepositoryException e) {
     // don't care
   }
   return (TemplateCollectionModel) wrapper.wrap(result);
 }
  @Override
  public int size() throws TemplateModelException {
    int result = 0;

    try {
      result = binaryNodeData.getAttributeNames().size();
    } catch (RepositoryException e) {
      // don't care
    }

    return result;
  }
 @Override
 public TemplateCollectionModel values() throws TemplateModelException {
   ArrayList<String> result = new ArrayList<String>();
   try {
     Iterator<String> iter = binaryNodeData.getAttributeNames().iterator();
     while (iter.hasNext()) {
       result.add(iter.next());
     }
   } catch (RepositoryException e) {
     // don't care
   }
   return (TemplateCollectionModel) wrapper.wrap(result.iterator());
 }