The other half of data sharing is inserts . Inserts mark where sets can be reused in a PSI hierarchy outside of their original location. Like sets, inserts have global or local scope. Global sets and inserts can be combined to represent a sort of shared template. Sets map the shared data and inserts mark where unique data goes.
Groups can contain one global container and an unconstrained number of local containers.
A group is often used to model containers like directories. To capture site hierarchy more accurately, groups can also be nested inside other groups. Since PSI maps other site building blocks, it must have a method to determine when it is transformed into other common site structures. PSI provides internal filters to list specific rules and conditions that must be met to do this. The class attribute is used to group PSI data and then align these groups with specific rules.