@Override @Transactional(readOnly = true) public List<EncounterVisitHandler> getEncounterVisitHandlers() { return HandlerUtil.getHandlersForType(EncounterVisitHandler.class, null); }
/** * Fetches all validators that are registered * * @param obj the object that will be validated * @return list of compatible validators */ protected List<Validator> getValidators(Object obj) { List<Validator> matchingValidators = new ArrayList<>(); List<Validator> validators = HandlerUtil.getHandlersForType(Validator.class, obj.getClass()); for (Validator validator : validators) { if (validator.supports(obj.getClass())) { matchingValidators.add(validator); } } return matchingValidators; }
throw new IllegalArgumentException("You must specify both a handlerType and a type"); List<H> handlers = getHandlersForType(handlerType, type); if (handlers == null || handlers.isEmpty()) { throw new APIException("handler.type.not.found", new Object[] { handlerType, type });
/** * @see HandlerUtil#getHandlerForType(Class, Class) */ @Test public void getHandlersForType_shouldReturnAListOfAllClassesThatCanHandleThePassedType() { List<Validator> l = HandlerUtil.getHandlersForType(Validator.class, Order.class); Assert.assertEquals(1, l.size()); Assert.assertEquals(OrderValidator.class, l.iterator().next().getClass()); l = HandlerUtil.getHandlersForType(Validator.class, DrugOrder.class); Assert.assertEquals(2, l.size()); }
/** * @see HandlerUtil#getHandlerForType(Class, Class) */ @Test public void getHandlersForType_shouldReturnAnEmptyListIfNoClassesCanHandleThePassedType() { List<Validator> l = HandlerUtil.getHandlersForType(Validator.class, PatientValidator.class); Assert.assertNotNull(l); Assert.assertEquals(0, l.size()); }
List<H> handlers = HandlerUtil.getHandlersForType(handlerType, openmrsObjectClass);