xyz.cofe.fs.unix.PropertiesUnixFileConfig Maven / Gradle / Ivy
The newest version!
/*
* The MIT License
*
* Copyright 2014 Kamnev Georgiy ([email protected]).
*
* Данная лицензия разрешает, безвозмездно, лицам, получившим копию данного программного
* обеспечения и сопутствующей документации (в дальнейшем именуемыми "Программное Обеспечение"),
* использовать Программное Обеспечение без ограничений, включая неограниченное право на
* использование, копирование, изменение, объединение, публикацию, распространение, сублицензирование
* и/или продажу копий Программного Обеспечения, также как и лицам, которым предоставляется
* данное Программное Обеспечение, при соблюдении следующих условий:
*
* Вышеупомянутый копирайт и данные условия должны быть включены во все копии
* или значимые части данного Программного Обеспечения.
*
* ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ ЛЮБОГО ВИДА ГАРАНТИЙ,
* ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ,
* СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И НЕНАРУШЕНИЯ ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ
* ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ
* ИЛИ ДРУГИХ ТРЕБОВАНИЙ ПО ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ДЕЛИКТАМ ИЛИ ИНОМУ, ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ
* ПРИЧИНОЙ ИЛИ СВЯЗАННЫМ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
* ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
*/
package xyz.cofe.fs.unix;
import java.util.logging.Level;
import java.util.logging.Logger;
import xyz.cofe.fs.UnixFile;
import xyz.cofe.unix.libc.UnixFileIO;
import xyz.cofe.unix.utils.Func2;
/**
*
* @author Kamnev Georgiy ([email protected])
*/
public class PropertiesUnixFileConfig implements UnixFileConfig {
//
private static void logFine(String message,Object ... args){
Logger.getLogger(PropertiesUnixFileConfig.class.getName()).log(Level.FINE, message, args);
}
private static void logFiner(String message,Object ... args){
Logger.getLogger(PropertiesUnixFileConfig.class.getName()).log(Level.FINER, message, args);
}
private static void logFinest(String message,Object ... args){
Logger.getLogger(PropertiesUnixFileConfig.class.getName()).log(Level.FINEST, message, args);
}
private static void logInfo(String message,Object ... args){
Logger.getLogger(PropertiesUnixFileConfig.class.getName()).log(Level.INFO, message, args);
}
private static void logWarning(String message,Object ... args){
Logger.getLogger(PropertiesUnixFileConfig.class.getName()).log(Level.WARNING, message, args);
}
private static void logSevere(String message,Object ... args){
Logger.getLogger(PropertiesUnixFileConfig.class.getName()).log(Level.SEVERE, message, args);
}
private static void logException(Throwable ex){
Logger.getLogger(PropertiesUnixFileConfig.class.getName()).log(Level.SEVERE, null, ex);
}
//
private Func2 getBool = null;
private UnixFileIO io = null;
public PropertiesUnixFileConfig(UnixFileIO io, final java.util.Map props){
if( props==null )throw new IllegalArgumentException( "props==null" );
if( io==null )throw new IllegalArgumentException( "io==null" );
this.io = io;
this.getBool = new Func2() {
@Override
public Boolean apply(String prop, Boolean def) {
String v = props.get(prop);
if( v==null )return def;
if( v.equals("true") )return true;
if( v.equals("false") )return false;
return def;
}
};
}
public PropertiesUnixFileConfig(UnixFileIO io, final java.util.Properties props){
if( props==null )throw new IllegalArgumentException( "props==null" );
if( io==null )throw new IllegalArgumentException( "io==null" );
this.io = io;
this.getBool = new Func2() {
@Override
public Boolean apply(String prop, Boolean def) {
String v = props.getProperty(prop, null);
if( v==null )return def;
if( v.equals("true") )return true;
if( v.equals("false") )return false;
return def;
}
};
}
@Override
public boolean isDirectory_cache(UnixFile unixFile) {
return getBool.apply("isDirectory_cache",false);
}
@Override
public boolean isFile_cache(UnixFile unixFile) {
return getBool.apply("isFile_cache",false);
}
@Override
public boolean isExists_cache(UnixFile unixFile) {
return getBool.apply("isExists_cache",false);
}
@Override
public boolean getModifyDate_cache(UnixFile unixFile) {
return getBool.apply("getModifyDate_cache",false);
}
@Override
public UnixFileIO io(UnixFile unixFile) {
return io;
}
@Override
public boolean filestat_cache(UnixFile unixFile) {
return getBool.apply("filestat_cache",false);
}
@Override
public boolean isSymbolicLink_cache(UnixFile unixFile) {
return getBool.apply("isSymbolicLink_cache",false);
}
@Override
public boolean readLink_cache(UnixFile unixFile) {
return getBool.apply("readLink_cache",false);
}
@Override
public boolean resolveLink_cache(UnixFile unixFile) {
return getBool.apply("resolveLink_cache",false);
}
@Override
public boolean getParent_cache(UnixFile unixFile) {
return getBool.apply("getParent_cache",false);
}
@Override
public boolean getChild_cache(UnixFile unixFile) {
return getBool.apply("getChild_cache",false);
}
@Override
public boolean getLength_cache(UnixFile unixFile) {
return getBool.apply("getLength_cache",false);
}
@Override
public boolean isDirectory_useFileStat(UnixFile unixFile) {
return getBool.apply("isDirectory_useFileStat",false);
}
@Override
public boolean isFile_useFileStat(UnixFile unixFile) {
return getBool.apply("isFile_useFileStat",false);
}
}