Comments (4)
Is this issue still relevant, since we added Interfaces in Java?
from famix.
The reason for isInterface
is the logic in the subclasses. For example, those that deal with generics. Of course, now with traits, you might have a better reusability mechanism, but do take a look at the subclasses.
from famix.
FamixInterface seems OK to me (you'd want to see all the interfaces in a design), since the entity is only that. But I'm not sure of the added value of FamixImplementation (because implementations can be for several interfaces) vs a classic FamixClass that has a relationship of implements
to one or many FamixInterface entities.
@girba without a concrete example, I don't understand about subclass logic with interfaces (generics is not my strong point).
I found this discussion because I didn't understand how isInterface
was generated in the FamixJava model. But now, thanks to @NicolasAnquetil, I know it is/was hard-coded in the Entities. So, maybe this comment is off topic, but I almost expected a FamixJavaClass to use a TCanBeInterface
trait which has the isInterface property (similar to how isAbstract
works for classes with TCanBeAbstract
).
In our FamixTypeScript MM it would be useful to say classes are related to an interface trait. Since this kind of "interface" can exist in C++/Java/C#/TypeScript/Pharo/... a trait would definitely be useful as an abstraction.
from famix.
close with #443
from famix.
Related Issues (20)
- Rework #numberOfComments? HOT 4
- Asking if an entity is a child or a parent of another entity HOT 5
- remove #flag: from FamixMetamodelBuilder >> getTraitNamed: HOT 1
- clarify baseline HOT 2
- It should not be possible to tag an entity several times HOT 3
- FamixJavaVisitor is outdated HOT 1
- Bug annotation type added to package HOT 2
- asOrderedCollection can't be used correctly for getting targets HOT 1
- Questions on Generics meta-model
- MooseGroup do not understand message `#collectWithIndex:`
- Why TComment uses TEntityMetaLevelDependency HOT 2
- add methods #newClassNamed: to FamixMetamodelGenerator
- Port new Generic modeling to FamixCpp
- Example method is not FamixJavaParametricMethod according to the documentation HOT 2
- simplify MooseObject>>#attributeAt: / #cacheAt: / propertyAt: HOT 7
- FamixStAttribute>>isSharedVariable is volatile
- CyclomaticComplexity of Pharo importer HOT 1
- Should FamixTFile be able to hold source text? HOT 1
- #mooseDescription not working with some entities with submetamodel HOT 2
- Generated methods in extension models are not cleaned by cleaner
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from famix.