List of usage examples for org.springframework.beans.factory.xml XmlBeanFactory getBeansOfType
@Override public <T> Map<String, T> getBeansOfType(@Nullable Class<T> type) throws BeansException
From source file:gda.data.metadata.icat.XMLIcat.java
@Override protected String getValue(String visitIDFilter, String userNameFilter, String accessName) throws Exception { String filepath = "file:" + LocalProperties.get(URL_PROP); Resource xmlfile = new FileSystemResourceLoader().getResource(filepath); XmlBeanFactory bf = new XmlBeanFactory(xmlfile); long tolerance = LocalProperties.getAsInt(SHIFT_TOL_PROP, 1440); // if not filtering on visit ID if (visitIDFilter == null || visitIDFilter.isEmpty()) { //loop over all the beans String values = ""; Map<String, XMLIcatEntry> beans = bf.getBeansOfType(XMLIcatEntry.class); for (XMLIcatEntry bean : beans.values()) { // filter on username String names[] = bean.getUsernames().split(","); if (ArrayUtils.contains(names, userNameFilter)) { // filter on date Date now;/*w w w.j ava2s . c o m*/ if (operatingDate != null) { now = operatingDate; } else { now = new Date(); } Date start = formatter.parse(bean.getExperimentStart()); Date end = formatter.parse(bean.getExperimentStart()); start.setTime(start.getTime() - tolerance * 60000);// tolerance is in minutes but getTime returns in // ms end.setTime(end.getTime() + tolerance * 60000); // tolerance is in minutes but getTime returns in ms if (now.after(start) && now.before(end)) { // add to return string try { if (values.isEmpty()) { values = BeanUtils.getProperty(bean, accessName); } else { values += "," + BeanUtils.getProperty(bean, accessName); } } catch (Exception e) { logger.warn("Exception trying to get property " + accessName + " from bean.", e); } } } } // return the values string if (values.isEmpty()) { return null; } return values; } // else find the experiment for that visit and get its property XMLIcatEntry visit = bf.getBean(visitIDFilter, XMLIcatEntry.class); String names[] = visit.getUsernames().split(","); if (ArrayUtils.contains(names, userNameFilter)) { try { return BeanUtils.getProperty(visit, accessName); } catch (Exception e) { logger.warn("Exception trying to get property " + accessName + " from bean.", e); } } // else return null; }