manifoldcf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alessandro Benedetti <benedetti.ale...@gmail.com>
Subject Re: [Io Activity] Doing an update inside a delete document
Date Mon, 07 Jul 2014 10:43:58 GMT
As I told you before :
I have a custom Ouput Connector.
This custom Output Connector ha a collection of OutputConnectors inside.
So simply when I have a deleteDocument, I have to do my logic and send some
addOrUpdateDocument and deleteDocument to the OutputConnectors from the
collection .

But the deleteDocument and addOrUpdate have incompatible signatures, so due
to this I can not elegantly call the addOrUpdate.
The main problem is the discordance of IOActivities between what i have in
my removeDocument and what I have in removeDocument and
addOrReplaceDocument for the generic baseOutputConnector.

So ideally what I need it to build and IOutputAddActivity from the
IOutputRemoveActivity in the proper way.

Thank you again for your attention



2014-07-07 11:04 GMT+01:00 Karl Wright <daddywri@gmail.com>:

> Hi Alessandro,
>
> As stated I don't have a good answer for you.  If you tell me more broadly
> what you are trying to do I may be able to propose something better.
>
> Karl
>
>
>
> On Mon, Jul 7, 2014 at 5:33 AM, Alessandro Benedetti <
> benedetti.alex85@gmail.com> wrote:
>
> > Hi Karl,
> >  thank you for the support but your solution is not possible, because my
> > case is the following :
> >
> > *Custom Output Connector*
> > removeDocument is calling the addOrReplaceDocument method in a generic
> > BaseOutputConnector.
> > addOrReplaceDocument is calling the the addOrReplaceDocument method in a
> > generic BaseOutputConnector.
> >
> > So in this scenario the only way to follow your strategy should be to
> > create in the BaseOutputConnector and in all the implementations the new
> > method accepting the "in common" ancestor for the activity Class.
> >
> > But i don't want to do this, because I don't want to hack the other
> > Manifold code ...
> >
> > So I know that the hierarchy of activities is quite coupled with the
> > function they are tracking.
> > Which can be the most elegant solution karl in your opinion to satisfy
> this
> > requirement ?
> >
> > Right now in the removeDocument I use a EmptyOutputAddActivity implements
> > IOutputAddActivity ( custom class)
> > But would be great to achieve the same using some standard manifold
> > structure.
> >
> > Cheers
> >
> >
> >
> >
> >
> > 2014-07-02 11:31 GMT+01:00 Karl Wright <daddywri@gmail.com>:
> >
> > > Hi Alessandro,
> > >
> > > You cannot just cast because there are different services in each
> > > interface.  However, they are derived from common interfaces.  For
> > example,
> > >
> > > public interface IOutputAddActivity extends
> > > IOutputQualifyActivity,IOutputHistoryActivity,IOutputCheckActivity
> > >
> > > public interface IOutputRemoveActivity extends IOutputHistoryActivity
> > >
> > >
> > > The only one in common is IOutputHistoryActivity, so as long as your
> > > addOrReplace method is calling IOutputHistoryActivity methods only, you
> > can
> > > write a second method that accepts just IOutputHistoryActivity and call
> > > that from addOrReplace AND from deleteDocument.
> > >
> > > Karl
> > >
> > >
> > > On Wed, Jul 2, 2014 at 6:13 AM, Alessandro Benedetti <
> > > benedetti.alex85@gmail.com> wrote:
> > >
> > > > 2014-07-02 11:04 GMT+01:00 Karl Wright <daddywri@gmail.com>:
> > > >
> > > > > Hi Alessandro,
> > > > >
> > > > > The "activities" metaphor is simply to make available appropriate
> > > > framework
> > > > > services to specific connector methods.  The metaphor is good for
> > > > > ManifoldCF because it allows services to be added in new releases
> > > without
> > > > > upsetting backwards compatibility etc.
> > > > >
> > > > > If you have a "deleteDocument" implementation that is trying to
> call
> > an
> > > > > "addOrReplaceDocument" method, this can *only* work if the services
> > you
> > > > are
> > > > > using in the addOrReplaceDocument method do not include any of
> those
> > > that
> > > > > are not in IOutputDeleteActivity.  If that is the case, you should
> be
> > > > able
> > > > > to write a common method which accepts the appropriate common
> parent
> > > > > interface of IOutputAddActivity and IOutputDeleteActivity.  If not,
> > you
> > > > > will have to rethink how you are doing this.
> > > > >
> > > >
> > > > Ok, assuming I don't want to include any further services.
> > > > I have in the deleteDocument, the IOutputDeleteActivity but the
> > > > addOrReplaceDocument is taking the IOutputAddActivity.
> > > > Which is the proper way to instantiate IOutputAddActivity from
> > > > the IOutputDeleteActivity ?
> > > > Because they are different interfaces and i don't know exactly which
> > > > implementation arrives there, should I do a hardcoded casting ?
> > > > Or what else?
> > > > Thank you very much for your time,
> > > >
> > > > Cheers
> > > >
> > > >
> > > > >
> > > > > Thanks,
> > > > > Karl
> > > > >
> > > > >
> > > > >
> > > > > On Wed, Jul 2, 2014 at 5:17 AM, Alessandro Benedetti <
> > > > > benedetti.alex85@gmail.com> wrote:
> > > > >
> > > > > > Hi guys,
> > > > > > I'm trying to implement a specific logic in a custom output
> > connector
> > > > > > where, under specific conditions, in the deleteDocument method
is
> > > then
> > > > > > called an AddOrUpdate method.
> > > > > >
> > > > > > This can happen when the deletion of a document  causes the
> update
> > of
> > > > > other
> > > > > > documents already indexed.
> > > > > > I know is a very specific use case, but let's see if there is
a
> > > > solution
> > > > > > ...
> > > > > > So far no problem until I reach the Activities management ...
> > > > > > I found the hierarchy of this objects really confusing, with
a
> lot
> > of
> > > > > > interfaces and different inner classes sparse in the code.
> > > > > >
> > > > > > Furthermore it appears to be really hard to create an
> > > > > *IOutputAddActivity*
> > > > > > object where you have a IOutputDeleteActivity.
> > > > > >
> > > > > > What can be the best way to instantiate correctly an
> > > > > > *IOutputAddActivity *inside
> > > > > > the DeleteDocument method *?*
> > > > > > Why this activities objects that seems a sort of logging/tracking
> > > > feature
> > > > > > is such coupled with the logic ?
> > > > > >
> > > > > > Thank's for the help
> > > > > > --
> > > > > > --------------------------
> > > > > >
> > > > > > Benedetti Alessandro
> > > > > > Visiting card : http://about.me/alessandro_benedetti
> > > > > >
> > > > > > "Tyger, tyger burning bright
> > > > > > In the forests of the night,
> > > > > > What immortal hand or eye
> > > > > > Could frame thy fearful symmetry?"
> > > > > >
> > > > > > William Blake - Songs of Experience -1794 England
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > --------------------------
> > > >
> > > > Benedetti Alessandro
> > > > Visiting card : http://about.me/alessandro_benedetti
> > > >
> > > > "Tyger, tyger burning bright
> > > > In the forests of the night,
> > > > What immortal hand or eye
> > > > Could frame thy fearful symmetry?"
> > > >
> > > > William Blake - Songs of Experience -1794 England
> > > >
> > >
> >
> >
> >
> > --
> > --------------------------
> >
> > Benedetti Alessandro
> > Visiting card : http://about.me/alessandro_benedetti
> >
> > "Tyger, tyger burning bright
> > In the forests of the night,
> > What immortal hand or eye
> > Could frame thy fearful symmetry?"
> >
> > William Blake - Songs of Experience -1794 England
> >
>



-- 
--------------------------

Benedetti Alessandro
Visiting card : http://about.me/alessandro_benedetti

"Tyger, tyger burning bright
In the forests of the night,
What immortal hand or eye
Could frame thy fearful symmetry?"

William Blake - Songs of Experience -1794 England

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message