code: private InputSplitAssigner getAssignerByType(final Class<? extends InputSplit> inputSplitType,
  			final boolean allowLoading) {
  
  		synchronized (this.loadedAssigners) {
  
  			InputSplitAssigner assigner = this.loadedAssigners.get(inputSplitType);
  			if (assigner == null && allowLoading) {
  				assigner = loadInputSplitAssigner(inputSplitType);
  				if (assigner != null) {
  					this.loadedAssigners.put(inputSplitType, assigner);
  				}
  			}
  
  			if (assigner != null) {
  				return assigner;
  			}
  		}
  
  		LOG.warn("Unable to find specific input split provider for type " + inputSplitType.getName()
  			+ ", using default assigner");
  
  		return this.defaultAssigner;
  	}
docs: Returns the {@link InputSplitAssigner} which is defined for the given type of input split.
  
  @param inputSplitType
  the type of input split to find the corresponding {@link InputSplitAssigner} for
  @param allowLoading
  <code>true</code> to indicate that the input split assigner is allowed to load additional classes if
  necessary, <code>false</code> otherwise
  @return the {@link InputSplitAssigner} responsible for the given type of input split