[Modelinterpreter] IncQuery resource problémák

Boldizsár Németh nboldi at caesar.elte.hu
Fri Jul 24 21:28:09 CEST 2015


Kedves Zoli!

Újra elővettem a problémakört, mert ez a kérdés nálunk még nagyon nincs 
megoldva, és az új IncQuery release sem haladt előre ezen a téren.

Az alap probléma tehát a következő: Ha nem az egész ResourceSet-en hozom 
létre az IncQueryEngine-t, hanem csak egy Resource-ön, akkor bizonyos 
pattern-ek felismerése nem fog rendesen működni. Például ha kiírok 
bizonyos paramétertípusokat, akkor eltűnnek a találatok, nem kapok 
értesítést bizonyos pattern-ek inkrementális változásairól, stb...

Az, hogy az egész ResourceSet-et használjam, csak akkor lenne megoldott, 
ha valamilyen módon meg tudnám mondani a rendszernek, hogy csak bizonyos 
resource-ökből töltsön be elemeket, mert különben az UML metamodellek 
betöltése használhatatlanul lassúvá teszi a rendszert (még úgy is, hogy 
a saját kódunkban rögtön figyelmen kívül hagyjuk ezeket a találatokat).

Van erre a kérdésre kiírt issue?

Köszi,
Boldi

On 2015.06.17. 9:34, Ujhelyi Zoltán wrote:
> Szia!
>
> Megvan, hogy nálam mi okozta a problémát: annak érdekében, hogy a metaclass-okkal ne kelljen szórakoznom, csak az aktuális resource-ot töltöttem be, amely nem tartalmazta a PrimitiveTypes profil által definiált típusokat. Amennyiben az egész ResourceSet-re illesztettem az IncQueryEngine-t a konkrét Resource helyett, akkor rendben működött.
>
> Üdv,
> Zoli
>> On 16 Jun 2015, at 22:21, Ujhelyi Zoltán <ujhelyiz at incquerylabs.com> wrote:
>>
>> Szia!
>>
>> Amennyire láttam, az IDE elvileg helyesen mondta azt, hogy Type-nak kellene lennie a típusnak, úgyhogy valami csalás van a háttérben, amit még nem értek. Ennek ellenére a probléma tényleg zavaró, úgyhogy mindenképpen meg fogom nézni alaposabban, csak amikor elküldtem a választ, már mennem kellett máshova.
>>
>> Üdv,
>> Zoli
>>> On 16 Jun 2015, at 21:45, Boldizsár Németh <nboldi at caesar.elte.hu> wrote:
>>>
>>> Szia!
>>>
>>> Igen, igazad van, a Type paramétertípus eltávolításának hatására valóban megjelennek az eddig nem kapott találatok, ám nagyon furcsa ez a viselkedés több okból is:
>>> - Az IDE állítása szerint eredetileg is ez volt a paraméter típusa
>>> - Az attributeType pattern esetében viszont megkaptam a találatokat a primitív típusos esetekben is
>>> - A primitív típusok is a Type alá esnek (PrimitiveTypes::Integer például)
>>>
>>> Mindenesetre köszönöm a segítséget,
>>> Boldi
>>>
>>> On 2015.06.16. 18:51, Ujhelyi Zoltán wrote:
>>>> Szia!
>>>>
>>>> Kipróbáltam az általad adott mintákat egy egyszerű projekttel, ugyanakkor most fejlesztői változattal (1.0-s verzió), és azzal működőképesnek látszik nálam.
>>>>
>>>> Ami ugyanakkor feltűnt, hogy a Property.type típusa elvileg Type lenne, a type : Type paramétertípus kiszűrte a primitív típust, mint pl. az Integert. Ezt nem értem teljes egészében, alaposabban meg fogom nézni, mert ez valamilyen csalásnak tűnik. A type paraméterek típusának lehagyásával nekem az elvárt eredményt hozta:
>>>>
>>>> pattern attributeType(cls: Class, attribute : Property, type, ordered, unique ) {
>>>>    find Attribute(cls, attribute);
>>>>    Property.type(attribute, type);
>>>>    Property.isOrdered(attribute, ordered);
>>>>    Property.isUnique(attribute, unique);
>>>> }
>>>> pattern attributeLowerBound(cls: Class, attribute : Property, type, lowerBound: ValueSpecification) {
>>>>    find attributeType(cls, attribute, type, _, _);
>>>>    Property.lowerValue(attribute, lowerBound);
>>>> }
>>>>
>>>> Ugyanakkor nem tudom, hogy pontosan mi lehet nálad a gond; de ezt a modell/pontos lekérdezés ismerete nélkül nem valószínű, hogy meg tudom válaszolni. Ha segít, és elérhetővé teszitek a modellt, ill. a pontos lekérdezéseket, megnézem azzal is, egyébként nincs ötletem, hogy mi lehet a gond.
>>>>
>>>> Üdv,
>>>> Zoli
>>>>> On 16 Jun 2015, at 18:08, Boldizsár Németh <nboldi at caesar.elte.hu> wrote:
>>>>>
>>>>> Kedves Zoli!
>>>>>
>>>>> Belefutottunk egy IncQuery problémába a model validátor által támogatott UML elemek fejlesztése közben.
>>>>> A Property és Parameter típusú UML elemek számossága a lowerValue és upperValue feature-ökön keresztül érhető el. Erről a feature-ről az IncQuery nem jelzi, hogy derived/volatile lenne, vagy bármi egyéb probléma lenne vele. Azonban egyszerűen nem kapok találatokat ilyen feature-re vonatkozó lekérdezésekre, hiába látom az UML reprezentációt nézve, hogy az adattag a helyén van.
>>>>>
>>>>> IncQuery verzió: 0.8.1.201410011502
>>>>>
>>>>> Például a következő formájú pattern-jeim vannak:
>>>>>
>>>>> pattern AttributeType(cls: Class, attribute : Property, type : Type, ordered, unique) {
>>>>>    find Attribute(cls, attribute, _);
>>>>>    Property.type(attribute, type);
>>>>>    Property.isOrdered(attribute, ordered);
>>>>>    Property.isUnique(attribute, unique);
>>>>> }
>>>>> pattern AttributeLowerBound(cls: Class, attribute : Property, type : Type, lowerBound: ValueSpecification) {
>>>>>    find AttributeType(cls, attribute, type, _, _);
>>>>>    Property.lowerValue(attribute, lowerBound);
>>>>> }
>>>>>
>>>>> Az AttributeType matcher által kapott találatok között hiába vannak olyanok, amelyeknek van lowerBound feature-e, ezek nem jelennek meg az AttributeLowerBound találatai között (üres a találati lista).
>>>>>
>>>>> Üdv,
>>>>> Boldi
>>>>>



More information about the Modelinterpreter mailing list