diff --git a/.all-contributorsrc b/.all-contributorsrc
index 9814ea55b889..3289d1952b56 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -3285,6 +3285,15 @@
"contributions": [
"doc"
]
+ },
+ {
+ "login": "SalmaAzeem",
+ "name": "Salma",
+ "avatar_url": "https://avatars.githubusercontent.com/u/121863224?v=4",
+ "profile": "https://github.com/SalmaAzeem",
+ "contributions": [
+ "code"
+ ]
}
],
"contributorsPerLine": 6,
diff --git a/README.md b/README.md
index b1f0bb4481ae..d695f079197a 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
[](https://sonarcloud.io/dashboard?id=iluwatar_java-design-patterns)
[](https://gitter.im/iluwatar/java-design-patterns?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
-[](#contributors-)
+[](#contributors-)
@@ -540,6 +540,9 @@ This project is licensed under the terms of the MIT license.
 Juyeon 🌍 |
 Mammad Yahyayev 📖 |
+
+  Salma 💻 |
+
diff --git a/composite-view/web/index.jsp b/composite-view/web/index.jsp
index cb268a7637d4..47a8d774caad 100644
--- a/composite-view/web/index.jsp
+++ b/composite-view/web/index.jsp
@@ -26,21 +26,53 @@
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-
+
+ Composite Patterns Mock News Site
-
-
+
+
Welcome To The Composite Patterns Mock News Site
- Send a GET request to the "/news" path to see the composite view with mock news
- Use the following parameters:
- name: string name to be dynamically displayed
- bus: boolean for whether you want to see the mock business news
- world: boolean for whether you want to see the mock world news
- sci: boolean for whether you want to see the mock world news
- sport: boolean for whether you want to see the mock world news
-
+
+
Send a GET request to the "/news" path to see the composite view with mock news
+ Use the following parameters:
+ name: string - Your name to be dynamically displayed
+ bus: boolean - Set to true to see mock business news
+ world: boolean - Set to true to see mock world news
+ sci: boolean - Set to true to see mock science news
+ sport: boolean - Set to true to see mock sports news
+ Example Request:
+ /news?name=John&bus=true&world=false&sci=true&sport=false
+ If the request fails, ensure you have the correct parameters and try again.
+
+
diff --git a/event-aggregator/src/main/java/com/iluwatar/event/aggregator/KingsHand.java b/event-aggregator/src/main/java/com/iluwatar/event/aggregator/KingsHand.java
index 38bb04ea45cb..aa249c13cab3 100644
--- a/event-aggregator/src/main/java/com/iluwatar/event/aggregator/KingsHand.java
+++ b/event-aggregator/src/main/java/com/iluwatar/event/aggregator/KingsHand.java
@@ -43,5 +43,7 @@ public void onEvent(Event e) {
@Override
public void timePasses(Weekday day) {
+ // This method is intentionally left empty because KingsHand does not handle time-based events directly.
+ // It serves as a placeholder to fulfill the EventObserver interface contract.
}
}
diff --git a/filterer/src/main/java/com/iluwatar/filterer/threat/ThreatAwareSystem.java b/filterer/src/main/java/com/iluwatar/filterer/threat/ThreatAwareSystem.java
index 6e9bf7af6df6..c0de663d3b04 100644
--- a/filterer/src/main/java/com/iluwatar/filterer/threat/ThreatAwareSystem.java
+++ b/filterer/src/main/java/com/iluwatar/filterer/threat/ThreatAwareSystem.java
@@ -30,7 +30,7 @@
/**
* Represents system that is aware of threats that are present in it.
*/
-public interface ThreatAwareSystem {
+public interface ThreatAwareSystem {
/**
* Returns the system id.
@@ -43,13 +43,13 @@ public interface ThreatAwareSystem {
* Returns list of threats for this system.
* @return list of threats for this system.
*/
- List extends Threat> threats();
+ List threats();
/**
* Returns the instance of {@link Filterer} helper interface that allows to covariantly
* specify lower bound for predicate that we want to filter by.
* @return an instance of {@link Filterer} helper interface.
*/
- Filterer extends ThreatAwareSystem, ? extends Threat> filtered();
+ Filterer, T> filtered();
}
diff --git a/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java b/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java
index 83c631db0f22..210892e6a022 100644
--- a/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java
+++ b/game-loop/src/test/java/com/iluwatar/gameloop/GameLoopTest.java
@@ -24,10 +24,9 @@
*/
package com.iluwatar.gameloop;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -46,6 +45,7 @@ void setup() {
gameLoop = new GameLoop() {
@Override
protected void processGameLoop() {
+ throw new UnsupportedOperationException("Not supported yet.");
}
};
}
diff --git a/localization/ar/abstract-document/README.md b/localization/ar/abstract-document/README.md
new file mode 100644
index 000000000000..bf1599124f26
--- /dev/null
+++ b/localization/ar/abstract-document/README.md
@@ -0,0 +1,188 @@
+---
+title: Abstract Document
+shortTitle: Abstract Document
+category: Structural
+language: ar
+tag:
+ - Extensibility
+---
+
+
+## الهدف
+
+استخدام الخصائص الديناميكية والحصول على مرونة اللغات غير المتغيرة مع الحفاظ على أمان الأنواع.
+
+## التوضيح
+
+يتيح استخدام نمط الوثيقة المجردة إدارة الخصائص غير الثابتة الإضافية. يستخدم هذا النمط مفهوم
+السمات لتمكين أمان الأنواع وخصائص مفصولة من فئات مختلفة في مجموعة من الواجهات.
+
+مثال من العالم الحقيقي
+
+> خذ على سبيل المثال سيارة مكونة من العديد من الأجزاء. ومع ذلك، لا نعرف إذا كانت السيارة تحتوي على جميع الأجزاء أو جزء منها فقط. سياراتنا ديناميكية ومرنة للغاية.
+
+بصيغة أخرى
+
+> يسمح نمط الوثيقة المجردة بإضافة خصائص إلى الكائنات دون أن تكون هذه الكائنات على دراية بذلك.
+
+حسب ويكيبيديا
+
+> نمط تصميم هيكلي موجه للكائنات لتنظيم الكائنات في حاويات من نوع مفتاح-قيمة بشكل فضفاض مع نوعية غير محددة، وكشف البيانات باستخدام طرق عرض مهيكلة. الهدف من هذا النمط هو تحقيق درجة عالية من المرونة بين المكونات في لغة قوية النوع حيث يمكن إضافة خصائص جديدة إلى شجرة الكائنات أثناء العمل دون فقدان دعم أمان الأنواع. يستخدم النمط السمات لفصل خصائص مختلفة للفئة إلى واجهات متعددة.
+
+**مثال برمجي**
+
+أولاً، دعونا نعرف الفئات الأساسية `Document` و `AbstractDocument`. في الأساس، تجعل الكائن يحتوي على خريطة من الخصائص وأي عدد من الكائنات الفرعية.
+
+
+```java
+public interface Document {
+
+ Void put(String key, Object value);
+
+ Object get(String key);
+
+ Stream children(String key, Function