code: @SuppressWarnings("unchecked")
  	@Override
  	public int delete(final Object entity) {
  		@SuppressWarnings("rawtypes")
  		EntityHandler handler = this.getEntityHandler();
  		if (!handler.getEntityType().isInstance(entity)) {
  			throw new IllegalArgumentException("Entity type not supported");
  		}
  
  		try {
  			Class<?> type = entity.getClass();
  			TableMetadata metadata = handler.getMetadata(this.transactionManager, type);
  			SqlContext context = handler.createDeleteContext(this, metadata, type, true);
  			context.setSqlKind(SqlKind.DELETE);
  			handler.setDeleteParams(context, entity);
  			return handler.doDelete(this, context, entity);
  		} catch (SQLException e) {
  			throw new EntitySqlRuntimeException(SqlKind.DELETE, e);
  		}
  	}
docs: {@inheritDoc}
  
  @see jp.co.future.uroborosql.SqlAgent#delete(Object)