private void doUpdate(Session hSession) throws HibernateException { MetadataTable tUpdates = getMetadataTable(MetadataTable.UPDATE); Iterator i = mClasses.values().iterator(); while (i.hasNext()) { MClass clazz = (MClass) i.next(); Set hUpdates = new HashSet(); List updates = tUpdates.getDataRows(clazz.getPath()); if (updates != null) { Iterator j = updates.iterator(); while (j.hasNext()) { Metadata md = (Metadata) j.next(); Update hUpdate = new Update(); hUpdate.setMClass(clazz); hUpdate.setUpdateName(md.getAttribute("UpdateName")); hUpdate.setDescription(md.getAttribute("Description")); hUpdate.setKeyField(md.getAttribute("KeyField")); hUpdate.updateLevel(); hSession.save(hUpdate); hUpdates.add(hUpdate); mUpdates.put(hUpdate.getPath(), hUpdate); } } clazz.setUpdates(hUpdates); hSession.saveOrUpdate(clazz); } }
private void loadMetadata() throws RetsServerException { MetadataLoader loader = new MetadataLoader(); MSystem system = loader.parseMetadataDirectory(); Iterator j = system.getResources().iterator(); while (j.hasNext()) { Resource res = (Resource) j.next(); Iterator k = res.getClasses().iterator(); while (k.hasNext()) { MClass clazz = (MClass) k.next(); mClasses.put(clazz.getPath(), clazz); Iterator l = clazz.getTables().iterator(); while (l.hasNext()) { Table table = (Table) l.next(); mTables.put(table.getPath(), table); } } } }
private void doClasses(Session hSession) throws HibernateException { MetadataTable tClass = getMetadataTable(MetadataTable.CLASS); Iterator i = mResources.values().iterator(); while (i.hasNext()) { Resource resource = (Resource) i.next(); Set hClasses = new HashSet(); List classes = tClass.getDataRows(resource.getPath()); Iterator j = classes.iterator(); while (j.hasNext()) { Metadata md = (Metadata) j.next(); MClass hClass = new MClass(); hClass.setResource(resource); String className = md.getAttribute("ClassName"); hClass.setClassName(className); hClass.setStandardName(ClassStandardNameEnum.fromString(md.getAttribute("StandardName"))); hClass.setVisibleName(md.getAttribute("VisibleName")); hClass.setDescription(md.getAttribute("Description")); StringBuffer tmp = new StringBuffer("rets_"); tmp.append(resource.getResourceID()).append("_"); tmp.append(hClass.getClassName()); hClass.setDbTable(tmp.toString()); hClass.updateLevel(); hSession.save(hClass); hClasses.add(hClass); mClasses.put(hClass.getPath(), hClass); } resource.setClasses(hClasses); hSession.saveOrUpdate(resource); } }
private void doTable(Session hSession) throws HibernateException { MetadataTable tTables = getMetadataTable(MetadataTable.TABLE); Iterator i = mClasses.values().iterator(); while (i.hasNext()) { MClass hClass = (MClass) i.next(); Set hTables = new HashSet(); List tables = tTables.getDataRows(hClass.getPath()); if (tables != null) { Iterator j = tables.iterator(); while (j.hasNext()) { Metadata md = (Metadata) j.next(); Table hTable = new Table(); hTable.setMClass(hClass); hTable.setSystemName(md.getAttribute("SystemName")); String standardName = md.getAttribute("StandardName"); TableStandardName tsn = lookupTableStandardName(standardName); if (tsn == null) { if (!standardName.equals("")) { tsn = new TableStandardName(standardName); mTableStandardNames.put(standardName, tsn); hSession.save(tsn); } } hTable.setStandardName(tsn); hTable.setLongName(md.getAttribute("LongName")); String tmp = md.getAttribute("DbName"); if (tmp.startsWith("r_")) { hTable.setDbName(StringUtils.substring(tmp, 0, 10)); } else { hTable.setDbName(StringUtils.substring("r_" + tmp, 0, 10)); } hTable.setShortName(md.getAttribute("ShortName")); hTable.setMaximumLength(Integer.parseInt(md.getAttribute("MaximumLength"))); hTable.setDataType(DataTypeEnum.fromString(md.getAttribute("DataType"))); hTable.setPrecision(Integer.parseInt(md.getAttribute("Precision"))); hTable.setSearchable(boolValue(md.getAttribute("Searchable"))); hTable.setInterpretation( InterpretationEnum.fromString(md.getAttribute("Interpretation"))); hTable.setAlignment(AlignmentEnum.fromString(md.getAttribute("Alignment"))); hTable.setUseSeparator(boolValue(md.getAttribute("UseSeparator"))); String editMasksJoined = md.getAttribute("EditMaskID"); String resourcePath = hClass.getResource().getPath(); String path = null; Set hEditMasks = new HashSet(); if (editMasksJoined != null) { String editMasks[] = StringUtils.split(editMasksJoined, ","); for (int c = 0; c < editMasks.length; c++) { path = resourcePath + ":" + StringUtils.trimToEmpty(editMasks[c]); EditMask em = (EditMask) mEditMasks.get(path); hEditMasks.add(em); if (em == null) { LOG.error("edit mask null for path: " + path); } } } hTable.setEditMasks(hEditMasks); String lookupName = md.getAttribute("LookupName"); path = resourcePath + ":" + lookupName; Lookup lookup = (Lookup) mLookups.get(path); hTable.setLookup(lookup); hTable.setMaxSelect(Integer.parseInt(md.getAttribute("MaxSelect"))); hTable.setUnits(UnitEnum.fromString(md.getAttribute("Units"))); hTable.setIndex(Integer.parseInt(md.getAttribute("Index"))); hTable.setMinimum(Integer.parseInt(md.getAttribute("Minimum"))); hTable.setMaximum(Integer.parseInt(md.getAttribute("Maximum"))); hTable.setDefault(Integer.parseInt(md.getAttribute("Default"))); hTable.setRequired(Integer.parseInt(md.getAttribute("Required"))); String searchHelpID = md.getAttribute("SearchHelpID"); path = resourcePath + ":" + searchHelpID; SearchHelp searchHelp = (SearchHelp) mSearchHelps.get(path); hTable.setSearchHelp(searchHelp); // String = md.getAttribute("unique"); hTable.setUnique(boolValue(md.getAttribute("Unique"))); hTable.updateLevel(); hSession.save(hTable); hTables.add(hTable); mTables.put(hTable.getPath(), hTable); } hClass.setTables(hTables); hSession.saveOrUpdate(hClass); } } }