On Thu, Jan 26, 2012 at 11:01 AM, Simone Tripodi
<simonetrip...@apache.org> wrote:
> FIXED!!!!
>
> Emanuele Lombardi, a former colleague of mine, simply did
>
> -    public static <V extends Vertex, W, WE extends WeightedEdge<W>, G
> extends Graph<V, WE>> SpanningTreeSourceSelector<V, W, WE, G>
> minimumSpanningTree( G graph )
> +    public static <V extends Vertex, WE extends WeightedEdge<W>, W, G
> extends Graph<V, WE>> SpanningTreeSourceSelector<V, W, WE, G>
> minimumSpanningTree( G graph )
>
> and it makes it working!!!!
> Isn't that cool?

Hmm... doesn't seem to be working here on:

Eclipse Platform

Version: 3.7.1
Build id: M20110909-1335

Matt :|

> All the best!
> -Simo
>
> http://people.apache.org/~simonetripodi/
> http://simonetripodi.livejournal.com/
> http://twitter.com/simonetripodi
> http://www.99soft.org/
>
>
>
> On Thu, Jan 26, 2012 at 5:25 PM, Simone Tripodi
> <simonetrip...@apache.org> wrote:
>> Terrific feedbacks - like always! - Matt, thanks a lot, very appreciated!!!
>> We do - at least, I - love you! :D
>>
>>> on.  I can only surmise that the Oracle (?) compiler may take the
>>> subsequent method calls into account when trying to infer type
>>> parameters from arguments, perhaps.
>>
>> I am using the Apple's JDK:
>>
>> Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)
>> Maven home: /Applications/apache-maven-3.0.4
>> Java version: 1.6.0_29, vendor: Apple Inc.
>> Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
>> Default locale: en_US, platform encoding: MacRoman
>> OS name: "mac os x", version: "10.7.2", arch: "x86_64", family: "mac"
>>
>>> however one thing that springs to mind is to take the
>>> CommonsGraph fluent APIs and move them to some typed interface, then
>>> have each level of the interface hierarchy define a public static
>>> final instance of this fluent interface that knows how to behave
>>> appropriately for that type...?  Not sure if this would work properly
>>> in practice, but the best idea I'm likely to come up with.
>>
>> this is what I tried to do indeed, CommonsGraph#findMaxFlow returns an
>> interface where generic types are inferred depending on the graph
>> input.
>>
>> Thanks *a lot* for your kind help, always much more than appreciated!!!
>> -Simo
>>
>> http://people.apache.org/~simonetripodi/
>> http://simonetripodi.livejournal.com/
>> http://twitter.com/simonetripodi
>> http://www.99soft.org/
>>
>>
>>
>> On Thu, Jan 26, 2012 at 5:08 PM, Matt Benson <gudnabr...@gmail.com> wrote:
>>> Whew... I hope you guys love me.  :P  I decided to take a look just
>>> because I've had to play with Eclipse before on issues like this.
>>> What I typically find is that Eclipse has a sane reason for
>>> complaining where it does.  This time I *really* thought Eclipse was
>>> wrong... but check this out:
>>>
>>> In the FordFulkersonTestCase, if you break this down statement by
>>> statement, what Eclipse is complaining about is "findMaxFlow(graph);".
>>>  Now, if you use Eclipse's 'Assign to local variable' quick assist,
>>> you find that it creates a variable of type:
>>>
>>> FromHeadBuilder<BaseLabeledVertex, Object,
>>> BaseLabeledWeightedEdge<Integer>,
>>> DirectedMutableWeightedGraph<BaseLabeledVertex,
>>> BaseLabeledWeightedEdge<Integer>, Integer>>
>>>
>>> Note that it has calculated the W type parameter to be Object.
>>>
>>> I am reasonably sure that the reason for this is that
>>> CommonsGraph.findMaxFlow's <G> type parameter is declared as "G
>>> extends DirectedGraph<V, WE>".  Thus the fact that our
>>> DirectedMutableWeightedGraph 'graph' has its W type parameter assigned
>>> as Integer is completely irrelevant as far as #findMaxFlow() is
>>> concerned.  There is no way for the compiler to infer that
>>> #findMaxFlow<W> should be Integer in the context of the fully chained
>>> call.  By contrast, simply changing Object to Integer in the signature
>>> of Eclipse's generated local variable gives the compiler enough to go
>>> on.  I can only surmise that the Oracle (?) compiler may take the
>>> subsequent method calls into account when trying to infer type
>>> parameters from arguments, perhaps.
>>>
>>> So that's my diagnosis.  How to cope with it while retaining fluency
>>> is another story.  I'm not familiar enough with the domain or the API
>>> to be able to make any recommendation that would probably be terribly
>>> useful; however one thing that springs to mind is to take the
>>> CommonsGraph fluent APIs and move them to some typed interface, then
>>> have each level of the interface hierarchy define a public static
>>> final instance of this fluent interface that knows how to behave
>>> appropriately for that type...?  Not sure if this would work properly
>>> in practice, but the best idea I'm likely to come up with.
>>>
>>> HTH,
>>> Matt
>>>
>>> On Thu, Jan 26, 2012 at 8:42 AM, Simone Tripodi
>>> <simonetrip...@apache.org> wrote:
>>>> Hi Claudio!!!
>>>>
>>>> thanks for reporting, I have indeed the same issue - even if I thought
>>>> was just an Eclipse bug!
>>>> I honestly don't know how to fix the problem, I hope someone in the ML
>>>> can provide a solution as well - same behavior met in IntelliJ!!!
>>>>
>>>> All the best,
>>>> -Simo
>>>>
>>>> http://people.apache.org/~simonetripodi/
>>>> http://simonetripodi.livejournal.com/
>>>> http://twitter.com/simonetripodi
>>>> http://www.99soft.org/
>>>>
>>>>
>>>>
>>>> On Thu, Jan 26, 2012 at 3:33 PM, Claudio Squarcella
>>>> <squar...@dia.uniroma3.it> wrote:
>>>>> P.S. for completeness:
>>>>>
>>>>> Eclipse version: Indigo Service Release 1
>>>>> Build id: 20110916-0149
>>>>> OS: Mac OS X Lion
>>>>>
>>>>> Cheers,
>>>>> Claudio
>>>>>
>>>>>
>>>>> On 26/01/2012 15:30, Claudio Squarcella wrote:
>>>>>>
>>>>>> Hi all,
>>>>>>
>>>>>> I am experiencing a rather annoying issue with the latest version of
>>>>>> commons-graph on Eclipse. Compiling with javac (maven, command line) it
>>>>>> works fine, but the editor still complains: e.g. line 72 of the new
>>>>>> FordFulkersonTestCase[1] gives a list of errors[2].
>>>>>>
>>>>>> Now, I know from googling that Eclipse is not new to strange behavior, 
>>>>>> but
>>>>>> I wanted to know if anyone on the ML has a nice answer, solution or
>>>>>> workaround (other than standard answers like "use another IDE"), or at 
>>>>>> least
>>>>>> experiences the same issue with the code.
>>>>>>
>>>>>> Thank you,
>>>>>> Claudio
>>>>>>
>>>>>> ---
>>>>>>
>>>>>> [1]
>>>>>> https://svn.apache.org/viewvc/commons/sandbox/graph/trunk/src/test/java/org/apache/commons/graph/flow/FordFulkersonTestCase.java?revision=1235827&view=markup
>>>>>> [2] Multiple markers at this line
>>>>>>    - Bound mismatch: The generic method applyingFordFulkerson(OM) of type
>>>>>> MaxFlowAlgorithmSelector<V,W,WE,G> is not applicable for the arguments
>>>>>> (IntegerWeight). The
>>>>>>     inferred type IntegerWeight is not a valid substitute for the bounded
>>>>>> parameter <OM extends OrderedMonoid<Object>>
>>>>>>    - Type mismatch: cannot convert from Object to Integer
>>>>>>    - Bound mismatch: The generic method findMaxFlow(G) of type
>>>>>> CommonsGraph<V,E,G> is not applicable for the arguments
>>>>>>
>>>>>> (DirectedMutableWeightedGraph<BaseLabeledVertex,BaseLabeledWeightedEdge<Integer>,Integer>).
>>>>>> The inferred type BaseLabeledWeightedEdge<Integer> is not a valid 
>>>>>> substitute
>>>>>>     for the bounded parameter <WE extends WeightedEdge<W>>
>>>>>>
>>>>>
>>>>> --
>>>>> Claudio Squarcella
>>>>> PhD student at Roma Tre University
>>>>> E-mail address: squar...@dia.uniroma3.it
>>>>> Phone: +39-06-57333215
>>>>> Fax: +39-06-57333612
>>>>> http://www.dia.uniroma3.it/~squarcel
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>>> For additional commands, e-mail: dev-h...@commons.apache.org
>>>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to