/* * Copyright (c) 2019-2020. Developed by Hedgecode. * * 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 org.hedgecode.chess.scanner.regex; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import org.hedgecode.chess.scanner.ChessHogScannerConstants; /** * RegexType * * @author Dmitry Samoshin aka gotty */ public enum RegexType { TOURNAMENT { @Override public String format(String target, RegexParams params) { if (params.getPageId() != null) { target = target.replace( RegexParams.PAGE_ID, params.getPageId() ); } return target.replace( RegexParams.TOURNAMENT_ID, params.getTournamentId() ); } }, GAME { @Override public String format(String target, RegexParams params) { return target.replace( RegexParams.GAME_ID, params.getGameId() ); } }, QUERY { @Override public String format(String target, RegexParams params) { try { return target.replace( RegexParams.QUERY, params.isUrlEncode() ? URLEncoder.encode(params.getQuery(), ChessHogScannerConstants.CHARSET.name()) : params.getQuery() ); } catch (UnsupportedEncodingException e) { return null; } } }; public abstract String format(String target, RegexParams params); }