All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy