Skip to content

Commit 1e25b01

Browse files
authored
Convert 25 simple inner Data classes to Java records (#118)
Replace mutable inner Data classes with Java records across the events package. Records provide immutable, concise DTOs with automatic equals, hashCode, and toString. Jackson @JsonProperty annotations on constructor parameters preserve JSON deserialization compatibility. Updated all accessor calls in production code, tests, and documentation to use record-style accessors (e.g., message() instead of getMessage()).
1 parent 77e7ee8 commit 1e25b01

33 files changed

Lines changed: 170 additions & 1004 deletions

src/main/java/com/github/copilot/sdk/CopilotSession.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ public CompletableFuture<AssistantMessageEvent> sendAndWait(MessageOptions optio
338338
} else if (evt instanceof SessionIdleEvent) {
339339
future.complete(lastAssistantMessage.get());
340340
} else if (evt instanceof SessionErrorEvent errorEvent) {
341-
String message = errorEvent.getData() != null ? errorEvent.getData().getMessage() : "session error";
341+
String message = errorEvent.getData() != null ? errorEvent.getData().message() : "session error";
342342
future.completeExceptionally(new RuntimeException("Session error: " + message));
343343
}
344344
};
@@ -463,7 +463,7 @@ public Closeable on(Consumer<AbstractSessionEvent> handler) {
463463
*
464464
* // Handle streaming deltas
465465
* session.on(AssistantMessageDeltaEvent.class, delta -> {
466-
* System.out.print(delta.getData().getDeltaContent());
466+
* System.out.print(delta.getData().deltaContent());
467467
* });
468468
* }</pre>
469469
*

src/main/java/com/github/copilot/sdk/events/AbortEvent.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,6 @@ public void setData(AbortData data) {
3232
}
3333

3434
@JsonIgnoreProperties(ignoreUnknown = true)
35-
public static class AbortData {
36-
37-
@JsonProperty("reason")
38-
private String reason;
39-
40-
public String getReason() {
41-
return reason;
42-
}
43-
44-
public void setReason(String reason) {
45-
this.reason = reason;
46-
}
35+
public record AbortData(@JsonProperty("reason") String reason) {
4736
}
4837
}

src/main/java/com/github/copilot/sdk/events/AssistantIntentEvent.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,6 @@ public void setData(AssistantIntentData data) {
3232
}
3333

3434
@JsonIgnoreProperties(ignoreUnknown = true)
35-
public static class AssistantIntentData {
36-
37-
@JsonProperty("intent")
38-
private String intent;
39-
40-
public String getIntent() {
41-
return intent;
42-
}
43-
44-
public void setIntent(String intent) {
45-
this.intent = intent;
46-
}
35+
public record AssistantIntentData(@JsonProperty("intent") String intent) {
4736
}
4837
}

src/main/java/com/github/copilot/sdk/events/AssistantMessageDeltaEvent.java

Lines changed: 4 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -32,50 +32,9 @@ public void setData(AssistantMessageDeltaData data) {
3232
}
3333

3434
@JsonIgnoreProperties(ignoreUnknown = true)
35-
public static class AssistantMessageDeltaData {
36-
37-
@JsonProperty("messageId")
38-
private String messageId;
39-
40-
@JsonProperty("deltaContent")
41-
private String deltaContent;
42-
43-
@JsonProperty("totalResponseSizeBytes")
44-
private Double totalResponseSizeBytes;
45-
46-
@JsonProperty("parentToolCallId")
47-
private String parentToolCallId;
48-
49-
public String getMessageId() {
50-
return messageId;
51-
}
52-
53-
public void setMessageId(String messageId) {
54-
this.messageId = messageId;
55-
}
56-
57-
public String getDeltaContent() {
58-
return deltaContent;
59-
}
60-
61-
public void setDeltaContent(String deltaContent) {
62-
this.deltaContent = deltaContent;
63-
}
64-
65-
public Double getTotalResponseSizeBytes() {
66-
return totalResponseSizeBytes;
67-
}
68-
69-
public void setTotalResponseSizeBytes(Double totalResponseSizeBytes) {
70-
this.totalResponseSizeBytes = totalResponseSizeBytes;
71-
}
72-
73-
public String getParentToolCallId() {
74-
return parentToolCallId;
75-
}
76-
77-
public void setParentToolCallId(String parentToolCallId) {
78-
this.parentToolCallId = parentToolCallId;
79-
}
35+
public record AssistantMessageDeltaData(@JsonProperty("messageId") String messageId,
36+
@JsonProperty("deltaContent") String deltaContent,
37+
@JsonProperty("totalResponseSizeBytes") Double totalResponseSizeBytes,
38+
@JsonProperty("parentToolCallId") String parentToolCallId) {
8039
}
8140
}

src/main/java/com/github/copilot/sdk/events/AssistantReasoningDeltaEvent.java

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,28 +32,7 @@ public void setData(AssistantReasoningDeltaData data) {
3232
}
3333

3434
@JsonIgnoreProperties(ignoreUnknown = true)
35-
public static class AssistantReasoningDeltaData {
36-
37-
@JsonProperty("reasoningId")
38-
private String reasoningId;
39-
40-
@JsonProperty("deltaContent")
41-
private String deltaContent;
42-
43-
public String getReasoningId() {
44-
return reasoningId;
45-
}
46-
47-
public void setReasoningId(String reasoningId) {
48-
this.reasoningId = reasoningId;
49-
}
50-
51-
public String getDeltaContent() {
52-
return deltaContent;
53-
}
54-
55-
public void setDeltaContent(String deltaContent) {
56-
this.deltaContent = deltaContent;
57-
}
35+
public record AssistantReasoningDeltaData(@JsonProperty("reasoningId") String reasoningId,
36+
@JsonProperty("deltaContent") String deltaContent) {
5837
}
5938
}

src/main/java/com/github/copilot/sdk/events/AssistantReasoningEvent.java

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,28 +32,7 @@ public void setData(AssistantReasoningData data) {
3232
}
3333

3434
@JsonIgnoreProperties(ignoreUnknown = true)
35-
public static class AssistantReasoningData {
36-
37-
@JsonProperty("reasoningId")
38-
private String reasoningId;
39-
40-
@JsonProperty("content")
41-
private String content;
42-
43-
public String getReasoningId() {
44-
return reasoningId;
45-
}
46-
47-
public void setReasoningId(String reasoningId) {
48-
this.reasoningId = reasoningId;
49-
}
50-
51-
public String getContent() {
52-
return content;
53-
}
54-
55-
public void setContent(String content) {
56-
this.content = content;
57-
}
35+
public record AssistantReasoningData(@JsonProperty("reasoningId") String reasoningId,
36+
@JsonProperty("content") String content) {
5837
}
5938
}

src/main/java/com/github/copilot/sdk/events/AssistantTurnEndEvent.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,6 @@ public void setData(AssistantTurnEndData data) {
3232
}
3333

3434
@JsonIgnoreProperties(ignoreUnknown = true)
35-
public static class AssistantTurnEndData {
36-
37-
@JsonProperty("turnId")
38-
private String turnId;
39-
40-
public String getTurnId() {
41-
return turnId;
42-
}
43-
44-
public void setTurnId(String turnId) {
45-
this.turnId = turnId;
46-
}
35+
public record AssistantTurnEndData(@JsonProperty("turnId") String turnId) {
4736
}
4837
}

src/main/java/com/github/copilot/sdk/events/AssistantTurnStartEvent.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,6 @@ public void setData(AssistantTurnStartData data) {
3232
}
3333

3434
@JsonIgnoreProperties(ignoreUnknown = true)
35-
public static class AssistantTurnStartData {
36-
37-
@JsonProperty("turnId")
38-
private String turnId;
39-
40-
public String getTurnId() {
41-
return turnId;
42-
}
43-
44-
public void setTurnId(String turnId) {
45-
this.turnId = turnId;
46-
}
35+
public record AssistantTurnStartData(@JsonProperty("turnId") String turnId) {
4736
}
4837
}

src/main/java/com/github/copilot/sdk/events/PendingMessagesModifiedEvent.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ public void setData(PendingMessagesModifiedData data) {
3232
}
3333

3434
@JsonIgnoreProperties(ignoreUnknown = true)
35-
public static class PendingMessagesModifiedData {
36-
// Empty data
35+
public record PendingMessagesModifiedData() {
3736
}
3837
}

0 commit comments

Comments
 (0)