/* * Copyright (C) 2017 Indeed Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing permissions and * limitations under the License. */ package com.indeed.imhotep.shortlink; import java.io.IOException; /** * Abstracts the storage for IQL query shortlink codes */ public interface ShortLinkRepository { /** * Maps a short code to an IQL query. The repository should be write-once, so this method * will modify nothing and return false if the short code is already in use. * * @param code short code to map * @param paramString IQL parameters (i.e. from URL hash) * @throws IOException if unable to write mapping to repository * @return true if mapping succeeded, false if the short code is already in use. */ boolean mapShortCode(String code, String paramString) throws IOException; /** * Returns the IQL view and query string for a given short code * * @param shortCode short code to look up * @return IQL param string (URL encoded), or null if none found */ String resolveShortCode(String shortCode) throws IOException; /** * @return true if short linking is enabled */ boolean isEnabled(); }