@Override public TemplateModel get(String key) throws TemplateModelException { Object result = null; if (key.startsWith("@")) { if (key.equals("@handle")) { result = binaryNodeData.getHandle(); } } else if (key.equals(FileProperties.CONTENT_TYPE)) { result = binaryNodeData.getAttribute(FileProperties.PROPERTY_CONTENTTYPE); } else if (key.equals(FileProperties.NAME)) { String filename = binaryNodeData.getAttribute(FileProperties.PROPERTY_FILENAME); String ext = binaryNodeData.getAttribute(FileProperties.PROPERTY_EXTENSION); result = filename + ((StringUtils.isEmpty(ext)) ? "" : "." + ext); } else if (key.equals(FileProperties.PROPERTY_FILENAME)) { result = binaryNodeData.getAttribute(FileProperties.PROPERTY_FILENAME); } else if (key.equals(FileProperties.PROPERTY_EXTENSION)) { result = binaryNodeData.getAttribute(FileProperties.PROPERTY_EXTENSION); } else if (key.equals(FileProperties.PROPERTY_LASTMODIFIED)) { try { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); result = format.parse(binaryNodeData.getAttribute(FileProperties.PROPERTY_LASTMODIFIED)); } catch (ParseException e) { // do nothing. } } else { result = binaryNodeData.getAttribute(key); } return wrapper.wrap(result); }
@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 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()); }