package org.eclipse.update.internal.core; | |
/* | |
* (c) Copyright IBM Corp. 2000, 2001. | |
* All Rights Reserved. | |
*/ | |
import org.eclipse.core.runtime.IProgressMonitor; | |
import org.eclipse.core.internal.boot.update.*; | |
/** | |
* Abstract class for update manager objects that have an ILogEntry | |
*/ | |
public abstract class UMSessionManagerEntry { | |
protected ILogEntry _logEntry = null; | |
protected ILogEntryProperty _propertyStatus = null; | |
protected ILogEntryProperty _propertyAttempts = null; | |
protected Object _objData = null; | |
/** | |
* UpdateManagerEntry constructor comment. | |
*/ | |
public UMSessionManagerEntry( ILogEntry logEntry ) { | |
_logEntry = logEntry; | |
// Status | |
//------- | |
_propertyStatus = _logEntry.getProperty(UpdateManagerConstants.STRING_STATUS); | |
if (_propertyStatus == null) { | |
_propertyStatus = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_STATUS, UpdateManagerConstants.STATUS_PENDING ); | |
logEntry.addProperty( _propertyStatus ); | |
} | |
// Attempts | |
//--------- | |
_propertyAttempts = _logEntry.getProperty(UpdateManagerConstants.STRING_ATTEMPTS); | |
if (_propertyAttempts == null) { | |
_propertyAttempts = new LogEntryProperty(logEntry, UpdateManagerConstants.STRING_ATTEMPTS, UpdateManagerConstants.STRING_0 ); | |
logEntry.addProperty( _propertyAttempts ); | |
} | |
} | |
/** | |
* @param logEntry org.eclipse.update.internal.core.ILogEntry | |
*/ | |
public void buildTreeFromLog(ILogEntry logEntry) { | |
// Attempts | |
//--------- | |
ILogEntryProperty property = _logEntry.getProperty(UpdateManagerConstants.STRING_ATTEMPTS); | |
if (property != null) { | |
_propertyAttempts = property; | |
} | |
// Status | |
//------- | |
property = _logEntry.getProperty(UpdateManagerConstants.STRING_STATUS); | |
if (property != null) { | |
_propertyStatus = property; | |
} | |
} | |
/** | |
* | |
* @return java.lang.String | |
* @param strPrefix java.lang.String | |
* @param ex java.lang.Exception | |
*/ | |
public String createMessageString(String strPrefix, Exception ex) { | |
StringBuffer strb = new StringBuffer(strPrefix); | |
if (ex != null) { | |
if (ex.getLocalizedMessage() != null) { | |
strb.append(": " + ex.getLocalizedMessage()); | |
} | |
else if (ex.toString() != null && ex.toString().length() > 0) { | |
strb.append(": " + ex.toString()); | |
} | |
} | |
return strb.toString(); | |
} | |
/** | |
* Execute any pending or failed updates. | |
*/ | |
public abstract boolean execute( IProgressMonitor progressMonitor ); | |
/** | |
* Execute any pending or failed updates. | |
*/ | |
public abstract boolean executeUndo( IProgressMonitor progressMonitor ); | |
/** | |
* @return java.lang.Object | |
*/ | |
public java.lang.Object getData() { | |
return _objData; | |
} | |
/** | |
* Returns the log entry associated with this session object. | |
* @return org.eclipse.update.internal.core.ILogEntry | |
*/ | |
public ILogEntry getLogEntry() { | |
return _logEntry; | |
} | |
/** | |
* | |
* @return java.lang.String | |
*/ | |
public String getStatus() { | |
return _propertyStatus.getValue(); | |
} | |
/** | |
* @param strb java.lang.StringBuffer | |
* @param iIndentation int | |
*/ | |
public abstract void getStatusString(StringBuffer strb, int iIndentation); | |
/** | |
* Increments the value of the number of attempts | |
*/ | |
public void incrementAttemptCount() { | |
int iAttempts = 0; | |
try { | |
iAttempts = new Integer(_propertyAttempts.getValue()).intValue(); | |
} | |
catch (Exception ex) { | |
} | |
_propertyAttempts.setValue( Integer.toString( ++iAttempts ) ); | |
} | |
/** | |
* @param strb java.lang.StringBuffer | |
* @param iIndentation int | |
*/ | |
public void indent(StringBuffer strb, int iIndentation) { | |
// Line feed | |
//---------- | |
strb.append( "\n" ); | |
// Indentation spaces | |
//------------------- | |
for( int i=0; i<iIndentation; ++i ){ | |
strb.append( " " ); | |
} | |
} | |
/** | |
*/ | |
public void resetAttemptCount() { | |
_propertyAttempts.setValue( UpdateManagerConstants.STRING_0 ); | |
} | |
/** | |
* Stores IManifestDescriptor | |
* @param newData java.lang.Object | |
*/ | |
public void setData(java.lang.Object objData) { | |
_objData = objData; | |
} | |
/** | |
* Every entry has a status property. | |
* @return java.lang.String | |
* @param status java.lang.String | |
*/ | |
public void setStatus(String strStatus) { | |
_propertyStatus.setValue( strStatus != null ? strStatus : UpdateManagerConstants.STRING_EMPTY ); | |
} | |
} |