code: protected String getItemPath(boolean disabled) {
          String selector = getBaseItemPath();
          String subPath = applyTemplateValue(disabled ? "disabled" : "enabled");
          if (subPath != null) {
              selector += !Strings.isNullOrEmpty(selector) ? " and " + subPath : subPath;
          }
          Map<String, String[]> templatesValues = getTemplatesValues();
          String[] tagAndPositions = templatesValues.get("tagAndPosition");
          List<String> tagAndPosition = new ArrayList<>();
          if (tagAndPositions != null) {
              tagAndPosition.addAll(Arrays.asList(tagAndPositions));
              tagAndPosition.add(0, getTag());
          }
          String tag;
          if (!tagAndPosition.isEmpty()) {
              tag = applyTemplate("tagAndPosition", tagAndPosition.toArray());
          } else {
              tag = getTag();
          }
          selector = getRoot() + tag + (!Strings.isNullOrEmpty(selector) ? "[" + selector + "]" : "");
          return selector;
      }
docs: this method is meant to be overridden by each component
  
  @param disabled disabled
  @return String