From c473643d4eec4f1dddddb299bc36567ee6bb559c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 21 Mar 2026 17:27:25 +0000 Subject: [PATCH 1/3] Initial plan From c5bd1ae7e052c14b38a61abeaf89d881ed80a673 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 21 Mar 2026 17:43:33 +0000 Subject: [PATCH 2/3] Add Java Module Ecore model project Create full Ecore model project for Java module system (module-info.java concepts): - Module, Requires (transitive/static), Exports, Opens, Provides, Uses EClasses - Ecore model (.ecore) and genmodel (.genmodel) files - Java interfaces (JavaModulePackage, JavaModuleFactory, model classes) - Impl classes using dynamic EMF feature delegation - Util classes (Switch, AdapterFactory) - Parent and model Maven POMs with EMF Ecore dependency Notes: - Compiled with Java 17 (environment constraint); set to 17 - module-info.java omitted: ncore dependency (2025.12.0) requires Java 21 bytecode - JavaModuleEPackageResourceSetCapabilityFactory omitted for same reason Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .gitignore | 4 + model/META-INF/MANIFEST.MF | 16 ++ model/model/java-module.ecore | 126 ++++++++++ model/model/java-module.genmodel | 40 +++ model/pom.xml | 67 +++++ .../nasdanika/models/java/module/Exports.java | 57 +++++ .../models/java/module/JavaModuleFactory.java | 73 ++++++ .../models/java/module/JavaModulePackage.java | 228 ++++++++++++++++++ .../nasdanika/models/java/module/Module.java | 102 ++++++++ .../nasdanika/models/java/module/Opens.java | 57 +++++ .../models/java/module/Provides.java | 57 +++++ .../models/java/module/Requires.java | 84 +++++++ .../nasdanika/models/java/module/Uses.java | 46 ++++ .../models/java/module/impl/ExportsImpl.java | 98 ++++++++ .../module/impl/JavaModuleFactoryImpl.java | 103 ++++++++ .../module/impl/JavaModulePackageImpl.java | 206 ++++++++++++++++ .../models/java/module/impl/ModuleImpl.java | 191 +++++++++++++++ .../models/java/module/impl/OpensImpl.java | 98 ++++++++ .../models/java/module/impl/ProvidesImpl.java | 98 ++++++++ .../models/java/module/impl/RequiresImpl.java | 119 +++++++++ .../models/java/module/impl/UsesImpl.java | 77 ++++++ .../module/util/JavaModuleAdapterFactory.java | 72 ++++++ .../java/module/util/JavaModuleSwitch.java | 89 +++++++ pom.xml | 126 ++++++++++ 24 files changed, 2234 insertions(+) create mode 100644 .gitignore create mode 100644 model/META-INF/MANIFEST.MF create mode 100644 model/model/java-module.ecore create mode 100644 model/model/java-module.genmodel create mode 100644 model/pom.xml create mode 100644 model/src/main/java/org/nasdanika/models/java/module/Exports.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/JavaModuleFactory.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/JavaModulePackage.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/Module.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/Opens.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/Provides.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/Requires.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/Uses.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/impl/ExportsImpl.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/impl/JavaModuleFactoryImpl.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/impl/JavaModulePackageImpl.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/impl/ModuleImpl.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/impl/OpensImpl.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/impl/ProvidesImpl.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/impl/RequiresImpl.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/impl/UsesImpl.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/util/JavaModuleAdapterFactory.java create mode 100644 model/src/main/java/org/nasdanika/models/java/module/util/JavaModuleSwitch.java create mode 100644 pom.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..459016f --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +target/ +.settings/ +.classpath +*.versionsBackup diff --git a/model/META-INF/MANIFEST.MF b/model/META-INF/MANIFEST.MF new file mode 100644 index 0000000..bdea6ef --- /dev/null +++ b/model/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-SymbolicName: org.nasdanika.models.java.module;singleton:=true +Automatic-Module-Name: org.nasdanika.models.java.module +Bundle-Version: 1.0.0.qualifier +Bundle-ClassPath: . +Bundle-Vendor: %providerName +Bundle-Localization: plugin +Bundle-RequiredExecutionEnvironment: JavaSE-17 +Export-Package: org.nasdanika.models.java.module, + org.nasdanika.models.java.module.impl, + org.nasdanika.models.java.module.util +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.emf.ecore;visibility:=reexport +Bundle-ActivationPolicy: lazy diff --git a/model/model/java-module.ecore b/model/model/java-module.ecore new file mode 100644 index 0000000..ab455ae --- /dev/null +++ b/model/model/java-module.ecore @@ -0,0 +1,126 @@ + + + +
+ + + +
+ + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + +
+ + + + + +
+ + + +
+ + + + diff --git a/model/model/java-module.genmodel b/model/model/java-module.genmodel new file mode 100644 index 0000000..5204fbc --- /dev/null +++ b/model/model/java-module.genmodel @@ -0,0 +1,40 @@ + + + java-module.ecore + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/model/pom.xml b/model/pom.xml new file mode 100644 index 0000000..de85ad7 --- /dev/null +++ b/model/pom.xml @@ -0,0 +1,67 @@ + + + 4.0.0 + + org.nasdanika.models.java.module + 2026.3.0 + parent + .. + + model + jar + Ecore Java Module Model + + + + org.apache.maven.plugins + maven-jar-plugin + 3.5.0 + + + package + + jar + + + model + + model/** + + ${project.basedir} + + + + + + org.jacoco + jacoco-maven-plugin + ${jacoco.version} + + + default-prepare-agent + + prepare-agent + + + + report + verify + + report + + + + + + + + + + org.eclipse.emf + org.eclipse.emf.ecore + 2.41.0 + + + diff --git a/model/src/main/java/org/nasdanika/models/java/module/Exports.java b/model/src/main/java/org/nasdanika/models/java/module/Exports.java new file mode 100644 index 0000000..bb95a23 --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/Exports.java @@ -0,0 +1,57 @@ +/** + */ +package org.nasdanika.models.java.module; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Exports'. + * + * + * + * An exports directive making a package accessible to other modules. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.nasdanika.models.java.module.Exports#getName Name}
  • + *
  • {@link org.nasdanika.models.java.module.Exports#getModules Modules}
  • + *
+ * + * @see org.nasdanika.models.java.module.JavaModulePackage#getExports() + * @model + * @generated + */ +public interface Exports extends EObject { + /** + * Returns the value of the 'Name' attribute. + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see org.nasdanika.models.java.module.JavaModulePackage#getExports_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.nasdanika.models.java.module.Exports#getName Name}' attribute. + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Modules' attribute list. + * @return the value of the 'Modules' attribute list. + * @see org.nasdanika.models.java.module.JavaModulePackage#getExports_Modules() + * @model + * @generated + */ + EList getModules(); + +} // Exports diff --git a/model/src/main/java/org/nasdanika/models/java/module/JavaModuleFactory.java b/model/src/main/java/org/nasdanika/models/java/module/JavaModuleFactory.java new file mode 100644 index 0000000..a4abf8d --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/JavaModuleFactory.java @@ -0,0 +1,73 @@ +/** + */ +package org.nasdanika.models.java.module; + +import org.eclipse.emf.ecore.EFactory; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see org.nasdanika.models.java.module.JavaModulePackage + * @generated + */ +public interface JavaModuleFactory extends EFactory { + /** + * The singleton instance of the factory. + * + * + * @generated + */ + JavaModuleFactory eINSTANCE = org.nasdanika.models.java.module.impl.JavaModuleFactoryImpl.init(); + + /** + * Returns a new object of class 'Module'. + * @return a new object of class 'Module'. + * @generated + */ + Module createModule(); + + /** + * Returns a new object of class 'Requires'. + * @return a new object of class 'Requires'. + * @generated + */ + Requires createRequires(); + + /** + * Returns a new object of class 'Exports'. + * @return a new object of class 'Exports'. + * @generated + */ + Exports createExports(); + + /** + * Returns a new object of class 'Opens'. + * @return a new object of class 'Opens'. + * @generated + */ + Opens createOpens(); + + /** + * Returns a new object of class 'Provides'. + * @return a new object of class 'Provides'. + * @generated + */ + Provides createProvides(); + + /** + * Returns a new object of class 'Uses'. + * @return a new object of class 'Uses'. + * @generated + */ + Uses createUses(); + + /** + * Returns the package supported by this factory. + * @return the package supported by this factory. + * @generated + */ + JavaModulePackage getJavaModulePackage(); + +} //JavaModuleFactory diff --git a/model/src/main/java/org/nasdanika/models/java/module/JavaModulePackage.java b/model/src/main/java/org/nasdanika/models/java/module/JavaModulePackage.java new file mode 100644 index 0000000..012c8ca --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/JavaModulePackage.java @@ -0,0 +1,228 @@ +/** + */ +package org.nasdanika.models.java.module; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * + * Ecore model of Java module system concepts - module, requires (transitive), exports, opens, provides, uses. + * + * @see org.nasdanika.models.java.module.JavaModuleFactory + * @model kind="package" + * @generated + */ +public interface JavaModulePackage extends EPackage { + /** + * The package name. + * + * + * @generated + */ + String eNAME = "java.module"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "ecore://nasdanika.org/models/java/module"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "org.nasdanika.models.java.module"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + JavaModulePackage eINSTANCE = org.nasdanika.models.java.module.impl.JavaModulePackageImpl.init(); + + /** + * The meta object id for the '{@link org.nasdanika.models.java.module.impl.ModuleImpl Module}' class. + * @see org.nasdanika.models.java.module.impl.ModuleImpl + * @see org.nasdanika.models.java.module.impl.JavaModulePackageImpl#getModule() + * @generated + */ + int MODULE = 0; + + int MODULE__NAME = 0; + int MODULE__REQUIRES = 1; + int MODULE__EXPORTS = 2; + int MODULE__OPENS = 3; + int MODULE__PROVIDES = 4; + int MODULE__USES = 5; + int MODULE_FEATURE_COUNT = 6; + int MODULE_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.nasdanika.models.java.module.impl.RequiresImpl Requires}' class. + * @see org.nasdanika.models.java.module.impl.RequiresImpl + * @see org.nasdanika.models.java.module.impl.JavaModulePackageImpl#getRequires() + * @generated + */ + int REQUIRES = 1; + + int REQUIRES__NAME = 0; + int REQUIRES__TRANSITIVE = 1; + int REQUIRES__STATIC = 2; + int REQUIRES_FEATURE_COUNT = 3; + int REQUIRES_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.nasdanika.models.java.module.impl.ExportsImpl Exports}' class. + * @see org.nasdanika.models.java.module.impl.ExportsImpl + * @see org.nasdanika.models.java.module.impl.JavaModulePackageImpl#getExports() + * @generated + */ + int EXPORTS = 2; + + int EXPORTS__NAME = 0; + int EXPORTS__MODULES = 1; + int EXPORTS_FEATURE_COUNT = 2; + int EXPORTS_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.nasdanika.models.java.module.impl.OpensImpl Opens}' class. + * @see org.nasdanika.models.java.module.impl.OpensImpl + * @see org.nasdanika.models.java.module.impl.JavaModulePackageImpl#getOpens() + * @generated + */ + int OPENS = 3; + + int OPENS__NAME = 0; + int OPENS__MODULES = 1; + int OPENS_FEATURE_COUNT = 2; + int OPENS_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.nasdanika.models.java.module.impl.ProvidesImpl Provides}' class. + * @see org.nasdanika.models.java.module.impl.ProvidesImpl + * @see org.nasdanika.models.java.module.impl.JavaModulePackageImpl#getProvides() + * @generated + */ + int PROVIDES = 4; + + int PROVIDES__SERVICE = 0; + int PROVIDES__IMPLEMENTATIONS = 1; + int PROVIDES_FEATURE_COUNT = 2; + int PROVIDES_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.nasdanika.models.java.module.impl.UsesImpl Uses}' class. + * @see org.nasdanika.models.java.module.impl.UsesImpl + * @see org.nasdanika.models.java.module.impl.JavaModulePackageImpl#getUses() + * @generated + */ + int USES = 5; + + int USES__SERVICE = 0; + int USES_FEATURE_COUNT = 1; + int USES_OPERATION_COUNT = 0; + + /** + * Returns the meta object for class Module. + * @return the meta object for class Module. + * @see org.nasdanika.models.java.module.Module + * @generated + */ + EClass getModule(); + EAttribute getModule_Name(); + EReference getModule_Requires(); + EReference getModule_Exports(); + EReference getModule_Opens(); + EReference getModule_Provides(); + EReference getModule_Uses(); + + EClass getRequires(); + EAttribute getRequires_Name(); + EAttribute getRequires_Transitive(); + EAttribute getRequires_Static(); + + EClass getExports(); + EAttribute getExports_Name(); + EAttribute getExports_Modules(); + + EClass getOpens(); + EAttribute getOpens_Name(); + EAttribute getOpens_Modules(); + + EClass getProvides(); + EAttribute getProvides_Service(); + EAttribute getProvides_Implementations(); + + EClass getUses(); + EAttribute getUses_Service(); + + /** + * Returns the factory that creates the instances of the model. + * @return the factory that creates the instances of the model. + * @generated + */ + JavaModuleFactory getJavaModuleFactory(); + + /** + * + * Defines literals for the meta objects that represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @generated + */ + interface Literals { + EClass MODULE = eINSTANCE.getModule(); + EAttribute MODULE__NAME = eINSTANCE.getModule_Name(); + EReference MODULE__REQUIRES = eINSTANCE.getModule_Requires(); + EReference MODULE__EXPORTS = eINSTANCE.getModule_Exports(); + EReference MODULE__OPENS = eINSTANCE.getModule_Opens(); + EReference MODULE__PROVIDES = eINSTANCE.getModule_Provides(); + EReference MODULE__USES = eINSTANCE.getModule_Uses(); + + EClass REQUIRES = eINSTANCE.getRequires(); + EAttribute REQUIRES__NAME = eINSTANCE.getRequires_Name(); + EAttribute REQUIRES__TRANSITIVE = eINSTANCE.getRequires_Transitive(); + EAttribute REQUIRES__STATIC = eINSTANCE.getRequires_Static(); + + EClass EXPORTS = eINSTANCE.getExports(); + EAttribute EXPORTS__NAME = eINSTANCE.getExports_Name(); + EAttribute EXPORTS__MODULES = eINSTANCE.getExports_Modules(); + + EClass OPENS = eINSTANCE.getOpens(); + EAttribute OPENS__NAME = eINSTANCE.getOpens_Name(); + EAttribute OPENS__MODULES = eINSTANCE.getOpens_Modules(); + + EClass PROVIDES = eINSTANCE.getProvides(); + EAttribute PROVIDES__SERVICE = eINSTANCE.getProvides_Service(); + EAttribute PROVIDES__IMPLEMENTATIONS = eINSTANCE.getProvides_Implementations(); + + EClass USES = eINSTANCE.getUses(); + EAttribute USES__SERVICE = eINSTANCE.getUses_Service(); + } + +} //JavaModulePackage diff --git a/model/src/main/java/org/nasdanika/models/java/module/Module.java b/model/src/main/java/org/nasdanika/models/java/module/Module.java new file mode 100644 index 0000000..15921d5 --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/Module.java @@ -0,0 +1,102 @@ +/** + */ +package org.nasdanika.models.java.module; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Module'. + * + * + * + * A Java module declaration as defined in module-info.java. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.nasdanika.models.java.module.Module#getName Name}
  • + *
  • {@link org.nasdanika.models.java.module.Module#getRequires Requires}
  • + *
  • {@link org.nasdanika.models.java.module.Module#getExports Exports}
  • + *
  • {@link org.nasdanika.models.java.module.Module#getOpens Opens}
  • + *
  • {@link org.nasdanika.models.java.module.Module#getProvides Provides}
  • + *
  • {@link org.nasdanika.models.java.module.Module#getUses Uses}
  • + *
+ * + * @see org.nasdanika.models.java.module.JavaModulePackage#getModule() + * @model + * @generated + */ +public interface Module extends EObject { + /** + * Returns the value of the 'Name' attribute. + * + * + * + * The module name. + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see org.nasdanika.models.java.module.JavaModulePackage#getModule_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.nasdanika.models.java.module.Module#getName Name}' attribute. + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Requires' containment reference list. + * @return the value of the 'Requires' containment reference list. + * @see org.nasdanika.models.java.module.JavaModulePackage#getModule_Requires() + * @model containment="true" + * @generated + */ + EList getRequires(); + + /** + * Returns the value of the 'Exports' containment reference list. + * @return the value of the 'Exports' containment reference list. + * @see org.nasdanika.models.java.module.JavaModulePackage#getModule_Exports() + * @model containment="true" + * @generated + */ + EList getExports(); + + /** + * Returns the value of the 'Opens' containment reference list. + * @return the value of the 'Opens' containment reference list. + * @see org.nasdanika.models.java.module.JavaModulePackage#getModule_Opens() + * @model containment="true" + * @generated + */ + EList getOpens(); + + /** + * Returns the value of the 'Provides' containment reference list. + * @return the value of the 'Provides' containment reference list. + * @see org.nasdanika.models.java.module.JavaModulePackage#getModule_Provides() + * @model containment="true" + * @generated + */ + EList getProvides(); + + /** + * Returns the value of the 'Uses' containment reference list. + * @return the value of the 'Uses' containment reference list. + * @see org.nasdanika.models.java.module.JavaModulePackage#getModule_Uses() + * @model containment="true" + * @generated + */ + EList getUses(); + +} // Module diff --git a/model/src/main/java/org/nasdanika/models/java/module/Opens.java b/model/src/main/java/org/nasdanika/models/java/module/Opens.java new file mode 100644 index 0000000..2145d59 --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/Opens.java @@ -0,0 +1,57 @@ +/** + */ +package org.nasdanika.models.java.module; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Opens'. + * + * + * + * An opens directive making a package open for deep reflection at runtime. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.nasdanika.models.java.module.Opens#getName Name}
  • + *
  • {@link org.nasdanika.models.java.module.Opens#getModules Modules}
  • + *
+ * + * @see org.nasdanika.models.java.module.JavaModulePackage#getOpens() + * @model + * @generated + */ +public interface Opens extends EObject { + /** + * Returns the value of the 'Name' attribute. + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see org.nasdanika.models.java.module.JavaModulePackage#getOpens_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.nasdanika.models.java.module.Opens#getName Name}' attribute. + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Modules' attribute list. + * @return the value of the 'Modules' attribute list. + * @see org.nasdanika.models.java.module.JavaModulePackage#getOpens_Modules() + * @model + * @generated + */ + EList getModules(); + +} // Opens diff --git a/model/src/main/java/org/nasdanika/models/java/module/Provides.java b/model/src/main/java/org/nasdanika/models/java/module/Provides.java new file mode 100644 index 0000000..78d4162 --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/Provides.java @@ -0,0 +1,57 @@ +/** + */ +package org.nasdanika.models.java.module; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Provides'. + * + * + * + * A provides directive declaring that this module provides an implementation of a service interface. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.nasdanika.models.java.module.Provides#getService Service}
  • + *
  • {@link org.nasdanika.models.java.module.Provides#getImplementations Implementations}
  • + *
+ * + * @see org.nasdanika.models.java.module.JavaModulePackage#getProvides() + * @model + * @generated + */ +public interface Provides extends EObject { + /** + * Returns the value of the 'Service' attribute. + * @return the value of the 'Service' attribute. + * @see #setService(String) + * @see org.nasdanika.models.java.module.JavaModulePackage#getProvides_Service() + * @model + * @generated + */ + String getService(); + + /** + * Sets the value of the '{@link org.nasdanika.models.java.module.Provides#getService Service}' attribute. + * @param value the new value of the 'Service' attribute. + * @see #getService() + * @generated + */ + void setService(String value); + + /** + * Returns the value of the 'Implementations' attribute list. + * @return the value of the 'Implementations' attribute list. + * @see org.nasdanika.models.java.module.JavaModulePackage#getProvides_Implementations() + * @model + * @generated + */ + EList getImplementations(); + +} // Provides diff --git a/model/src/main/java/org/nasdanika/models/java/module/Requires.java b/model/src/main/java/org/nasdanika/models/java/module/Requires.java new file mode 100644 index 0000000..b7fa19f --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/Requires.java @@ -0,0 +1,84 @@ +/** + */ +package org.nasdanika.models.java.module; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Requires'. + * + * + * + * A requires directive declaring a dependency on another module. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.nasdanika.models.java.module.Requires#getName Name}
  • + *
  • {@link org.nasdanika.models.java.module.Requires#isTransitive Transitive}
  • + *
  • {@link org.nasdanika.models.java.module.Requires#isStatic Static}
  • + *
+ * + * @see org.nasdanika.models.java.module.JavaModulePackage#getRequires() + * @model + * @generated + */ +public interface Requires extends EObject { + /** + * Returns the value of the 'Name' attribute. + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see org.nasdanika.models.java.module.JavaModulePackage#getRequires_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.nasdanika.models.java.module.Requires#getName Name}' attribute. + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + + /** + * Returns the value of the 'Transitive' attribute. + * @return the value of the 'Transitive' attribute. + * @see #setTransitive(boolean) + * @see org.nasdanika.models.java.module.JavaModulePackage#getRequires_Transitive() + * @model + * @generated + */ + boolean isTransitive(); + + /** + * Sets the value of the '{@link org.nasdanika.models.java.module.Requires#isTransitive Transitive}' attribute. + * @param value the new value of the 'Transitive' attribute. + * @see #isTransitive() + * @generated + */ + void setTransitive(boolean value); + + /** + * Returns the value of the 'Static' attribute. + * @return the value of the 'Static' attribute. + * @see #setStatic(boolean) + * @see org.nasdanika.models.java.module.JavaModulePackage#getRequires_Static() + * @model + * @generated + */ + boolean isStatic(); + + /** + * Sets the value of the '{@link org.nasdanika.models.java.module.Requires#isStatic Static}' attribute. + * @param value the new value of the 'Static' attribute. + * @see #isStatic() + * @generated + */ + void setStatic(boolean value); + +} // Requires diff --git a/model/src/main/java/org/nasdanika/models/java/module/Uses.java b/model/src/main/java/org/nasdanika/models/java/module/Uses.java new file mode 100644 index 0000000..e9174df --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/Uses.java @@ -0,0 +1,46 @@ +/** + */ +package org.nasdanika.models.java.module; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Uses'. + * + * + * + * A uses directive declaring that this module uses a service defined by a service interface. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.nasdanika.models.java.module.Uses#getService Service}
  • + *
+ * + * @see org.nasdanika.models.java.module.JavaModulePackage#getUses() + * @model + * @generated + */ +public interface Uses extends EObject { + /** + * Returns the value of the 'Service' attribute. + * @return the value of the 'Service' attribute. + * @see #setService(String) + * @see org.nasdanika.models.java.module.JavaModulePackage#getUses_Service() + * @model + * @generated + */ + String getService(); + + /** + * Sets the value of the '{@link org.nasdanika.models.java.module.Uses#getService Service}' attribute. + * @param value the new value of the 'Service' attribute. + * @see #getService() + * @generated + */ + void setService(String value); + +} // Uses diff --git a/model/src/main/java/org/nasdanika/models/java/module/impl/ExportsImpl.java b/model/src/main/java/org/nasdanika/models/java/module/impl/ExportsImpl.java new file mode 100644 index 0000000..a1a95c6 --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/impl/ExportsImpl.java @@ -0,0 +1,98 @@ +/** + */ +package org.nasdanika.models.java.module.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.nasdanika.models.java.module.Exports; +import org.nasdanika.models.java.module.JavaModulePackage; + +/** + * + * An implementation of the model object 'Exports'. + * + * @generated + */ +public class ExportsImpl extends MinimalEObjectImpl.Container implements Exports { + + protected static final String NAME_EDEFAULT = null; + + protected ExportsImpl() { + super(); + } + + @Override + protected EClass eStaticClass() { + return JavaModulePackage.Literals.EXPORTS; + } + + @Override + public String getName() { + return (String) eDynamicGet(JavaModulePackage.EXPORTS__NAME, JavaModulePackage.Literals.EXPORTS__NAME, true, true); + } + + @Override + public void setName(String newName) { + eDynamicSet(JavaModulePackage.EXPORTS__NAME, JavaModulePackage.Literals.EXPORTS__NAME, newName); + } + + @SuppressWarnings("unchecked") + @Override + public EList getModules() { + return (EList) eDynamicGet(JavaModulePackage.EXPORTS__MODULES, JavaModulePackage.Literals.EXPORTS__MODULES, true, true); + } + + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case JavaModulePackage.EXPORTS__NAME: + return getName(); + case JavaModulePackage.EXPORTS__MODULES: + return getModules(); + } + return super.eGet(featureID, resolve, coreType); + } + + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case JavaModulePackage.EXPORTS__NAME: + setName((String) newValue); + return; + case JavaModulePackage.EXPORTS__MODULES: + getModules().clear(); + getModules().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + @Override + public void eUnset(int featureID) { + switch (featureID) { + case JavaModulePackage.EXPORTS__NAME: + setName(NAME_EDEFAULT); + return; + case JavaModulePackage.EXPORTS__MODULES: + getModules().clear(); + return; + } + super.eUnset(featureID); + } + + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case JavaModulePackage.EXPORTS__NAME: + return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName()); + case JavaModulePackage.EXPORTS__MODULES: + return !getModules().isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ExportsImpl diff --git a/model/src/main/java/org/nasdanika/models/java/module/impl/JavaModuleFactoryImpl.java b/model/src/main/java/org/nasdanika/models/java/module/impl/JavaModuleFactoryImpl.java new file mode 100644 index 0000000..b1e1b5e --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/impl/JavaModuleFactoryImpl.java @@ -0,0 +1,103 @@ +/** + */ +package org.nasdanika.models.java.module.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.impl.EFactoryImpl; +import org.eclipse.emf.ecore.plugin.EcorePlugin; +import org.nasdanika.models.java.module.Exports; +import org.nasdanika.models.java.module.JavaModuleFactory; +import org.nasdanika.models.java.module.JavaModulePackage; +import org.nasdanika.models.java.module.Module; +import org.nasdanika.models.java.module.Opens; +import org.nasdanika.models.java.module.Provides; +import org.nasdanika.models.java.module.Requires; +import org.nasdanika.models.java.module.Uses; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class JavaModuleFactoryImpl extends EFactoryImpl implements JavaModuleFactory { + + public static JavaModuleFactory init() { + try { + JavaModuleFactory theJavaModuleFactory = (JavaModuleFactory) EPackage.Registry.INSTANCE.getEFactory(JavaModulePackage.eNS_URI); + if (theJavaModuleFactory != null) { + return theJavaModuleFactory; + } + } catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new JavaModuleFactoryImpl(); + } + + public JavaModuleFactoryImpl() { + super(); + } + + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case JavaModulePackage.MODULE: return createModule(); + case JavaModulePackage.REQUIRES: return createRequires(); + case JavaModulePackage.EXPORTS: return createExports(); + case JavaModulePackage.OPENS: return createOpens(); + case JavaModulePackage.PROVIDES: return createProvides(); + case JavaModulePackage.USES: return createUses(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + @Override + public Module createModule() { + ModuleImpl module = new ModuleImpl(); + return module; + } + + @Override + public Requires createRequires() { + RequiresImpl requires = new RequiresImpl(); + return requires; + } + + @Override + public Exports createExports() { + ExportsImpl exports = new ExportsImpl(); + return exports; + } + + @Override + public Opens createOpens() { + OpensImpl opens = new OpensImpl(); + return opens; + } + + @Override + public Provides createProvides() { + ProvidesImpl provides = new ProvidesImpl(); + return provides; + } + + @Override + public Uses createUses() { + UsesImpl uses = new UsesImpl(); + return uses; + } + + @Override + public JavaModulePackage getJavaModulePackage() { + return (JavaModulePackage) getEPackage(); + } + + @Deprecated + public static JavaModulePackage getPackage() { + return JavaModulePackage.eINSTANCE; + } + +} //JavaModuleFactoryImpl diff --git a/model/src/main/java/org/nasdanika/models/java/module/impl/JavaModulePackageImpl.java b/model/src/main/java/org/nasdanika/models/java/module/impl/JavaModulePackageImpl.java new file mode 100644 index 0000000..5d5a7f4 --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/impl/JavaModulePackageImpl.java @@ -0,0 +1,206 @@ +/** + */ +package org.nasdanika.models.java.module.impl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.impl.EPackageImpl; +import org.nasdanika.models.java.module.Exports; +import org.nasdanika.models.java.module.JavaModuleFactory; +import org.nasdanika.models.java.module.JavaModulePackage; +import org.nasdanika.models.java.module.Module; +import org.nasdanika.models.java.module.Opens; +import org.nasdanika.models.java.module.Provides; +import org.nasdanika.models.java.module.Requires; +import org.nasdanika.models.java.module.Uses; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class JavaModulePackageImpl extends EPackageImpl implements JavaModulePackage { + + private EClass moduleEClass = null; + private EClass requiresEClass = null; + private EClass exportsEClass = null; + private EClass opensEClass = null; + private EClass providesEClass = null; + private EClass usesEClass = null; + + private JavaModulePackageImpl() { + super(eNS_URI, JavaModuleFactory.eINSTANCE); + } + + private static boolean isInited = false; + + public static JavaModulePackage init() { + if (isInited) return (JavaModulePackage) EPackage.Registry.INSTANCE.getEPackage(JavaModulePackage.eNS_URI); + + JavaModulePackageImpl theJavaModulePackage = new JavaModulePackageImpl(); + isInited = true; + + theJavaModulePackage.createPackageContents(); + theJavaModulePackage.initializePackageContents(); + + theJavaModulePackage.freeze(); + EPackage.Registry.INSTANCE.put(JavaModulePackage.eNS_URI, theJavaModulePackage); + + return theJavaModulePackage; + } + + @Override + public EClass getModule() { return moduleEClass; } + + @Override + public EAttribute getModule_Name() { return (EAttribute) moduleEClass.getEStructuralFeatures().get(0); } + + @Override + public EReference getModule_Requires() { return (EReference) moduleEClass.getEStructuralFeatures().get(1); } + + @Override + public EReference getModule_Exports() { return (EReference) moduleEClass.getEStructuralFeatures().get(2); } + + @Override + public EReference getModule_Opens() { return (EReference) moduleEClass.getEStructuralFeatures().get(3); } + + @Override + public EReference getModule_Provides() { return (EReference) moduleEClass.getEStructuralFeatures().get(4); } + + @Override + public EReference getModule_Uses() { return (EReference) moduleEClass.getEStructuralFeatures().get(5); } + + @Override + public EClass getRequires() { return requiresEClass; } + + @Override + public EAttribute getRequires_Name() { return (EAttribute) requiresEClass.getEStructuralFeatures().get(0); } + + @Override + public EAttribute getRequires_Transitive() { return (EAttribute) requiresEClass.getEStructuralFeatures().get(1); } + + @Override + public EAttribute getRequires_Static() { return (EAttribute) requiresEClass.getEStructuralFeatures().get(2); } + + @Override + public EClass getExports() { return exportsEClass; } + + @Override + public EAttribute getExports_Name() { return (EAttribute) exportsEClass.getEStructuralFeatures().get(0); } + + @Override + public EAttribute getExports_Modules() { return (EAttribute) exportsEClass.getEStructuralFeatures().get(1); } + + @Override + public EClass getOpens() { return opensEClass; } + + @Override + public EAttribute getOpens_Name() { return (EAttribute) opensEClass.getEStructuralFeatures().get(0); } + + @Override + public EAttribute getOpens_Modules() { return (EAttribute) opensEClass.getEStructuralFeatures().get(1); } + + @Override + public EClass getProvides() { return providesEClass; } + + @Override + public EAttribute getProvides_Service() { return (EAttribute) providesEClass.getEStructuralFeatures().get(0); } + + @Override + public EAttribute getProvides_Implementations() { return (EAttribute) providesEClass.getEStructuralFeatures().get(1); } + + @Override + public EClass getUses() { return usesEClass; } + + @Override + public EAttribute getUses_Service() { return (EAttribute) usesEClass.getEStructuralFeatures().get(0); } + + @Override + public JavaModuleFactory getJavaModuleFactory() { return (JavaModuleFactory) getEFactoryInstance(); } + + private boolean isCreated = false; + + public void createPackageContents() { + if (isCreated) return; + isCreated = true; + + moduleEClass = createEClass(MODULE); + createEAttribute(moduleEClass, MODULE__NAME); + createEReference(moduleEClass, MODULE__REQUIRES); + createEReference(moduleEClass, MODULE__EXPORTS); + createEReference(moduleEClass, MODULE__OPENS); + createEReference(moduleEClass, MODULE__PROVIDES); + createEReference(moduleEClass, MODULE__USES); + + requiresEClass = createEClass(REQUIRES); + createEAttribute(requiresEClass, REQUIRES__NAME); + createEAttribute(requiresEClass, REQUIRES__TRANSITIVE); + createEAttribute(requiresEClass, REQUIRES__STATIC); + + exportsEClass = createEClass(EXPORTS); + createEAttribute(exportsEClass, EXPORTS__NAME); + createEAttribute(exportsEClass, EXPORTS__MODULES); + + opensEClass = createEClass(OPENS); + createEAttribute(opensEClass, OPENS__NAME); + createEAttribute(opensEClass, OPENS__MODULES); + + providesEClass = createEClass(PROVIDES); + createEAttribute(providesEClass, PROVIDES__SERVICE); + createEAttribute(providesEClass, PROVIDES__IMPLEMENTATIONS); + + usesEClass = createEClass(USES); + createEAttribute(usesEClass, USES__SERVICE); + } + + private boolean isInitialized = false; + + public void initializePackageContents() { + if (isInitialized) return; + isInitialized = true; + + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Module + initEClass(moduleEClass, Module.class, "Module", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getModule_Name(), ecorePackage.getEString(), "name", null, 0, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getModule_Requires(), getRequires(), null, "requires", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getModule_Exports(), getExports(), null, "exports", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getModule_Opens(), getOpens(), null, "opens", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getModule_Provides(), getProvides(), null, "provides", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getModule_Uses(), getUses(), null, "uses", null, 0, -1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Requires + initEClass(requiresEClass, Requires.class, "Requires", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getRequires_Name(), ecorePackage.getEString(), "name", null, 0, 1, Requires.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getRequires_Transitive(), ecorePackage.getEBoolean(), "transitive", null, 0, 1, Requires.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getRequires_Static(), ecorePackage.getEBoolean(), "static", null, 0, 1, Requires.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Exports + initEClass(exportsEClass, Exports.class, "Exports", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getExports_Name(), ecorePackage.getEString(), "name", null, 0, 1, Exports.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getExports_Modules(), ecorePackage.getEString(), "modules", null, 0, -1, Exports.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Opens + initEClass(opensEClass, Opens.class, "Opens", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getOpens_Name(), ecorePackage.getEString(), "name", null, 0, 1, Opens.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getOpens_Modules(), ecorePackage.getEString(), "modules", null, 0, -1, Opens.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Provides + initEClass(providesEClass, Provides.class, "Provides", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getProvides_Service(), ecorePackage.getEString(), "service", null, 0, 1, Provides.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getProvides_Implementations(), ecorePackage.getEString(), "implementations", null, 0, -1, Provides.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + // Uses + initEClass(usesEClass, Uses.class, "Uses", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getUses_Service(), ecorePackage.getEString(), "service", null, 0, 1, Uses.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + createResource(eNS_URI); + } + +} //JavaModulePackageImpl diff --git a/model/src/main/java/org/nasdanika/models/java/module/impl/ModuleImpl.java b/model/src/main/java/org/nasdanika/models/java/module/impl/ModuleImpl.java new file mode 100644 index 0000000..77150dc --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/impl/ModuleImpl.java @@ -0,0 +1,191 @@ +/** + */ +package org.nasdanika.models.java.module.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.util.InternalEList; +import org.nasdanika.models.java.module.Exports; +import org.nasdanika.models.java.module.JavaModulePackage; +import org.nasdanika.models.java.module.Module; +import org.nasdanika.models.java.module.Opens; +import org.nasdanika.models.java.module.Provides; +import org.nasdanika.models.java.module.Requires; +import org.nasdanika.models.java.module.Uses; + +/** + * + * An implementation of the model object 'Module'. + * + * @generated + */ +public class ModuleImpl extends MinimalEObjectImpl.Container implements Module { + + protected static final String NAME_EDEFAULT = null; + + protected ModuleImpl() { + super(); + } + + @Override + protected EClass eStaticClass() { + return JavaModulePackage.Literals.MODULE; + } + + @Override + public String getName() { + return (String) eDynamicGet(JavaModulePackage.MODULE__NAME, JavaModulePackage.Literals.MODULE__NAME, true, true); + } + + @Override + public void setName(String newName) { + eDynamicSet(JavaModulePackage.MODULE__NAME, JavaModulePackage.Literals.MODULE__NAME, newName); + } + + @SuppressWarnings("unchecked") + @Override + public EList getRequires() { + return (EList) eDynamicGet(JavaModulePackage.MODULE__REQUIRES, JavaModulePackage.Literals.MODULE__REQUIRES, true, true); + } + + @SuppressWarnings("unchecked") + @Override + public EList getExports() { + return (EList) eDynamicGet(JavaModulePackage.MODULE__EXPORTS, JavaModulePackage.Literals.MODULE__EXPORTS, true, true); + } + + @SuppressWarnings("unchecked") + @Override + public EList getOpens() { + return (EList) eDynamicGet(JavaModulePackage.MODULE__OPENS, JavaModulePackage.Literals.MODULE__OPENS, true, true); + } + + @SuppressWarnings("unchecked") + @Override + public EList getProvides() { + return (EList) eDynamicGet(JavaModulePackage.MODULE__PROVIDES, JavaModulePackage.Literals.MODULE__PROVIDES, true, true); + } + + @SuppressWarnings("unchecked") + @Override + public EList getUses() { + return (EList) eDynamicGet(JavaModulePackage.MODULE__USES, JavaModulePackage.Literals.MODULE__USES, true, true); + } + + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case JavaModulePackage.MODULE__REQUIRES: + return ((InternalEList) getRequires()).basicRemove(otherEnd, msgs); + case JavaModulePackage.MODULE__EXPORTS: + return ((InternalEList) getExports()).basicRemove(otherEnd, msgs); + case JavaModulePackage.MODULE__OPENS: + return ((InternalEList) getOpens()).basicRemove(otherEnd, msgs); + case JavaModulePackage.MODULE__PROVIDES: + return ((InternalEList) getProvides()).basicRemove(otherEnd, msgs); + case JavaModulePackage.MODULE__USES: + return ((InternalEList) getUses()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case JavaModulePackage.MODULE__NAME: + return getName(); + case JavaModulePackage.MODULE__REQUIRES: + return getRequires(); + case JavaModulePackage.MODULE__EXPORTS: + return getExports(); + case JavaModulePackage.MODULE__OPENS: + return getOpens(); + case JavaModulePackage.MODULE__PROVIDES: + return getProvides(); + case JavaModulePackage.MODULE__USES: + return getUses(); + } + return super.eGet(featureID, resolve, coreType); + } + + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case JavaModulePackage.MODULE__NAME: + setName((String) newValue); + return; + case JavaModulePackage.MODULE__REQUIRES: + getRequires().clear(); + getRequires().addAll((Collection) newValue); + return; + case JavaModulePackage.MODULE__EXPORTS: + getExports().clear(); + getExports().addAll((Collection) newValue); + return; + case JavaModulePackage.MODULE__OPENS: + getOpens().clear(); + getOpens().addAll((Collection) newValue); + return; + case JavaModulePackage.MODULE__PROVIDES: + getProvides().clear(); + getProvides().addAll((Collection) newValue); + return; + case JavaModulePackage.MODULE__USES: + getUses().clear(); + getUses().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + @Override + public void eUnset(int featureID) { + switch (featureID) { + case JavaModulePackage.MODULE__NAME: + setName(NAME_EDEFAULT); + return; + case JavaModulePackage.MODULE__REQUIRES: + getRequires().clear(); + return; + case JavaModulePackage.MODULE__EXPORTS: + getExports().clear(); + return; + case JavaModulePackage.MODULE__OPENS: + getOpens().clear(); + return; + case JavaModulePackage.MODULE__PROVIDES: + getProvides().clear(); + return; + case JavaModulePackage.MODULE__USES: + getUses().clear(); + return; + } + super.eUnset(featureID); + } + + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case JavaModulePackage.MODULE__NAME: + return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName()); + case JavaModulePackage.MODULE__REQUIRES: + return !getRequires().isEmpty(); + case JavaModulePackage.MODULE__EXPORTS: + return !getExports().isEmpty(); + case JavaModulePackage.MODULE__OPENS: + return !getOpens().isEmpty(); + case JavaModulePackage.MODULE__PROVIDES: + return !getProvides().isEmpty(); + case JavaModulePackage.MODULE__USES: + return !getUses().isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ModuleImpl diff --git a/model/src/main/java/org/nasdanika/models/java/module/impl/OpensImpl.java b/model/src/main/java/org/nasdanika/models/java/module/impl/OpensImpl.java new file mode 100644 index 0000000..68d8297 --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/impl/OpensImpl.java @@ -0,0 +1,98 @@ +/** + */ +package org.nasdanika.models.java.module.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.nasdanika.models.java.module.JavaModulePackage; +import org.nasdanika.models.java.module.Opens; + +/** + * + * An implementation of the model object 'Opens'. + * + * @generated + */ +public class OpensImpl extends MinimalEObjectImpl.Container implements Opens { + + protected static final String NAME_EDEFAULT = null; + + protected OpensImpl() { + super(); + } + + @Override + protected EClass eStaticClass() { + return JavaModulePackage.Literals.OPENS; + } + + @Override + public String getName() { + return (String) eDynamicGet(JavaModulePackage.OPENS__NAME, JavaModulePackage.Literals.OPENS__NAME, true, true); + } + + @Override + public void setName(String newName) { + eDynamicSet(JavaModulePackage.OPENS__NAME, JavaModulePackage.Literals.OPENS__NAME, newName); + } + + @SuppressWarnings("unchecked") + @Override + public EList getModules() { + return (EList) eDynamicGet(JavaModulePackage.OPENS__MODULES, JavaModulePackage.Literals.OPENS__MODULES, true, true); + } + + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case JavaModulePackage.OPENS__NAME: + return getName(); + case JavaModulePackage.OPENS__MODULES: + return getModules(); + } + return super.eGet(featureID, resolve, coreType); + } + + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case JavaModulePackage.OPENS__NAME: + setName((String) newValue); + return; + case JavaModulePackage.OPENS__MODULES: + getModules().clear(); + getModules().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + @Override + public void eUnset(int featureID) { + switch (featureID) { + case JavaModulePackage.OPENS__NAME: + setName(NAME_EDEFAULT); + return; + case JavaModulePackage.OPENS__MODULES: + getModules().clear(); + return; + } + super.eUnset(featureID); + } + + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case JavaModulePackage.OPENS__NAME: + return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName()); + case JavaModulePackage.OPENS__MODULES: + return !getModules().isEmpty(); + } + return super.eIsSet(featureID); + } + +} //OpensImpl diff --git a/model/src/main/java/org/nasdanika/models/java/module/impl/ProvidesImpl.java b/model/src/main/java/org/nasdanika/models/java/module/impl/ProvidesImpl.java new file mode 100644 index 0000000..344f5d8 --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/impl/ProvidesImpl.java @@ -0,0 +1,98 @@ +/** + */ +package org.nasdanika.models.java.module.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.nasdanika.models.java.module.JavaModulePackage; +import org.nasdanika.models.java.module.Provides; + +/** + * + * An implementation of the model object 'Provides'. + * + * @generated + */ +public class ProvidesImpl extends MinimalEObjectImpl.Container implements Provides { + + protected static final String SERVICE_EDEFAULT = null; + + protected ProvidesImpl() { + super(); + } + + @Override + protected EClass eStaticClass() { + return JavaModulePackage.Literals.PROVIDES; + } + + @Override + public String getService() { + return (String) eDynamicGet(JavaModulePackage.PROVIDES__SERVICE, JavaModulePackage.Literals.PROVIDES__SERVICE, true, true); + } + + @Override + public void setService(String newService) { + eDynamicSet(JavaModulePackage.PROVIDES__SERVICE, JavaModulePackage.Literals.PROVIDES__SERVICE, newService); + } + + @SuppressWarnings("unchecked") + @Override + public EList getImplementations() { + return (EList) eDynamicGet(JavaModulePackage.PROVIDES__IMPLEMENTATIONS, JavaModulePackage.Literals.PROVIDES__IMPLEMENTATIONS, true, true); + } + + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case JavaModulePackage.PROVIDES__SERVICE: + return getService(); + case JavaModulePackage.PROVIDES__IMPLEMENTATIONS: + return getImplementations(); + } + return super.eGet(featureID, resolve, coreType); + } + + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case JavaModulePackage.PROVIDES__SERVICE: + setService((String) newValue); + return; + case JavaModulePackage.PROVIDES__IMPLEMENTATIONS: + getImplementations().clear(); + getImplementations().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + @Override + public void eUnset(int featureID) { + switch (featureID) { + case JavaModulePackage.PROVIDES__SERVICE: + setService(SERVICE_EDEFAULT); + return; + case JavaModulePackage.PROVIDES__IMPLEMENTATIONS: + getImplementations().clear(); + return; + } + super.eUnset(featureID); + } + + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case JavaModulePackage.PROVIDES__SERVICE: + return SERVICE_EDEFAULT == null ? getService() != null : !SERVICE_EDEFAULT.equals(getService()); + case JavaModulePackage.PROVIDES__IMPLEMENTATIONS: + return !getImplementations().isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ProvidesImpl diff --git a/model/src/main/java/org/nasdanika/models/java/module/impl/RequiresImpl.java b/model/src/main/java/org/nasdanika/models/java/module/impl/RequiresImpl.java new file mode 100644 index 0000000..229553e --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/impl/RequiresImpl.java @@ -0,0 +1,119 @@ +/** + */ +package org.nasdanika.models.java.module.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.nasdanika.models.java.module.JavaModulePackage; +import org.nasdanika.models.java.module.Requires; + +/** + * + * An implementation of the model object 'Requires'. + * + * @generated + */ +public class RequiresImpl extends MinimalEObjectImpl.Container implements Requires { + + protected static final String NAME_EDEFAULT = null; + protected static final boolean TRANSITIVE_EDEFAULT = false; + protected static final boolean STATIC_EDEFAULT = false; + + protected RequiresImpl() { + super(); + } + + @Override + protected EClass eStaticClass() { + return JavaModulePackage.Literals.REQUIRES; + } + + @Override + public String getName() { + return (String) eDynamicGet(JavaModulePackage.REQUIRES__NAME, JavaModulePackage.Literals.REQUIRES__NAME, true, true); + } + + @Override + public void setName(String newName) { + eDynamicSet(JavaModulePackage.REQUIRES__NAME, JavaModulePackage.Literals.REQUIRES__NAME, newName); + } + + @Override + public boolean isTransitive() { + return (Boolean) eDynamicGet(JavaModulePackage.REQUIRES__TRANSITIVE, JavaModulePackage.Literals.REQUIRES__TRANSITIVE, true, true); + } + + @Override + public void setTransitive(boolean newTransitive) { + eDynamicSet(JavaModulePackage.REQUIRES__TRANSITIVE, JavaModulePackage.Literals.REQUIRES__TRANSITIVE, newTransitive); + } + + @Override + public boolean isStatic() { + return (Boolean) eDynamicGet(JavaModulePackage.REQUIRES__STATIC, JavaModulePackage.Literals.REQUIRES__STATIC, true, true); + } + + @Override + public void setStatic(boolean newStatic) { + eDynamicSet(JavaModulePackage.REQUIRES__STATIC, JavaModulePackage.Literals.REQUIRES__STATIC, newStatic); + } + + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case JavaModulePackage.REQUIRES__NAME: + return getName(); + case JavaModulePackage.REQUIRES__TRANSITIVE: + return isTransitive(); + case JavaModulePackage.REQUIRES__STATIC: + return isStatic(); + } + return super.eGet(featureID, resolve, coreType); + } + + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case JavaModulePackage.REQUIRES__NAME: + setName((String) newValue); + return; + case JavaModulePackage.REQUIRES__TRANSITIVE: + setTransitive((Boolean) newValue); + return; + case JavaModulePackage.REQUIRES__STATIC: + setStatic((Boolean) newValue); + return; + } + super.eSet(featureID, newValue); + } + + @Override + public void eUnset(int featureID) { + switch (featureID) { + case JavaModulePackage.REQUIRES__NAME: + setName(NAME_EDEFAULT); + return; + case JavaModulePackage.REQUIRES__TRANSITIVE: + setTransitive(TRANSITIVE_EDEFAULT); + return; + case JavaModulePackage.REQUIRES__STATIC: + setStatic(STATIC_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case JavaModulePackage.REQUIRES__NAME: + return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName()); + case JavaModulePackage.REQUIRES__TRANSITIVE: + return isTransitive() != TRANSITIVE_EDEFAULT; + case JavaModulePackage.REQUIRES__STATIC: + return isStatic() != STATIC_EDEFAULT; + } + return super.eIsSet(featureID); + } + +} //RequiresImpl diff --git a/model/src/main/java/org/nasdanika/models/java/module/impl/UsesImpl.java b/model/src/main/java/org/nasdanika/models/java/module/impl/UsesImpl.java new file mode 100644 index 0000000..284ac1d --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/impl/UsesImpl.java @@ -0,0 +1,77 @@ +/** + */ +package org.nasdanika.models.java.module.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.nasdanika.models.java.module.JavaModulePackage; +import org.nasdanika.models.java.module.Uses; + +/** + * + * An implementation of the model object 'Uses'. + * + * @generated + */ +public class UsesImpl extends MinimalEObjectImpl.Container implements Uses { + + protected static final String SERVICE_EDEFAULT = null; + + protected UsesImpl() { + super(); + } + + @Override + protected EClass eStaticClass() { + return JavaModulePackage.Literals.USES; + } + + @Override + public String getService() { + return (String) eDynamicGet(JavaModulePackage.USES__SERVICE, JavaModulePackage.Literals.USES__SERVICE, true, true); + } + + @Override + public void setService(String newService) { + eDynamicSet(JavaModulePackage.USES__SERVICE, JavaModulePackage.Literals.USES__SERVICE, newService); + } + + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case JavaModulePackage.USES__SERVICE: + return getService(); + } + return super.eGet(featureID, resolve, coreType); + } + + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case JavaModulePackage.USES__SERVICE: + setService((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + @Override + public void eUnset(int featureID) { + switch (featureID) { + case JavaModulePackage.USES__SERVICE: + setService(SERVICE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case JavaModulePackage.USES__SERVICE: + return SERVICE_EDEFAULT == null ? getService() != null : !SERVICE_EDEFAULT.equals(getService()); + } + return super.eIsSet(featureID); + } + +} //UsesImpl diff --git a/model/src/main/java/org/nasdanika/models/java/module/util/JavaModuleAdapterFactory.java b/model/src/main/java/org/nasdanika/models/java/module/util/JavaModuleAdapterFactory.java new file mode 100644 index 0000000..3419ba4 --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/util/JavaModuleAdapterFactory.java @@ -0,0 +1,72 @@ +/** + */ +package org.nasdanika.models.java.module.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; +import org.eclipse.emf.ecore.EObject; +import org.nasdanika.models.java.module.Exports; +import org.nasdanika.models.java.module.JavaModulePackage; +import org.nasdanika.models.java.module.Module; +import org.nasdanika.models.java.module.Opens; +import org.nasdanika.models.java.module.Provides; +import org.nasdanika.models.java.module.Requires; +import org.nasdanika.models.java.module.Uses; + +/** + * The Adapter Factory for the model. + * @generated + */ +public class JavaModuleAdapterFactory extends AdapterFactoryImpl { + + protected static JavaModulePackage modelPackage; + + public JavaModuleAdapterFactory() { + if (modelPackage == null) { + modelPackage = JavaModulePackage.eINSTANCE; + } + } + + @Override + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject) object).eClass().getEPackage() == modelPackage; + } + return false; + } + + protected JavaModuleSwitch modelSwitch = new JavaModuleSwitch() { + @Override + public Adapter caseModule(Module object) { return createModuleAdapter(); } + @Override + public Adapter caseRequires(Requires object) { return createRequiresAdapter(); } + @Override + public Adapter caseExports(Exports object) { return createExportsAdapter(); } + @Override + public Adapter caseOpens(Opens object) { return createOpensAdapter(); } + @Override + public Adapter caseProvides(Provides object) { return createProvidesAdapter(); } + @Override + public Adapter caseUses(Uses object) { return createUsesAdapter(); } + @Override + public Adapter defaultCase(EObject object) { return createEObjectAdapter(); } + }; + + @Override + public Adapter createAdapter(Notifier target) { + return modelSwitch.doSwitch((EObject) target); + } + + public Adapter createModuleAdapter() { return null; } + public Adapter createRequiresAdapter() { return null; } + public Adapter createExportsAdapter() { return null; } + public Adapter createOpensAdapter() { return null; } + public Adapter createProvidesAdapter() { return null; } + public Adapter createUsesAdapter() { return null; } + public Adapter createEObjectAdapter() { return null; } + +} //JavaModuleAdapterFactory diff --git a/model/src/main/java/org/nasdanika/models/java/module/util/JavaModuleSwitch.java b/model/src/main/java/org/nasdanika/models/java/module/util/JavaModuleSwitch.java new file mode 100644 index 0000000..dd3c893 --- /dev/null +++ b/model/src/main/java/org/nasdanika/models/java/module/util/JavaModuleSwitch.java @@ -0,0 +1,89 @@ +/** + */ +package org.nasdanika.models.java.module.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.util.Switch; +import org.nasdanika.models.java.module.Exports; +import org.nasdanika.models.java.module.JavaModulePackage; +import org.nasdanika.models.java.module.Module; +import org.nasdanika.models.java.module.Opens; +import org.nasdanika.models.java.module.Provides; +import org.nasdanika.models.java.module.Requires; +import org.nasdanika.models.java.module.Uses; + +/** + * The Switch for the model's inheritance hierarchy. + * @generated + */ +public class JavaModuleSwitch extends Switch { + + protected static JavaModulePackage modelPackage; + + public JavaModuleSwitch() { + if (modelPackage == null) { + modelPackage = JavaModulePackage.eINSTANCE; + } + } + + @Override + protected boolean isSwitchFor(EPackage ePackage) { + return ePackage == modelPackage; + } + + @Override + protected T doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case JavaModulePackage.MODULE: { + Module module = (Module) theEObject; + T result = caseModule(module); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaModulePackage.REQUIRES: { + Requires requires = (Requires) theEObject; + T result = caseRequires(requires); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaModulePackage.EXPORTS: { + Exports exports = (Exports) theEObject; + T result = caseExports(exports); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaModulePackage.OPENS: { + Opens opens = (Opens) theEObject; + T result = caseOpens(opens); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaModulePackage.PROVIDES: { + Provides provides = (Provides) theEObject; + T result = caseProvides(provides); + if (result == null) result = defaultCase(theEObject); + return result; + } + case JavaModulePackage.USES: { + Uses uses = (Uses) theEObject; + T result = caseUses(uses); + if (result == null) result = defaultCase(theEObject); + return result; + } + default: + return defaultCase(theEObject); + } + } + + public T caseModule(Module object) { return null; } + public T caseRequires(Requires object) { return null; } + public T caseExports(Exports object) { return null; } + public T caseOpens(Opens object) { return null; } + public T caseProvides(Provides object) { return null; } + public T caseUses(Uses object) { return null; } + + @Override + public T defaultCase(EObject object) { return null; } + +} //JavaModuleSwitch diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..6b7d171 --- /dev/null +++ b/pom.xml @@ -0,0 +1,126 @@ + + + 4.0.0 + org.nasdanika.models.java.module + parent + 2026.3.0 + pom + Java Module model + https://github.com/Nasdanika-Models/java-module + + + + Eclipse Public License 2.0 + https://nasdanika.org/builds/master/eclipse-public-license-2.0.html + repo + + + + + https://github.com/Nasdanika-Models/java-module + + + + 2025.12.0 + 0.8.14 + UTF-8 + false + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.1 + + 17 + + + + org.apache.maven.plugins + maven-site-plugin + 3.21.0 + + + org.apache.maven.plugins + maven-source-plugin + 3.4.0 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.5.4 + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.12.0 + + + attach-javadocs + + jar + + + false + -Xdoclint:none + + true + true + + https://download.eclipse.org/modeling/emf/emf/javadoc/2.11/ + + + + + + + + + + Nasdanika + https://nasdanika.org + + + + + pvlasov + Pavel Vlasov + Pavel.Vlasov@nasdanika.org + + Lead Developer + + -5 + + + + + + org.junit.jupiter + junit-jupiter-api + 5.12.1 + test + + + org.junit.jupiter + junit-jupiter-engine + 5.12.1 + test + + + + + model + + + From e5b09ed7f0e299898442d87a9d7f8618051d6222 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 21 Mar 2026 17:44:21 +0000 Subject: [PATCH 3/3] Fix duplicate additionalOptions in maven-javadoc-plugin configuration Merge both additionalOptions into a single element to prevent the second declaration from silently overriding the first. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 6b7d171..c9894e5 100644 --- a/pom.xml +++ b/pom.xml @@ -73,8 +73,7 @@ false - -Xdoclint:none - + -Xdoclint:none true true