Hi Riyafa,
I think that the sample that I pointed you to might not have been the best
one as it depends on methods that are available in superclasses that do
common work for the node constructors.
The top level contract for the evaluators is IScalarEvaluator and that only
has one method
void evaluate(IFrameTupleReference tuple, IPointable result)
which takes in a IFrameTupleReference (that provides a value for each
variable in the tuple) and an IPointable that should point to the (scalar)
result after evaluation.
The abstract class AbstractTaggedValueArgumentScalarEvaluator factors out
some common code for the common pattern that most of our evaluators follow:
1) pass n IScalarEvaluator to the constructor
2) evaluate each of those (argument) scalar evaluators on each
IFrameTupleReference that is passed to an evaluate call to get n result
values for each tuple
3) pass those n values (stored in a TaggedValuePointable array) on to a
simpler evaluate-method that is declared in
AbstractTaggedValueArgumentScalarEvaluator and implemented in the
subclasses.
The AbstractNodeConstructorScalarEvaluator then refines this even more for
nodes, but I think that that's not helpful for our object (or array)
constructors as we e.g. don't consider using dictionaries for those for now.
Does this help/make sense?
Cheers,
Till
On 2 Jun 2016, at 7:22, Riyafa Abdul Hameed wrote:
> Hi again,
>
> Sorry about my ignorance. On attempting to implement the
> ObjectNodeConstructorScalarEvaluator I have started wondering about the
> arguments passed to the method constructNode--I am not sure how I could
> find out what would be passed as arguments for the method in
> ObjectNodeConstructorScalarEvaluator. Can I assume key and value pair would
> be passed as the TaggedValuePointable[] argument? Or where is this method
> used and how can I find out about the arguments? I have also tried
> debugging to no avail. Again sorry about the ignorance. I read the paper[1]
> and still couldn't get a grasp of what's happening (I will read again to
> see if I could figure it out)
>
> [1] http://dl.acm.org/citation.cfm?id=2806941
>
> Thank you.
>
> Yours sincerely,
> Riyafa
>
> On 2 June 2016 at 10:43, Riyafa Abdul Hameed <[email protected]>
> wrote:
>
>> Hi,
>>
>> When attempting to implement runtime operators for Object implementation,
>> I have come across the following issues:
>>
>> - Should there be a ConstructorScalarEvaluator for PairConstructor?
>> - Should I be checking if the keys are unique in the
>> ObjectNodeConstructorScalarEvaluator?
>>
>>
>> Thank you.
>>
>> Yours sincerely,
>>
>> Riyafa
>>
>>
>>
>> --
>> Riyafa Abdul Hameed
>> Undergraduate, University of Moratuwa
>>
>> Email: [email protected]
>> Website: https://riyafa.wordpress.com/ <http://riyafa.wordpress.com/>
>> <http://facebook.com/riyafa.ahf> <http://lk.linkedin.com/in/riyafa>
>> <http://twitter.com/Riyafa1>
>>
>
>
>
> --
> Riyafa Abdul Hameed
> Undergraduate, University of Moratuwa
>
> Email: [email protected]
> Website: https://riyafa.wordpress.com/ <http://riyafa.wordpress.com/>
> <http://facebook.com/riyafa.ahf> <http://lk.linkedin.com/in/riyafa>
> <http://twitter.com/Riyafa1>