abstract class AbstractNet {
    private Set rules;

    void assignRule(LayoutRule rule) {
         rules.add(rule);
    }

    Set assignedRules() {
         return rules;
    }
}

class Net extends AbstractNet {
    private Bus bus;

    Set assignedRules() {
        Set result = new HashSet();
        result.addAll(super.assignedRules());
        result.addAll(bus.assignedRules());
        return result;
    }
}
