public boolean create(Class<?> layout) {
		
		Field[] publicFields = layout.getFields();

		if (publicFields.length == 0) {
			Utilities.outputError("The given table layout '" + layout.getName() + "' for the table '" + m_name + "' has no public fields.");
			return false;
		}
				
		String createTable = "CREATE TABLE `" + m_name + "` (";
		for (Field field : publicFields) {			
			final String fieldName = field.getName();
			final String fieldType = convertType(field.getType());	
			
			if (fieldType == null) {
				Utilities.outputError("The given table layout '" + layout.getName() + "' for the table '" + m_name + "' has unknown type '" + field.getType().getSimpleName() + "'.");
				return false;
			}
			
			createTable += fieldName + " " + fieldType + ",";			
		}
		createTable = createTable.substring(0, createTable.length() - 1);
		createTable += ")";

		m_database.query(createTable, true);
		
		Utilities.outputDebug("Created table `" + m_name + "` for plugin " + m_database.getOwnerName());
		return true;
	}