code: public static <T extends Object> T assertAssignable(Object arg, Class<T> type) {
  		
  		assertNotNull(arg);
  		assertNotNull(type);
  		
  		if(!type.isAssignableFrom(arg.getClass())) {
  		
  			throw new ClassCastException(new StringBuilder("The instance of type <")
  			.append(arg.getClass().getName()).append("> cannot be assigned to a <")
  			.append(type.getName())
  			.append(">").toString());
  		}
  		
  		return type.cast(arg);
  	}
docs: <p>Asserts that the given Object is assignable to the specified type. If either the generic Object
  or the {@link Class} is {@code null} a {@link NullPointerException} will be thrown with the message,
  <i>"The supplied argument was found to be &lt;null&gt;"</i>. If the object was not found to be in
  conformance with the specified type, a {@link ClassCastException} will be thrown with the message,
  <i>"The instance of type &lt;argument-type&gt; cannot be assigned to a &lt;specified-type&gt;"</i>.</p>
  
  @param arg
  the argument to be asserted for type conformance
  <br><br>
  @param type
  the {@link Class} type to which the argument must conform
  <br><br>
  @return the argument which was asserted to conform to the specified type
  <br><br>
  @throws ClassCastException
  if the supplied argument does not conform to the specified type
  <br><br>
  @since 1.3.0