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 <[email protected]>: > 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 < > [email protected]> 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 <[email protected]>: > > > > > 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 < > > > [email protected]> wrote: > > > > > > > 2014-07-02 11:04 GMT+01:00 Karl Wright <[email protected]>: > > > > > > > > > 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 < > > > > > [email protected]> 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
