принятие сообщений сапфора в json

This commit is contained in:
2025-05-23 18:25:23 +03:00
parent bf5a648582
commit f5eaf3df25
7 changed files with 45 additions and 54 deletions

View File

@@ -257,11 +257,31 @@ public class DBProjectFile extends ProjectFile {
break;
}
}
/*
public void AddNewMessage(Message message){
switch (message.)
public void AddNewMessage(Message message) throws Exception{
switch (message.type){
case 0:
MessageWarning warning = new MessageWarning(name, message.line, message.value, message.group);
father.db.Insert(warning);
father.db.recommendations.addRecommendation(message.group);
if (state != FileState.HasErrors)
state = FileState.HasWarnings;
break;
case 1:
MessageError error = new MessageError(name, message.line, message.value, message.group);
father.db.Insert(error);
father.db.recommendations.addRecommendation(message.group);
state = FileState.HasErrors;
break;
case 2:
MessageNote note = new MessageNote(name, message.line, message.value, message.group);
father.db.Insert(note);
father.db.recommendations.addRecommendation(message.group);
if (state != FileState.HasWarnings && state != FileState.HasErrors)
state = FileState.HasNotes;
break;
}
}
*/
public DefaultMutableTreeNode show_loop_graph_r(FileObjectWithMessages element) {

View File

@@ -26,7 +26,18 @@ public class Message extends iDBObject {
//--
@Description("DEFAULT ''")
public String file = "";
public String group_s = "#";
public String getGroup_s() {
switch (group) {
case 0:
return "#m0000";
case Constants.parser_group: //сообщения от парсера.
return "#parser";
case Constants.compiler_group:
return "#compiler";
default:
return "#"+group;
}
}
//--
public Message() {
}
@@ -34,7 +45,7 @@ public class Message extends iDBObject {
) throws Exception {
file = file_in;
line = line_in;
setGroup(group_in);
group=group_in;
if ((group == Constants.parser_group) ||
(group == Constants.compiler_group) ||
(Global.mode != Mode.Normal)) {
@@ -444,21 +455,4 @@ public class Message extends iDBObject {
}
}
}
public void setGroup(int group_in) {
group = group_in;
switch (group) {
case 0:
group_s += "m0000";
break;
case Constants.parser_group: //сообщения от парсера.
group_s += "parser";
break;
case Constants.compiler_group:
group_s += "compiler";
break;
default:
group_s += group;
break;
}
}
}

View File

@@ -28,7 +28,7 @@ public class MessagesControlForm extends DataSetControlForm<Message> {
new ColumnInfo<Message>("группа") {
@Override
public Object getFieldAt(Message object) {
return object.group_s;
return object.getGroup_s();
}
},
new ColumnInfo<Message>("строка") {

View File

@@ -20,6 +20,7 @@ import _VisualDVM.ProjectData.Files.LanguageStyle;
import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.ProjectData.Messages.Errors.MessageError;
import _VisualDVM.ProjectData.Messages.FileMessagesJson;
import _VisualDVM.ProjectData.Messages.Message;
import _VisualDVM.ProjectData.Messages.MessagesJson;
import _VisualDVM.ProjectData.Messages.Notes.MessageNote;
import _VisualDVM.ProjectData.Messages.Recommendations.MessageRecommendation;
@@ -1140,38 +1141,13 @@ public class db_project_info extends DBObject {
}
///------------------------------------------------------------------------------------------->>>>>
public void unpackMessagesAndLog(String packed_messages, String log_in) throws Exception {
System.out.println("packed_mesages="+packed_messages);
MessagesJson messages = Utils_.gson.fromJson(packed_messages, MessagesJson.class);
for (FileMessagesJson fileMessages: messages.allMessages){
fileMessages.file=Utils_.toW(fileMessages.file);
//--
DBProjectFile messageFile = db.files.Data.get(fileMessages.file);
}
if (packed_messages.length() > 0) {
int idx = 0;
String[] splited = packed_messages.split("\\|");
int numberOfFiles = Integer.parseInt(splited[idx++]);
for (int i = 0; i < numberOfFiles; ++i) {
String message_file = Utils_.toW(splited[idx++]); //для ключа.
int numberOfMessages = Integer.parseInt(splited[idx++]);
if (!db.files.Data.containsKey(message_file)) {
throw new PassException("Ошибка при распаковке сообщений: файл: [" +
message_file +
"] не найден");
}
DBProjectFile messageFile = db.files.Data.get(message_file);
//0-1-2
for (int k = 0; k < numberOfMessages; ++k) {
String[] localSplit = splited[idx++].split(" ");
int m_type = Integer.parseInt(localSplit[0]);
int m_line = Integer.parseInt(localSplit[1]);
int m_group = Integer.parseInt(localSplit[2]);
String m_value = splited[idx++];
messageFile.CreateAndAddNewMessage(m_type, m_value, m_line, m_group);
}
messageFile.father.db.Update(messageFile);
for (Message message: fileMessages.messages){
messageFile.AddNewMessage(message);
}
}
Log = log_in;

View File

@@ -215,7 +215,7 @@ public class SapforVersion_json implements Serializable {
case 1:
//group_s
if (isDigit(c)) {
res.group_s += c;
// res.group_s = res.getGroup_s() + c;
lexeme += c;
} else if (c == ':') {
s = 2;