configfactory.java
来自「dump3 morpheus 0.2.9 src」· Java 代码 · 共 68 行
JAVA
68 行
/**
* DuMP3 version morpheus_0.2.9 - a duplicate/similar file finder in Java<BR>
* Copyright 2005 Alexander Grässer<BR>
* All Rights Reserved, http://dump3.sourceforge.net/<BR>
* <BR>
* This file is part of DuMP3.<BR>
* <BR>
* DuMP3 is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later version.<BR>
* <BR>
* DuMP3 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 General Public License for more details.<BR>
* <BR>
* You should have received a copy of the GNU General Public License along with DuMP3; if not, write to the Free Software Foundation, Inc., 51 Franklin St,
* Fifth Floor, Boston, MA 02110-1301 USA
*/
package net.za.grasser.duplicate.fingerprint.configure;
import java.util.HashMap;
import java.util.Map;
import net.za.grasser.duplicate.fingerprint.AbstractFingerprint;
/**
* @author <a href="http://sourceforge.net/sendmessage.php?touser=733840">pyropunk at sourceforge dot net</a>
* @version $Revision: 1.4 $
*/
public abstract class ConfigFactory {
/**
* @return FingerprintConfig
*/
protected abstract FingerprintConfig create();
/**
* <code>factories</code> ConfigFactory -
*/
private static final Map<String, ConfigFactory> factories = new HashMap<String, ConfigFactory>();
/**
* @param id
* @param f
*/
public static void addFactory(final String id, final ConfigFactory f) {
factories.put(id, f);
}
/**
* @param cls
* @return FingerprintConfig
*/
public static FingerprintConfig getConfig(final Class< ? extends AbstractFingerprint> cls) {
final String cfg = cls.getSimpleName() + "Config";
if (!factories.containsKey(cfg)) {
try {
// Load dynamically
final String full = ConfigFactory.class.getPackage().getName() + '.' + cfg;
Class.forName(full);
} catch (final ClassNotFoundException e) {
throw new RuntimeException("Bad config creation: " + cfg);
}
// See if it was put in:
if (!factories.containsKey(cfg)) {
throw new RuntimeException("Bad config creation: " + cfg);
}
}
return factories.get(cfg).create();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?