package example.filesystem.callback;
import org.apache.ws.resource.properties.SetResourcePropertyCallback;
import org.apache.ws.resource.properties.ResourceProperty;
import org.apache.ws.resource.properties.impl.CallbackFailedException;
import org.apache.ws.resource.example.filesystem.BackupFrequencyDocument;
import org.apache.xmlbeans.XmlInt;
import javax.xml.namespace.QName;
import example.filesystem.backend.FileSystem;
/**
* A callback for the BackupFrequency resource property.
*/
public class BackupFrequencyCallback implements SetResourcePropertyCallback
{
FileSystem m_fileSystem;
public BackupFrequencyCallback(FileSystem fileSystem)
{
m_fileSystem = fileSystem;
}
public void deleteProperty(QName propQName) throws CallbackFailedException
{
return; // no need to implement - Apollo will never call delete for a prop whose minOccurs != 0
}
public void insertProperty(Object[] prop) throws CallbackFailedException
{
return; // no need to implement - Apollo will never call insert for a prop whose minOccurs == its maxOccurs
}
public void updateProperty(Object[] prop) throws CallbackFailedException
{
// BackupFrequency prop has cardinality of 1, so passed array will always have exactly one element
XmlInt xInt = (XmlInt) prop[0];
m_fileSystem.setBackupFrequency(xInt.getIntValue());
}
public ResourceProperty refreshProperty(ResourceProperty prop) throws CallbackFailedException
{
XmlInt xInt = (XmlInt) prop.get( 0 );
xInt.setIntValue( m_fileSystem.getBackupFrequency() );
return prop;
}
}