What is this label used for?

21310122
21310122 New Altair Community Member
edited November 2024 in Community Q&A

I am reading your code and want to know what this label <replaces> is used for?

<operator>
<key>visualize_model_by_som</key>
<class>com.rapidminer.operator.visualization.SOMModelVisualization</class>
<replaces>ModelVisualizer</replaces>
</operator>

 

 

Best Answer

  • Marco_Boeck
    Marco_Boeck New Altair Community Member
    Answer ✓

    Hi,

     

    correct,rfuentealba! Operators are referenced via their key, a unique identifier for each operator (extensions use the format "extension_id:operator_key").

    Sometimes, an old operator gets replaced by a newer version, which is reflected by the <replaces> tag. These days, it's basically just for our reference, but there is old code that did use the tag to automatically exchange old operators etc. We disabled that feature because if various implications that could break your existing processes.

    So as I said, just a clue for developers that this is an operator that replaced an older operator, but not really used in the code.

     

    Regards,

    Marco

Answers

  • rfuentealba
    rfuentealba New Altair Community Member

    Hi @2131012,

     

     

    I took a quick look at the GitHub code from RapidMiner Studio, and it appears just once. I have a hunch that this operator (SOMethingVisualizer) replaces an older one named ModelVisualizer that was deprecated in earlier versions, but that the reference is there in case a plugin or something required the ModelVisualizer class. However, don't take my word for granted. If I'm wrong, someone will probably come to my help. (pinging @sgenzer, as he is the man with the plan).

  • Marco_Boeck
    Marco_Boeck New Altair Community Member
    Answer ✓

    Hi,

     

    correct,rfuentealba! Operators are referenced via their key, a unique identifier for each operator (extensions use the format "extension_id:operator_key").

    Sometimes, an old operator gets replaced by a newer version, which is reflected by the <replaces> tag. These days, it's basically just for our reference, but there is old code that did use the tag to automatically exchange old operators etc. We disabled that feature because if various implications that could break your existing processes.

    So as I said, just a clue for developers that this is an operator that replaced an older operator, but not really used in the code.

     

    Regards,

    Marco