Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [emf-dev] EMF interface instance access pattern
  • From: Simon Schwichtenberg <simon.schwichtenberg@xxxxxx>
  • Date: Tue, 9 Jul 2019 13:03:00 +0200
  • Autocrypt: addr=simon.schwichtenberg@xxxxxx; keydata= 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 gxk=
  • Delivered-to: emf-dev@xxxxxxxxxxx
  • List-archive: <https://www.eclipse.org/mailman/private/emf-dev>
  • List-help: <mailto:emf-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/emf-dev>, <mailto:emf-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/emf-dev>, <mailto:emf-dev-request@eclipse.org?subject=unsubscribe>
  • Openpgp: preference=signencrypt
  • User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2

Hi,

CrossEcore's Java API might be interesting for you because the interfaces do not reference their implementations, e.g. see EcorePackageImpl.eINSTANCE:

https://github.com/crossecore/ecore-java/blob/master/src/Ecore/EcorePackageImpl.java

CrossEcore's Java API is more or less identical to the EMF API and should be also compatible with the EMF API (see for example https://github.com/crossecore/ecore-java/blob/master/src/Ecore/EObjectBase.java).

I am not sure if the CrossEcore Java API *never *uses the interface instance access pattern. However, I *am* sure that CrossEcore's C# API never uses the interfaces instance access pattern because in C# you cannot have fields on interfaces. Thus, you might have a look on the C# API as well.


Best regards,

Simon

Am 09.07.2019 um 12:11 schrieb Alexander Fedorov:
Thanks, this is exactly that I'm looking for!
Unfortunately this link works extremelly slow for me and I still unable to see the page.

Probably you know some alternative URL?

Thanks,
AF

09.07.2019 12:58, Pierre-Charles David пишет:
On 09/07/2019 11:27, Alexander Fedorov wrote:
Hello,

Hi,



In EMF runtime and generated code there is a "interface instance access" pattern like:

  public interface Registry
  {
    public static final Registry INSTANCE = new RegistryImpl();
  }

It is good and stable. It works perfect.
However, it may look "too static" for OSGi-based approach where interface should not reference its implementation.

How would you implement it today for OSGi-oriented architecture executed by 1.8+ Java?


You might be interested in this presentation [1] from Mikael Barbero (presented at EclipseCon 2012), which tried to imagine what a more modern/dynamic/OSGi-compatible version of EMF could look like if backward compatibility was not an issue (it is). It tackled this particular issue, among others.

Regards,
Pierre-Charles David

[1] https://fr.slideshare.net/mikaelbarbero/3mf-infinityandbeyond

_______________________________________________
emf-dev mailing list
emf-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/emf-dev

_______________________________________________
emf-dev mailing list
emf-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/emf-dev

Back to the top