Ah, no, I won't do that as the example code below only uses deprecated
methods. I'll keep using setParents(Marker).

Gary

On Tue, Oct 19, 2021, 12:57 Gary Gregory <[email protected]> wrote:

> Thanks for getting back to me Ralph. I'll try the API pattern you provided.
>
> Gary
>
>
> On Tue, Oct 19, 2021, 11:33 Ralph Goers <[email protected]>
> wrote:
>
>> You are free to put dots in marker names, or any other character for that
>> matter.
>>
>> Markers are created with MarkerManager. Every marker has a unique name
>> and can
>> only have one parent. So the way you have expressed the problem below is
>> really incorrect.
>>
>> I really don’t like your example as most people would leave a node named
>> “children” out
>> because it is redundant. Being a child is an object relationship. So
>> “Children” is a
>> child of Bob in your example and John and Jimmy are children of
>> “Children”.
>>
>> What you really have looks something like:
>>
>>     Pet
>>        ↑
>>  Mammal
>>  ↑       ↑
>> Cat  Dog
>>
>> To create this you have to do:
>> Marker pet = MarkerManager.createMarker(“Pet”);
>> Marker mammal = MarkerManager.createMarker(“Mammal” ,pets);
>> Marker cat = MarkerManager.createMarker(“Cat”, mammal);
>> Marker dog = MarkerManger.createMarker(“Dog”, mammal);
>>
>> The equivalent problem is that we now want  a parent named “Wild
>> Animals”. Of course
>> it could also have mammals. But to do that you would need to have the
>> marker be named
>> something like “Wild Mammals”.
>>
>> That is just the way it is because in your configuration you do not
>> specify “Pet.Mammal.Cat”
>> as the marker name. You only specify “Cat”. Or you can specify “Pet” in
>> the configuration
>> and it will match any event using the “Mammal”, “Cat”, or “Dog” marker.
>>
>> The reason a Marker can only have a single parent is strictly due to
>> performance. Walking
>> the parent markers to see if there is a match is not particularly fast.
>> Having to traverse
>> multiple parent hierarchies would make it even slower. As it is, I
>> suspect Markers aren’t
>> used that heavily so trying to make it even fancier seems like overkill.
>>
>> Ralph
>>
>>
>> > On Oct 19, 2021, at 6:55 AM, Gary Gregory <[email protected]>
>> wrote:
>> >
>> > Hi All,
>> >
>> > I get bit by this every time I try to make my markers "fancy" so I took
>> the
>> > time this go around to open up a discussion :-)
>> >
>> > I want markers:
>> >
>> > Bob.children.John
>> > Bob.children.Jimmy
>> > Alice.children.Rose
>> > Alice.children.Sue
>> > (Never mind Alice.chidren.Bob)
>> >
>> > I want to turn off only "Bob.children" but I can't because "children" is
>> > effectively global and either can be defined in code with:
>> > Only Bob as it's parent,
>> > Only Alice as it's parent,
>> > Both Bob and Alice as parents (uh...?)
>> >
>> > This is a complete mismatch with hierarchical naming with have with
>> Loggers
>> > and confusing to no end, and not documented.
>> >
>> > Can/should we "fix" markers to behave like a clean hierarchy?
>> >
>> > Or, should hierarchical marker names be provided in some different way?
>> > With a different character than a dot for example?
>> >
>> > I was about to write some docs internal to a product at work to show
>> how to
>> > get logging to perform these fancy tricks but I won't until I get a
>> > clearer picture of what we can/should do for this type of use case.
>> >
>> > TY!
>> > Gary
>>
>>
>>

Reply via email to