docs: static Line getAndRegisterLine(Line line) {
          AddOnModel addOnModel;
          Optional<AddOnModel> addOnModelForClassLoader = main.getSecurityManager().getAddOnModelForClassLoader();
          if (!addOnModelForClassLoader.isPresent()) {
              logger.debug("the SoundManager will not manage this line, obtained by system");
              return line;
          } else {
              addOnModel = addOnModelForClassLoader.get();
          }
  
          IzouSoundLineBaseClass izouSoundLine;
          if (line instanceof SourceDataLine) {
              if (line instanceof Clip) {
                  izouSoundLine = new IzouSoundLineClipAndSDLine((Clip) line, (SourceDataLine) line, main, false, addOnModel);
              } else {
                  izouSoundLine = new IzouSoundSourceDataLine((SourceDataLine) line, main, false, addOnModel);
              }
          } else if (line instanceof Clip) {
              izouSoundLine = new IzouSoundLineClip((Clip) line, main, false, addOnModel);
          } else if (line instanceof DataLine) {
              izouSoundLine = new IzouSoundDataLine((DataLine) line, main, false, addOnModel);
          } else {
              izouSoundLine = new IzouSoundLineBaseClass(line, main, false, addOnModel);
          }
          main.getSoundManager().addIzouSoundLine(addOnModel, izouSoundLine);
          return izouSoundLine;
      }