-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReviewUserProgram.java
More file actions
172 lines (146 loc) · 8.07 KB
/
ReviewUserProgram.java
File metadata and controls
172 lines (146 loc) · 8.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
package com.ai.reviewer;
import com.ai.reviewer.agent.CodeReviewerAgent;
import com.ai.reviewer.model.ReviewComment;
import com.ai.reviewer.model.ReviewResult;
import com.ai.reviewer.model.ReviewSeverity;
import java.util.List;
public class ReviewUserProgram {
public static void main(String[] args) {
System.out.println("╔════════════════════════════════════════════════════════╗");
System.out.println("║ AI CODE REVIEWER - ANALYZING USER PROGRAM ║");
System.out.println("╚════════════════════════════════════════════════════════╝\n");
// Create the AI reviewer agent
CodeReviewerAgent agent = new CodeReviewerAgent("Intelligent Code Analyzer", "1.0.0");
// Read the user program
String userCode = """
import java.util.ArrayList;
import java.util.List;
public class UserManagementSystem {
public static List<String> users = new ArrayList<>();
public void addUser(String name) {
try {
if (name == null || name.isEmpty()) {
throw new Exception("Invalid name");
}
for (String u : users) {
if (u.equals(name)) {
System.out.println("User already exists");
return;
}
}
users.add(name);
System.out.println("User added: " + name);
} catch (Exception e) {
// Silent catch - no handling
}
}
public void removeUser(String n) {
users.remove(n);
System.out.println("User removed");
}
public void processUsers() {
int total = 0;
for (int i = 0; i < users.size(); i++) {
for (int j = 0; j < users.size(); j++) {
if (i != j) {
total += 10;
}
}
}
System.err.println("Total: " + total);
}
public void displayAllUsers() {
if (users.size() > 1000) {
System.out.println("Too many users");
}
for (String user : users) {
System.out.println("- " + user);
}
// TODO: Add pagination
// FIXME: Handle large datasets
}
public static void main(String[] args) {
UserManagementSystem system = new UserManagementSystem();
system.addUser("Alice");
system.addUser("Bob");
system.displayAllUsers();
system.processUsers();
}
}
""";
// AI Agent reviews the code
System.out.println("🤖 AI AGENT ANALYZING YOUR PROGRAM...\n");
ReviewResult result = agent.reviewCode("UserManagementSystem.java", userCode);
// Display detailed review results
System.out.println(result);
// Additional analysis
System.out.println("\n╔════════════════════════════════════════════════════════╗");
System.out.println("║ DETAILED ISSUE BREAKDOWN ║");
System.out.println("╚════════════════════════════════════════════════════════╝\n");
// Critical issues
List<ReviewComment> criticalIssues = result.getCommentsBySeverity(ReviewSeverity.CRITICAL);
if (criticalIssues.size() > 0) {
System.out.println("🔴 CRITICAL ISSUES (" + criticalIssues.size() + "):");
for (ReviewComment issue : criticalIssues) {
System.out.println(" ✗ Line " + issue.getLineNumber() + ": " + issue.getMessage());
System.out.println(" → " + issue.getSuggestion());
}
System.out.println();
}
// Major issues
List<ReviewComment> majorIssues = result.getCommentsBySeverity(ReviewSeverity.MAJOR);
if (majorIssues.size() > 0) {
System.out.println("🟠 MAJOR ISSUES (" + majorIssues.size() + "):");
for (ReviewComment issue : majorIssues) {
System.out.println(" ⚠ Line " + issue.getLineNumber() + ": " + issue.getMessage());
System.out.println(" → " + issue.getSuggestion());
}
System.out.println();
}
// Minor issues
List<ReviewComment> minorIssues = result.getCommentsBySeverity(ReviewSeverity.MINOR);
if (minorIssues.size() > 0) {
System.out.println("🟡 MINOR ISSUES (" + minorIssues.size() + "):");
for (ReviewComment issue : minorIssues) {
System.out.println(" ℹ Line " + issue.getLineNumber() + ": " + issue.getMessage());
System.out.println(" → " + issue.getSuggestion());
}
System.out.println();
}
// Info issues
List<ReviewComment> infoIssues = result.getCommentsBySeverity(ReviewSeverity.INFO);
if (infoIssues.size() > 0) {
System.out.println("ℹ️ INFO ITEMS (" + infoIssues.size() + "):");
for (ReviewComment issue : infoIssues) {
System.out.println(" ℹ Line " + issue.getLineNumber() + ": " + issue.getMessage());
System.out.println(" → " + issue.getSuggestion());
}
System.out.println();
}
// Final recommendation
System.out.println("╔════════════════════════════════════════════════════════╗");
System.out.println("║ AI AGENT RECOMMENDATION ║");
System.out.println("╚════════════════════════════════════════════════════════╝\n");
double score = result.getOverallScore();
String status;
if (score >= 90) {
status = "✅ EXCELLENT - Code quality is very good";
} else if (score >= 80) {
status = "👍 GOOD - Minor improvements needed";
} else if (score >= 70) {
status = "⚠️ ACCEPTABLE - Several issues to fix";
} else if (score >= 60) {
status = "❌ NEEDS IMPROVEMENT - Address major issues";
} else {
status = "🚨 CRITICAL - Significant problems found";
}
System.out.println("Quality Score: " + score + "/100");
System.out.println("Status: " + status);
System.out.println("\nTotal Issues Found: " + result.getTotalIssues());
System.out.println(" - Critical: " + result.getCriticalIssues());
System.out.println(" - Major: " + result.getMajorIssues());
System.out.println(" - Minor: " + result.getMinorIssues());
System.out.println(" - Info: " + result.getInfoIssues());
System.out.println("\nAnalysis Time: " + result.getReviewTimeMs() + "ms");
}
}