{"action":"created","issue":{"url":"https://api.github.com/repos/windup/windup/issues/593","labels_url":"https://api.github.com/repos/windup/windup/issues/593/labels{/name}","comments_url":"https://api.github.com/repos/windup/windup/issues/593/comments","events_url":"https://api.github.com/repos/windup/windup/issues/593/events","html_url":"https://github.com/windup/windup/pull/593","id":86594624,"number":593,"title":"WINDUP-633 Hint-exists filter (+ test)","user":{"login":"mbriskar","id":1478315,"avatar_url":"https://avatars.githubusercontent.com/u/1478315?v=3","gravatar_id":"","url":"https://api.github.com/users/mbriskar","html_url":"https://github.com/mbriskar","followers_url":"https://api.github.com/users/mbriskar/followers","following_url":"https://api.github.com/users/mbriskar/following{/other_user}","gists_url":"https://api.github.com/users/mbriskar/gists{/gist_id}","starred_url":"https://api.github.com/users/mbriskar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbriskar/subscriptions","organizations_url":"https://api.github.com/users/mbriskar/orgs","repos_url":"https://api.github.com/users/mbriskar/repos","events_url":"https://api.github.com/users/mbriskar/events{/privacy}","received_events_url":"https://api.github.com/users/mbriskar/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/windup/windup/labels/Work%20in%20Progress/For%20Discussion%20Only","name":"Work in Progress/For Discussion Only","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-06-09T13:08:54Z","updated_at":"2015-06-10T15:36:54Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/windup/windup/pulls/593","html_url":"https://github.com/windup/windup/pull/593","diff_url":"https://github.com/windup/windup/pull/593.diff","patch_url":"https://github.com/windup/windup/pull/593.patch"},"body":"\r\n**Idea**: Introduce **hint-exists** element that could follow the **javaclass** condition and filter out all the filelocations that do have/ doesn't have any hint(/hint with the given message). The same then can go for the classification-exist. The current PR already **contains working** hint-exists condition.\r\n\r\n**Changes**: I introduced a new graphcondition that would be just filtering the input to output. This is exactly what is needed for these conditions, because they will be filtering the javaclass output to only output the vertices without hints/classifications etc. In case this condition is the first one in a row, there is fillIn() method that will load vertices that are going to be filtered. This is useful for tests when checking that there is no hint registered with the given message.\r\n\r\n**Found problems**: It is not easy to create a condition that does exactly the opposite. For example, having hint-exists that returns only the locations with hints, there is not an easy way how to negate this behaviour without introducing another condition hint-not-exists. \r\nWe have 2 solutions:\r\n1) introduce new condition for every negation of every filter. Maybe some other groups except not like empty/all may be useful also in the future.\r\n2) Change the way conditions work. Make it more stream-like by every condition having from=\"\" set by the RuleSubset class.Or at least this should work internally for the filters. Then we could implement also a filter not, that would bundle multiple filters (with general conditions there is a problem that input type may be different than output type) and return Set(input) - Set(output)"},"comment":{"url":"https://api.github.com/repos/windup/windup/issues/comments/110800411","html_url":"https://github.com/windup/windup/pull/593#issuecomment-110800411","issue_url":"https://api.github.com/repos/windup/windup/issues/593","id":110800411,"user":{"login":"windupgithubbot1","id":9112912,"avatar_url":"https://avatars.githubusercontent.com/u/9112912?v=3","gravatar_id":"","url":"https://api.github.com/users/windupgithubbot1","html_url":"https://github.com/windupgithubbot1","followers_url":"https://api.github.com/users/windupgithubbot1/followers","following_url":"https://api.github.com/users/windupgithubbot1/following{/other_user}","gists_url":"https://api.github.com/users/windupgithubbot1/gists{/gist_id}","starred_url":"https://api.github.com/users/windupgithubbot1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/windupgithubbot1/subscriptions","organizations_url":"https://api.github.com/users/windupgithubbot1/orgs","repos_url":"https://api.github.com/users/windupgithubbot1/repos","events_url":"https://api.github.com/users/windupgithubbot1/events{/privacy}","received_events_url":"https://api.github.com/users/windupgithubbot1/received_events","type":"User","site_admin":false},"created_at":"2015-06-10T15:36:54Z","updated_at":"2015-06-10T15:36:54Z","body":"\nRefer to this link for build results (access rights to CI server needed): \nhttp://10.3.8.5//job/windup-pr-builder/817/\nTest PASSed."}}