@Override
 public ViewDef getViewDefByName(String name) {
   ViewDef vd = null; // dynamicViewDefs.get(name);
   if (vd == null) {
     ViewDefDef vdd = vddDAO.findByName(name);
     if (vdd != null) {
       //				Map<String, ViewDefDefColDef> colViewDefs = new HashMap<String, ViewDefDefColDef>();
       //				for(ViewDefDefColDef cdef: vdd.cols) {
       //					String view = cdef.viewdefCode;
       //					if (ctx.containsBean(view)) {
       //						colViewDefs.put(cdef.fieldName, ctx.getBean(view, ViewDef.class));
       //					}
       //				}
       try {
         vd =
             (ViewDef)
                 Class.forName(vdd.primaryViewDefClassName)
                     .getConstructor(
                         RosterService.class,
                         IPatientDAO.class,
                         TreeSet.class,
                         ApplicationContext.class)
                     .newInstance(rosterService, patientDAO, vdd.cols, ctx);
         vd.init(null);
       } catch (IllegalArgumentException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
       } catch (SecurityException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
       } catch (InstantiationException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
       } catch (IllegalAccessException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
       } catch (InvocationTargetException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
       } catch (NoSuchMethodException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
       } catch (ClassNotFoundException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
       }
     }
   }
   return vd;
 }
 @Override
 public void setViewDefDef(ViewDefDef def) {
   vddDAO.save(def);
 }