code: public static IdentifierHandler<? extends Identifier> getHandlerFor(Element element) {
  
  		if (sIdentifierHandlers == null) {
  			initializeDefaultHandlers();
  		}
  
  		String nodeName = element.getNodeName();
  
  		if (nodeName.equalsIgnoreCase(IfmapStrings.ACCESS_REQUEST_EL_NAME)) {
  			return sIdentifierHandlers.get(AccessRequest.class);
  
  		} else if (nodeName.equalsIgnoreCase(IfmapStrings.DEVICE_EL_NAME)) {
  			return sIdentifierHandlers.get(Device.class);
  
  		} else if (nodeName.equalsIgnoreCase(IfmapStrings.IP_ADDRESS_EL_NAME)) {
  			return sIdentifierHandlers.get(IpAddress.class);
  
  		} else if (nodeName.equalsIgnoreCase(IfmapStrings.MAC_ADDRESS_EL_NAME)) {
  			return sIdentifierHandlers.get(MacAddress.class);
  
  		} else if (nodeName.equalsIgnoreCase(IfmapStrings.IDENTITY_EL_NAME)) {
  			if (checkExtendedIdentityElement(element)) {
  				IdentifierHandler<? extends Identifier> handler = getExtendedIdentifierHandlerFor(element);
  
  				if (handler != null) {
  					return handler;
  				}
  			}
  
  			return sIdentifierHandlers.get(Identity.class);
  		}
  
  		return getOtherIdentifierHandlerFor(element);
  	}
docs: First try to find the default handler for the element argument. ( AccessRequestHandler || DeviceHandler ||
  IdentityHandler || IpAddressHandler || MacAddressHandler) If the element argument an extended identity Identifier
  then try to find the most specific handler for this element. Used the Element-LocalName to find the right
  handler.
  
  @param element
  @return The {@link IdentifierHandler} for the element or null.