/** * Creates an XML escaped copy of the specified business object data key. * * @param businessObjectDataKey the business object data key * * @return the XML escaped business object data key */ private BusinessObjectDataKey escapeXmlBusinessObjectDataKey(final BusinessObjectDataKey businessObjectDataKey) { // Escape sub-partition values, if they are present. List<String> escapedSubPartitionValues = null; if (businessObjectDataKey.getSubPartitionValues() != null) { escapedSubPartitionValues = new ArrayList<>(); for (String subPartitionValue : businessObjectDataKey.getSubPartitionValues()) { escapedSubPartitionValues.add(escapeXml(subPartitionValue)); } } // Build and return an XML escaped business object data key. return new BusinessObjectDataKey(escapeXml(businessObjectDataKey.getNamespace()), escapeXml(businessObjectDataKey.getBusinessObjectDefinitionName()), escapeXml(businessObjectDataKey.getBusinessObjectFormatUsage()), escapeXml(businessObjectDataKey.getBusinessObjectFormatFileType()), businessObjectDataKey.getBusinessObjectFormatVersion(), escapeXml(businessObjectDataKey.getPartitionValue()), escapedSubPartitionValues, businessObjectDataKey.getBusinessObjectDataVersion()); }
/** * Returns a business object data key for the business object data. * * @param businessObjectData the business object data * * @return the business object data key for the business object data */ public BusinessObjectDataKey getBusinessObjectDataKey(BusinessObjectData businessObjectData) { BusinessObjectDataKey businessObjectDataKey = new BusinessObjectDataKey(); businessObjectDataKey.setNamespace(businessObjectData.getNamespace()); businessObjectDataKey.setBusinessObjectDefinitionName(businessObjectData.getBusinessObjectDefinitionName()); businessObjectDataKey.setBusinessObjectFormatUsage(businessObjectData.getBusinessObjectFormatUsage()); businessObjectDataKey.setBusinessObjectFormatFileType(businessObjectData.getBusinessObjectFormatFileType()); businessObjectDataKey.setBusinessObjectFormatVersion(businessObjectData.getBusinessObjectFormatVersion()); businessObjectDataKey.setPartitionValue(businessObjectData.getPartitionValue()); businessObjectDataKey.setSubPartitionValues(businessObjectData.getSubPartitionValues()); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectData.getVersion()); return businessObjectDataKey; }
/** * Returns a business object data attribute key built per specified parameters. * * @param businessObjectDataKey the business object data key * @param businessObjectDataAttributeName the name of the business object data attribute * * @return the business object data attribute key */ public BusinessObjectDataAttributeKey getBusinessObjectDataAttributeKey(BusinessObjectDataKey businessObjectDataKey, String businessObjectDataAttributeName) { return new BusinessObjectDataAttributeKey(businessObjectDataKey.getNamespace(), businessObjectDataKey.getBusinessObjectDefinitionName(), businessObjectDataKey.getBusinessObjectFormatUsage(), businessObjectDataKey.getBusinessObjectFormatFileType(), businessObjectDataKey.getBusinessObjectFormatVersion(), businessObjectDataKey.getPartitionValue(), businessObjectDataKey.getSubPartitionValues(), businessObjectDataKey.getBusinessObjectDataVersion(), businessObjectDataAttributeName); }
/** * TODO This method may be bformat specific. Consider creating new abstract class to group all bformat related DAO. Gets a business object format key from * the specified business object data key. * * @param businessObjectDataKey the business object data key * * @return the newly created business object format key */ private BusinessObjectFormatKey getBusinessObjectFormatKey(BusinessObjectDataKey businessObjectDataKey) { return new BusinessObjectFormatKey(businessObjectDataKey.getNamespace(), businessObjectDataKey.getBusinessObjectDefinitionName(), businessObjectDataKey.getBusinessObjectFormatUsage(), businessObjectDataKey.getBusinessObjectFormatFileType(), businessObjectDataKey.getBusinessObjectFormatVersion()); }
/** * Returns a cloned version of the specified business object data key where all fields are made lowercase. * * @param businessObjectDataKey the business object data. * * @return the cloned business object data. */ private BusinessObjectDataKey cloneToLowerCase(BusinessObjectDataKey businessObjectDataKey) { BusinessObjectDataKey businessObjectDataKeyClone = new BusinessObjectDataKey(); businessObjectDataKeyClone.setNamespace(businessObjectDataKey.getNamespace().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectDefinitionName(businessObjectDataKey.getBusinessObjectDefinitionName().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectFormatUsage(businessObjectDataKey.getBusinessObjectFormatUsage().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectFormatFileType(businessObjectDataKey.getBusinessObjectFormatFileType().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectFormatVersion(businessObjectDataKey.getBusinessObjectFormatVersion()); businessObjectDataKeyClone.setPartitionValue(businessObjectDataKey.getPartitionValue()); businessObjectDataKeyClone.setBusinessObjectDataVersion(businessObjectDataKey.getBusinessObjectDataVersion()); businessObjectDataKeyClone.setSubPartitionValues(businessObjectDataKey.getSubPartitionValues()); return businessObjectDataKeyClone; }
key.setNamespace(alternateKeyHelper.validateStringParameter("namespace", key.getNamespace())); key.setBusinessObjectDefinitionName( alternateKeyHelper.validateStringParameter("business object definition name", key.getBusinessObjectDefinitionName())); key.setBusinessObjectFormatUsage(alternateKeyHelper.validateStringParameter("business object format usage", key.getBusinessObjectFormatUsage())); key.setBusinessObjectFormatFileType( alternateKeyHelper.validateStringParameter("business object format file type", key.getBusinessObjectFormatFileType())); if (businessObjectFormatVersionRequired) Assert.notNull(key.getBusinessObjectFormatVersion(), "A business object format version must be specified."); key.setPartitionValue(alternateKeyHelper.validateStringParameter("partition value", key.getPartitionValue())); validateSubPartitionValues(key.getSubPartitionValues()); if (businessObjectDataVersionRequired) Assert.notNull(key.getBusinessObjectDataVersion(), "A business object data version must be specified.");
int result = ObjectUtils.compare(data1.getBusinessObjectDefinitionName(), data2.getBusinessObjectDefinitionName()); if (result != 0) result = ObjectUtils.compare(data1.getBusinessObjectFormatUsage(), data2.getBusinessObjectFormatUsage()); if (result != 0) result = ObjectUtils.compare(data1.getBusinessObjectFormatFileType(), data2.getBusinessObjectFormatFileType()); if (result != 0) result = ObjectUtils.compare(data1.getBusinessObjectFormatVersion(), data2.getBusinessObjectFormatVersion()); if (result != 0) result = ObjectUtils.compare(data1.getPartitionValue(), data2.getPartitionValue()); if (result != 0) return ObjectUtils.compare(data1.getBusinessObjectDataVersion(), data2.getBusinessObjectDataVersion());
/** * Create an instance of {@link BusinessObjectDataKey } * */ public BusinessObjectDataKey createBusinessObjectDataKey() { return new BusinessObjectDataKey(); }
/** * Returns a list of primary and sub-partition values per specified business object data. * * @param businessObjectDataKey the business object data key * * @return the list of primary and sub-partition values */ public List<String> getPrimaryAndSubPartitionValues(BusinessObjectDataKey businessObjectDataKey) { List<String> partitionValues = new ArrayList<>(); partitionValues.add(businessObjectDataKey.getPartitionValue()); partitionValues.addAll(businessObjectDataKey.getSubPartitionValues()); return partitionValues; }
/** * Calls getBusinessObjectDataVersions() method and makes assertions. * * @param subPartitionValues the list of sub-partition values * @param businessObjectFormatVersion the business object format version * @param businessObjectDataVersion the business object data version * @param useSsl specifies whether to use SSL or not * * @throws JAXBException if a JAXB error was encountered * @throws IOException if an I/O error was encountered * @throws URISyntaxException if a URI syntax error was encountered * @throws KeyStoreException if a key store exception occurs * @throws NoSuchAlgorithmException if a no such algorithm exception occurs * @throws KeyManagementException if key management exception */ private void testGetBusinessObjectDataVersions(List<String> subPartitionValues, Integer businessObjectFormatVersion, Integer businessObjectDataVersion, boolean useSsl) throws IOException, JAXBException, URISyntaxException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException { uploaderWebClient.getRegServerAccessParamsDto().setUseSsl(useSsl); BusinessObjectDataKey businessObjectDataKey = new BusinessObjectDataKey(); businessObjectDataKey.setBusinessObjectFormatVersion(businessObjectFormatVersion); businessObjectDataKey.setSubPartitionValues(subPartitionValues); businessObjectDataKey.setBusinessObjectDataVersion(businessObjectDataVersion); BusinessObjectDataVersions businessObjectDataVersions = uploaderWebClient.getBusinessObjectDataVersions(businessObjectDataKey); assertNotNull("businessObjectDataVersions", businessObjectDataVersions); } }
@Test public void testCompareBusinessObjectDataVersion() throws Exception { BusinessObjectDataKey businessObjectDataKey1 = new BusinessObjectDataKey(); BusinessObjectDataKey businessObjectDataKey2 = new BusinessObjectDataKey(); // "a" = "b" businessObjectDataKey1.setBusinessObjectDataVersion(0); businessObjectDataKey2.setBusinessObjectDataVersion(0); assertEquals(0, comparator.compare(businessObjectDataKey1, businessObjectDataKey2)); // "a" < "b" businessObjectDataKey1.setBusinessObjectDataVersion(0); businessObjectDataKey2.setBusinessObjectDataVersion(1); assertEquals(-1, comparator.compare(businessObjectDataKey1, businessObjectDataKey2)); // "b" > "a" assertEquals(1, comparator.compare(businessObjectDataKey2, businessObjectDataKey1)); }
/** * Returns the latest version of the business object data registered. Returns null if no data is registered. * * @param businessObjectDataInvalidateUnregisteredRequest request containing business object data key * * @return {@link BusinessObjectDataEntity} or null */ private BusinessObjectDataEntity getLatestBusinessObjectDataEntity( BusinessObjectDataInvalidateUnregisteredRequest businessObjectDataInvalidateUnregisteredRequest) { BusinessObjectDataKey businessObjectDataKey = getBusinessObjectDataKey(businessObjectDataInvalidateUnregisteredRequest); businessObjectDataKey.setBusinessObjectDataVersion(null); return businessObjectDataDao.getBusinessObjectDataByAltKey(businessObjectDataKey); }
@Override @SuppressFBWarnings(value = "BC_UNCONFIRMED_CAST", justification = "The NotificationEvent is cast to a StorageUnitStatusChangeNotificationEvent which is always the case since" + " we manage the event type to a builder in a map defined in NotificationMessageManager") public Map<String, Object> getNotificationMessageVelocityContextMap(NotificationEvent notificationEvent) { StorageUnitStatusChangeNotificationEvent event = (StorageUnitStatusChangeNotificationEvent) notificationEvent; Map<String, Object> velocityContextMap = new HashMap<>(); addObjectPropertyToContext(velocityContextMap, "businessObjectDataKey", event.getBusinessObjectDataKey(), escapeJsonBusinessObjectDataKey(event.getBusinessObjectDataKey()), escapeXmlBusinessObjectDataKey(event.getBusinessObjectDataKey())); addStringPropertyToContext(velocityContextMap, "storageName", event.getStorageName()); addStringPropertyToContext(velocityContextMap, "newStorageUnitStatus", event.getNewStorageUnitStatus()); addStringPropertyToContext(velocityContextMap, "oldStorageUnitStatus", event.getOldStorageUnitStatus()); addStringPropertyToContext(velocityContextMap, "namespace", event.getBusinessObjectDataKey().getNamespace()); return velocityContextMap; }
if (businessObjectDataKey.getBusinessObjectDataVersion() != null) builder.equal(businessObjectDataEntity.get(BusinessObjectDataEntity_.version), businessObjectDataKey.getBusinessObjectDataVersion()));
/** * Returns a cloned version of the specified business object data key where all fields are made lowercase. * * @param businessObjectDataKey the business object data. * * @return the cloned business object data. */ private BusinessObjectDataKey cloneToLowerCase(BusinessObjectDataKey businessObjectDataKey) { BusinessObjectDataKey businessObjectDataKeyClone = new BusinessObjectDataKey(); businessObjectDataKeyClone.setNamespace(businessObjectDataKey.getNamespace().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectDefinitionName(businessObjectDataKey.getBusinessObjectDefinitionName().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectFormatUsage(businessObjectDataKey.getBusinessObjectFormatUsage().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectFormatFileType(businessObjectDataKey.getBusinessObjectFormatFileType().toLowerCase()); businessObjectDataKeyClone.setBusinessObjectFormatVersion(businessObjectDataKey.getBusinessObjectFormatVersion()); businessObjectDataKeyClone.setPartitionValue(businessObjectDataKey.getPartitionValue()); businessObjectDataKeyClone.setBusinessObjectDataVersion(businessObjectDataKey.getBusinessObjectDataVersion()); businessObjectDataKeyClone.setSubPartitionValues(businessObjectDataKey.getSubPartitionValues()); return businessObjectDataKeyClone; }
key.setNamespace(alternateKeyHelper.validateStringParameter("namespace", key.getNamespace())); key.setBusinessObjectDefinitionName( alternateKeyHelper.validateStringParameter("business object definition name", key.getBusinessObjectDefinitionName())); key.setBusinessObjectFormatUsage(alternateKeyHelper.validateStringParameter("business object format usage", key.getBusinessObjectFormatUsage())); key.setBusinessObjectFormatFileType( alternateKeyHelper.validateStringParameter("business object format file type", key.getBusinessObjectFormatFileType())); if (businessObjectFormatVersionRequired) Assert.notNull(key.getBusinessObjectFormatVersion(), "A business object format version must be specified."); key.setPartitionValue(alternateKeyHelper.validateStringParameter("partition value", key.getPartitionValue())); validateSubPartitionValues(key.getSubPartitionValues()); if (businessObjectDataVersionRequired) Assert.notNull(key.getBusinessObjectDataVersion(), "A business object data version must be specified.");
/** * TODO This method may be bformat specific. Consider creating new abstract class to group all bformat related DAO. Gets a business object format key from * the specified business object data key. * * @param businessObjectDataKey the business object data key * * @return the newly created business object format key */ private BusinessObjectFormatKey getBusinessObjectFormatKey(BusinessObjectDataKey businessObjectDataKey) { return new BusinessObjectFormatKey(businessObjectDataKey.getNamespace(), businessObjectDataKey.getBusinessObjectDefinitionName(), businessObjectDataKey.getBusinessObjectFormatUsage(), businessObjectDataKey.getBusinessObjectFormatFileType(), businessObjectDataKey.getBusinessObjectFormatVersion()); }
/** * Create an instance of {@link BusinessObjectDataKey } * */ public BusinessObjectDataKey createBusinessObjectDataKey() { return new BusinessObjectDataKey(); }
/** * Returns a list of primary and sub-partition values per specified business object data. * * @param businessObjectDataKey the business object data key * * @return the list of primary and sub-partition values */ public List<String> getPrimaryAndSubPartitionValues(BusinessObjectDataKey businessObjectDataKey) { List<String> partitionValues = new ArrayList<>(); partitionValues.add(businessObjectDataKey.getPartitionValue()); partitionValues.addAll(businessObjectDataKey.getSubPartitionValues()); return partitionValues; }
/** * Returns the latest version of the business object data registered. Returns null if no data is registered. * * @param businessObjectDataInvalidateUnregisteredRequest request containing business object data key * * @return {@link BusinessObjectDataEntity} or null */ private BusinessObjectDataEntity getLatestBusinessObjectDataEntity( BusinessObjectDataInvalidateUnregisteredRequest businessObjectDataInvalidateUnregisteredRequest) { BusinessObjectDataKey businessObjectDataKey = getBusinessObjectDataKey(businessObjectDataInvalidateUnregisteredRequest); businessObjectDataKey.setBusinessObjectDataVersion(null); return businessObjectDataDao.getBusinessObjectDataByAltKey(businessObjectDataKey); }