50 lines
1.9 KiB
Java
50 lines
1.9 KiB
Java
package Visual_DVM_2021.Passes.All;
|
||
import Common.Utils.CommonUtils;
|
||
import _VisualDVM.Current;
|
||
import _VisualDVM.Global;
|
||
import _VisualDVM.Repository.Component.Component;
|
||
import Visual_DVM_2021.Passes.PassCode;
|
||
import Visual_DVM_2021.Passes.PassException;
|
||
import Visual_DVM_2021.Passes.Pass;
|
||
public class UpdateComponent extends Pass<Component> {
|
||
@Override
|
||
protected PassCode necessary() {
|
||
return PassCode.CreateComponentBackUp;
|
||
}
|
||
@Override
|
||
protected boolean resetsNecessary() {
|
||
return true;
|
||
}
|
||
@Override
|
||
protected void body() throws Exception {
|
||
PassCode subPass = PassCode.Undefined;
|
||
//<editor-fold desc="получение нового файла компонента">
|
||
switch (Current.getComponent().getComponentType()) {
|
||
case Sapfor_F:
|
||
case Visualizer_2:
|
||
subPass = CommonUtils.isWindows() ? PassCode.DownloadComponent : PassCode.BuildComponent;
|
||
break;
|
||
case Visualiser:
|
||
case Instruction:
|
||
case PerformanceAnalyzer:
|
||
subPass = PassCode.DownloadComponent;
|
||
break;
|
||
}
|
||
if ((subPass != PassCode.Undefined) && passes.get(subPass).Do()) {
|
||
//</editor-fold>
|
||
if (!Current.getComponent().getNewFile().exists())
|
||
throw new PassException("Не удалось получить новый файл для компонента " + Current.getComponent().getComponentType().getDescription());
|
||
//непосредственное обновление.
|
||
Current.getComponent().Update();
|
||
}
|
||
}
|
||
@Override
|
||
protected void performFinish() throws Exception {
|
||
Current.getComponent().CheckIfNeedsUpdateOrPublish();
|
||
}
|
||
@Override
|
||
protected void showDone() throws Exception {
|
||
Global.RefreshUpdatesStatus();
|
||
}
|
||
}
|