code: public static List<MainType> getMainTypesBySize(final int typeSize)
  	{
  		final List<MainType> l = new ArrayList<>();
  		for (final Iterator<MainType> i = map.values().iterator(); i.hasNext();) {
  			final MainType type = i.next();
  			try {
  				final String dptId = type.getSubTypes().keySet().iterator().next();
  				final int size = type.createTranslator(dptId).getTypeSize();
  				if (size == typeSize)
  					l.add(type);
  			}
  			catch (final KNXException e) {}
  		}
  		return l;
  	}
docs: Returns all main types of a specific data type size, based on the currently available main types as provided by
  {@link TranslatorTypes#getAllMainTypes()}.
  <p>
  For example, when specifying a type size of <code>2</code>, the returned list will contain the main types with
  number 9 (<b>2-byte float</b>) and number 7 (<b>2 byte unsigned value</b>), assuming both are also returned by
  {@link TranslatorTypes#getAllMainTypes()}.
  
  @param typeSize the data type size in bytes, use <code>0</code> for main types having a 6 bit ASDU
  @return list of all available main types of the requested type size or the empty list