يتم إعطاؤك مقتطف تعليمات برمجية لفئة Java تسمى "SchematronPreprocessMojo" المستخدمة في مشروع Maven. مهمتك هي تحليل الكود والإجابة على مجموعة من الأسئلة المتعلقة ببنيته وشروحه.

يتضمن مقتطف الشفرة ما يلي:

- تم إعلان الفئة على أنها "نهائية" بالاسم "SchematronPreprocessMojo".
- يمتد الفصل إلى فئة `AbstractMojo`.
- تحتوي فئة `SchematronPreprocessMojo` على تعليق توضيحي `@Mojo` يُستخدم في مكونات Maven الإضافية لتحديد الأهداف. يحتوي التعليق التوضيحي على سمتين: "الاسم" و"المرحلة الافتراضية". تحدد سمة "الاسم" اسم الهدف، وتحدد سمة "المرحلة الافتراضية" المرحلة التي يتم فيها تنفيذ الهدف. تم تعيين السمة `threadSafe` على `true`، مما يشير إلى أن Mojo آمن ليتم استدعاؤه بشكل متزامن بواسطة سلاسل رسائل متعددة.
- يحتوي الفصل على حقل خاص `buildContext` من النوع `BuildContext`، والذي تم شرحه بـ `@Component`.
- يمثل `BuildContext` سياق عملية الإنشاء، ويتم استخدامه في مكونات Maven الإضافية للتفاعل مع نظام الإنشاء.
- لا تحتوي فئة `SchematronPreprocessMojo` على أي تعليمات برمجية إضافية.

أجب عن الأسئلة التالية بناءً على مقتطف الشفرة:

1. ما هو الغرض من فئة `SchematronPreprocessMojo` في مشروع Maven؟
2. ما هي العلاقة بين فئة "SchematronPreprocessMojo" وفئة "AbstractMojo"؟
3. ما أهمية التعليق التوضيحي `@Mojo` في مقتطف الشفرة؟ اشرح صفاته.
4. ما هو الغرض من حقل "BuildContext" في فئة "SchematronPreprocessMojo"؟
5. ما هو دور التعليق التوضيحي "@Component" في حقل "buildContext"؟
{"evolved_from": null, "kind": "synthetic", "source": "argilla/DistiCoder-dpo-binarized"}