Search in sources :

Example 1 with MasterListVersionQuery

use of net.geoprism.registry.MasterListVersionQuery in project geoprism-registry by terraframe.

the class PatchExistsAndInvalid method patchMasterlistVersions.

private void patchMasterlistVersions() {
    final Collection<Locale> locales = LocalizationFacade.getInstalledLocales();
    MasterListVersionQuery query = new MasterListVersionQuery(new QueryFactory());
    try (OIterator<? extends MasterListVersion> it = query.getIterator()) {
        for (MasterListVersion version : it) {
            // ServerGeoObjectType type = version.getMasterlist().getGeoObjectType();
            // We are accessing it in this weird way because MasterList was changed to have new localized attributes. If we run this patch
            // before masterlist is patched then simply instantiating a MasterList object will throw an error when it tries to load the structs.
            BusinessDAO versionDAO = (BusinessDAO) BusinessDAO.get(version.getOid());
            String masterListOid = versionDAO.getValue(MasterListVersion.MASTERLIST);
            BusinessDAO masterListDAO = (BusinessDAO) BusinessDAO.get(masterListOid);
            String universalOid = masterListDAO.getValue(MasterList.UNIVERSAL);
            ServerGeoObjectType type = ServerGeoObjectType.get(Universal.get(universalOid));
            // Patch metadata
            // AttributeType existsAttr = type.getAttribute(DefaultAttribute.EXISTS.getName()).get();
            // MasterListVersion.createMdAttributeFromAttributeType(version, type, existsAttr, locales);
            AttributeType invalidAttr = type.getAttribute(DefaultAttribute.INVALID.getName()).get();
            MasterListVersion.createMdAttributeFromAttributeType(version, type, invalidAttr, locales);
            // Instance data is too hard to patch. We're just going to republish all the lists
            logger.info("Master list version [" + version.getKey() + "] has been queued for republishing.");
            PublishMasterListVersionJob job = new PublishMasterListVersionJob();
            job.setMasterListVersion(version);
            job.setMasterListId(masterListOid);
            job.apply();
            // job.start();
            // JobHistory history = job.createNewHistory();
            JobHistory history = new JobHistory();
            history.setStartTime(new Date());
            history.addStatus(AllJobStatus.QUEUED);
            history.apply();
            JobHistoryRecord record = new JobHistoryRecord(job, history);
            record.apply();
        }
    }
}
Also used : Locale(java.util.Locale) QueryFactory(com.runwaysdk.query.QueryFactory) BusinessDAO(com.runwaysdk.dataaccess.BusinessDAO) MdBusinessDAO(com.runwaysdk.dataaccess.metadata.MdBusinessDAO) JobHistory(com.runwaysdk.system.scheduler.JobHistory) ServerGeoObjectType(net.geoprism.registry.model.ServerGeoObjectType) MasterListVersion(net.geoprism.registry.MasterListVersion) PublishMasterListVersionJob(net.geoprism.registry.etl.PublishMasterListVersionJob) Date(java.util.Date) MasterListVersionQuery(net.geoprism.registry.MasterListVersionQuery) AttributeType(org.commongeoregistry.adapter.metadata.AttributeType) JobHistoryRecord(com.runwaysdk.system.scheduler.JobHistoryRecord)

Aggregations

BusinessDAO (com.runwaysdk.dataaccess.BusinessDAO)1 MdBusinessDAO (com.runwaysdk.dataaccess.metadata.MdBusinessDAO)1 QueryFactory (com.runwaysdk.query.QueryFactory)1 JobHistory (com.runwaysdk.system.scheduler.JobHistory)1 JobHistoryRecord (com.runwaysdk.system.scheduler.JobHistoryRecord)1 Date (java.util.Date)1 Locale (java.util.Locale)1 MasterListVersion (net.geoprism.registry.MasterListVersion)1 MasterListVersionQuery (net.geoprism.registry.MasterListVersionQuery)1 PublishMasterListVersionJob (net.geoprism.registry.etl.PublishMasterListVersionJob)1 ServerGeoObjectType (net.geoprism.registry.model.ServerGeoObjectType)1 AttributeType (org.commongeoregistry.adapter.metadata.AttributeType)1