no message
This commit is contained in:
@@ -37,6 +37,7 @@ import Visual_DVM_2021.Passes.PassCode_2021;
|
||||
import Visual_DVM_2021.Passes.PassException;
|
||||
import com.mxgraph.swing.mxGraphComponent;
|
||||
import com.sun.org.glassfish.gmbal.Description;
|
||||
import javafx.util.Pair;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
import javax.swing.tree.DefaultMutableTreeNode;
|
||||
@@ -1012,69 +1013,68 @@ public class db_project_info extends DBObject {
|
||||
for (db_project_info version : versions.values())
|
||||
version.cleanDepAndGCOVR();
|
||||
}
|
||||
public void migrateFilesSettings(db_project_info target, boolean migrate_arrays, boolean migrate_headers, boolean sapforStyle) throws Exception {
|
||||
LinkedHashMap<String, DBProjectFile> programs = new LinkedHashMap<>();
|
||||
LinkedHashMap<String, DBProjectFile> headers = new LinkedHashMap<>();
|
||||
LinkedHashMap<String, DBProjectFile> other = new LinkedHashMap<>();
|
||||
//---
|
||||
public Pair<LinkedHashMap<String, DBProjectFile>, LinkedHashMap<String, DBProjectFile>> sortFiles() {
|
||||
LinkedHashMap<String, DBProjectFile> active_programs = new LinkedHashMap<>();
|
||||
LinkedHashMap<String, DBProjectFile> others = new LinkedHashMap<>();
|
||||
//---
|
||||
for (DBProjectFile file : db.files.Data.values()) {
|
||||
if (!file.isMakefile())
|
||||
switch (file.fileType) {
|
||||
case program:
|
||||
programs.put(file.name, file);
|
||||
break;
|
||||
case header:
|
||||
headers.put(file.name, file);
|
||||
if (migrate_headers) {
|
||||
File toCopy = Paths.get(target.Home.getAbsolutePath(), file.name).toFile();
|
||||
if (!toCopy.exists())
|
||||
Files.copy(file.file.toPath(), toCopy.toPath());
|
||||
}
|
||||
break;
|
||||
default:
|
||||
other.put(file.name, file);
|
||||
//теперь надо проверить а перешел ли файл в версию. если нет. надо скопировать. и добавить в местную бд.
|
||||
File toCopy = Paths.get(target.Home.getAbsolutePath(), file.name).toFile();
|
||||
if (!toCopy.exists())
|
||||
Files.copy(file.file.toPath(), toCopy.toPath());
|
||||
break;
|
||||
}
|
||||
if (file.isActiveProgram())
|
||||
active_programs.put(file.name, file);
|
||||
else
|
||||
others.put(file.name, file);
|
||||
}
|
||||
//---
|
||||
return new Pair<>(active_programs, others);
|
||||
}
|
||||
public DBProjectFile getFileByNameIgnoreCase(String name_in) {
|
||||
for (DBProjectFile file : db.files.Data.values()) {
|
||||
if (file.name.equalsIgnoreCase(name_in)) {
|
||||
return file;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
public void migrateFilesSettings(db_project_info target, boolean migrate_arrays, boolean migrate_headers, boolean sapforStyle) throws Exception {
|
||||
Pair<LinkedHashMap<String, DBProjectFile>, LinkedHashMap<String, DBProjectFile>> sortedFiles = sortFiles();
|
||||
//--
|
||||
LinkedHashMap<String, DBProjectFile> programs = sortedFiles.getKey();
|
||||
LinkedHashMap<String, DBProjectFile> files = sortedFiles.getValue();
|
||||
//--
|
||||
target.Open();
|
||||
//-
|
||||
target.db.BeginTransaction();
|
||||
for (DBProjectFile header : headers.values()) {
|
||||
for (DBProjectFile versionFile : target.db.files.Data.values()) {
|
||||
if (header.name.equalsIgnoreCase(versionFile.name)) {
|
||||
versionFile.importSettings(header, sapforStyle);
|
||||
target.db.Update(versionFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
// прочее. ищем полное совпадение по именам в версии.
|
||||
for (DBProjectFile stuffFile : other.values()) {
|
||||
for (DBProjectFile versionFile : target.db.files.Data.values()) {
|
||||
if (stuffFile.name.equalsIgnoreCase(versionFile.name)) {
|
||||
versionFile.importSettings(stuffFile, sapforStyle);
|
||||
target.db.Update(versionFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
//программы. совпадение по именам и типу.
|
||||
Pair<LinkedHashMap<String, DBProjectFile>, LinkedHashMap<String, DBProjectFile>> sortedVersionFiles = target.sortFiles();
|
||||
LinkedHashMap<String, DBProjectFile> version_programs = sortedVersionFiles.getKey();
|
||||
//--
|
||||
for (DBProjectFile program : programs.values()) {
|
||||
for (DBProjectFile versionFile : target.db.files.Data.values()) {
|
||||
if (versionFile.fileType.equals(FileType.program)) {
|
||||
boolean same_names = program.getProjectNameWithoutExtension().equals(versionFile.getProjectNameWithoutExtension());
|
||||
boolean same_extensions = Utils.getExtension(program.file).equals(Utils.getExtension(versionFile.file));
|
||||
if (same_names) {
|
||||
if (same_extensions) versionFile.importSettings(program, sapforStyle);
|
||||
else
|
||||
versionFile.importSourceCodeSettings(program, sapforStyle);
|
||||
target.db.Update(versionFile);
|
||||
}
|
||||
for (DBProjectFile version_program : version_programs.values()) {
|
||||
boolean same_names = program.getProjectNameWithoutExtension().equals(version_program.getProjectNameWithoutExtension());
|
||||
if (same_names) {
|
||||
version_program.importSettings(program, sapforStyle);
|
||||
target.db.Update(version_program);
|
||||
}
|
||||
}
|
||||
}
|
||||
//миграция языка----------
|
||||
for (DBProjectFile file : files.values()) {
|
||||
DBProjectFile version_file = target.getFileByNameIgnoreCase(file.name);
|
||||
if (version_file != null) {
|
||||
version_file.importSettings(file, sapforStyle);
|
||||
target.db.Update(version_file);
|
||||
} else {
|
||||
if (//!file.state.equals(FileState.Excluded)&&
|
||||
(!file.fileType.equals(FileType.header) || migrate_headers)) {
|
||||
|
||||
File toCopy = Paths.get(target.Home.getAbsolutePath(), file.name).toFile();
|
||||
if (!toCopy.exists())
|
||||
Files.copy(file.file.toPath(), toCopy.toPath());
|
||||
//--
|
||||
DBProjectFile new_version_file = new DBProjectFile(toCopy, target);
|
||||
new_version_file.importSettings(file, sapforStyle);
|
||||
target.db.Insert(new_version_file);
|
||||
}
|
||||
}
|
||||
}
|
||||
//---
|
||||
target.languageName = this.languageName;
|
||||
target.maxdim = this.maxdim;
|
||||
target.db.Update(target);
|
||||
@@ -1084,8 +1084,8 @@ public class db_project_info extends DBObject {
|
||||
for (DBArray a : db.savedArrays.Data.values())
|
||||
target.db.Insert(a);
|
||||
}
|
||||
//---
|
||||
target.db.Commit();
|
||||
//-
|
||||
target.Close();
|
||||
}
|
||||
public void undoLastTransformation() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user