/* * JUnique - Helps in preventing multiple instances of the same application * * Copyright (C) 2008-2010 Carlo Pelliccia (www.sauronsoftware.it) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version * 2.1, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License 2.1 for more details. * * You should have received a copy of the GNU Lesser General Public * License version 2.1 along with this program. * If not, see <http://www.gnu.org/licenses/>. */ package it.sauronsoftware.junique; import java.io.File; import java.nio.channels.FileChannel; import java.nio.channels.FileLock; /** * Lock structure. It is internally used by JUnique to put together the elements * of a JUnique taken lock. * * @author Carlo Pelliccia */ class Lock { /** * The lock id. */ private String id; /** * The lock file. */ private File lockFile; /** * The port file. */ private File portFile; /** * The channel associated to the lock file. */ private FileChannel lockFileChannel; /** * The file lock taken on the lock file. */ private FileLock lockFileLock; /** * The server handling message reception for this lock. */ private Server server; /** * It builds the lock representation. * * @param id * The lock id. * @param lockFile * The lock file. * @param lockFileChannel * The channel associated to the lock file. * @param lockFileLock * The file lock taken on the lock file. * @param server * The server handling message reception for this lock. */ Lock(String id, File lockFile, File portFile, FileChannel lockFileChannel, FileLock lockFileLock, Server server) { super(); this.id = id; this.lockFile = lockFile; this.portFile = portFile; this.lockFileChannel = lockFileChannel; this.lockFileLock = lockFileLock; this.server = server; } /** * It returns the lock id. * * @return The lock id. */ public String getId() { return id; } /** * It returns the lock file. * * @return The lock file. */ public File getLockFile() { return lockFile; } /** * It returns the port file. * * @return The port file. */ public File getPortFile() { return portFile; } /** * It returns the channel associated to the lock file. * * @return The channel associated to the lock file. */ public FileChannel getLockFileChannel() { return lockFileChannel; } /** * It returns the file lock taken on the lock file. * * @return The file lock taken on the lock file. */ public FileLock getLockFileLock() { return lockFileLock; } /** * It returns the server handling message reception for this lock. * * @return The server handling message reception for this lock. */ public Server getServer() { return server; } }