tikhomirov@112: /* tikhomirov@112: * Copyright (c) 2011 TMate Software Ltd tikhomirov@112: * tikhomirov@112: * This program is free software; you can redistribute it and/or modify tikhomirov@112: * it under the terms of the GNU General Public License as published by tikhomirov@112: * the Free Software Foundation; version 2 of the License. tikhomirov@112: * tikhomirov@112: * This program is distributed in the hope that it will be useful, tikhomirov@112: * but WITHOUT ANY WARRANTY; without even the implied warranty of tikhomirov@112: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the tikhomirov@112: * GNU General Public License for more details. tikhomirov@112: * tikhomirov@112: * For information on how to redistribute this software under tikhomirov@112: * the terms of a license other than GNU General Public License tikhomirov@112: * contact TMate Software at support@svnkit.com tikhomirov@112: */ tikhomirov@112: package org.tmatesoft.hg.internal; tikhomirov@112: tikhomirov@112: import java.nio.ByteBuffer; tikhomirov@112: tikhomirov@112: import org.tmatesoft.hg.core.Path; tikhomirov@112: import org.tmatesoft.hg.repo.HgRepository; tikhomirov@112: tikhomirov@112: /** tikhomirov@112: * tikhomirov@112: * @author Artem Tikhomirov tikhomirov@112: * @author TMate Software Ltd. tikhomirov@112: */ tikhomirov@112: public interface Filter { tikhomirov@112: tikhomirov@112: ByteBuffer filter(ByteBuffer src); tikhomirov@112: tikhomirov@112: interface Factory { tikhomirov@114: void initialize(HgRepository hgRepo, ConfigFile cfg); tikhomirov@114: // may return null if for a given path and/or options this filter doesn't make any sense tikhomirov@114: Filter create(Path path, Options opts); tikhomirov@113: } tikhomirov@113: tikhomirov@113: enum Direction { tikhomirov@113: FromRepo, ToRepo tikhomirov@113: } tikhomirov@113: tikhomirov@114: public class Options { tikhomirov@114: tikhomirov@114: private final Direction direction; tikhomirov@114: public Options(Direction dir) { tikhomirov@114: direction = dir; tikhomirov@114: } tikhomirov@114: tikhomirov@114: Direction getDirection() { tikhomirov@114: return direction; tikhomirov@114: } tikhomirov@114: tikhomirov@112: } tikhomirov@112: }