public static String createCache(final Context context, @Nullable final String name, @Nullable final String description, final int assignedEmoji, @Nullable final Geopoint geopoint, final int listId) {
        String geocode;
        do {
            geocode = PREFIX + generateRandomId();
        } while (DataStore.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB) != null);
        assertCacheExists(context, geocode, name, description, assignedEmoji, geopoint, listId);
        return geocode;
    }
creates a new cache for the internal connector

@param context       context in which this function gets called
@param name          cache's name (or null for default name)
@param description   cache's description (or null for default description)
@param assignedEmoji cache's assigned emoji (or 0 for default cache type icon)
@param geopoint      cache's current location (or null if none)
@param listId        cache list's id
@return geocode      geocode of the newly created cache
main/src/main/java/cgeo/geocaching/connector/internal/InternalConnector.java