/**
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.systemservices.impl.propertyhandler;
import com.emc.storageos.model.property.PropertiesMetadata;
import com.emc.storageos.model.property.PropertyInfoRestRep;
import com.emc.storageos.model.property.PropertyMetadata;
import java.util.Map;
public class DefaultUpdateHandler implements UpdateHandler {
@Override
public void before(PropertyInfoRestRep oldValue, PropertyInfoRestRep newValue) {
// empty implementation
}
@Override
public void after(PropertyInfoRestRep oldValue, PropertyInfoRestRep newValue) {
// empty implementation
}
/**
* check if the value of specified property get changed.
*
* @param oldProps
* @param newProps
* @param property
* @return
*/
public boolean isPropertyChanged(PropertyInfoRestRep oldProps, PropertyInfoRestRep newProps, String property) {
String oldValue = oldProps.getProperty(property);
String newValue = newProps.getProperty(property);
if (newValue == null) {
return false;
}
if (oldValue == null) {
Map<String, PropertyMetadata> metadata = PropertiesMetadata.getGlobalMetadata();
// no metadata, that is, this property is not defined
if (metadata == null) {
return false;
}
final PropertyMetadata propertyMetadata = metadata.get(property);
if (propertyMetadata != null) {
oldValue = propertyMetadata.getValue();
}
}
if (oldValue != null && oldValue.equals(newValue)) {
return false;
}
return true;
}
}