uk.ac.gda.util.UnixToWindowsFilePathConverter.java Source code

Java tutorial

Introduction

Here is the source code for uk.ac.gda.util.UnixToWindowsFilePathConverter.java

Source

/*-
 * Copyright  2011 Diamond Light Source Ltd.
 *
 * This file is part of GDA.
 *
 * GDA is free software: you can redistribute it and/or modify it under the
 * terms of the GNU General Public License version 3 as published by the Free
 * Software Foundation.
 *
 * GDA 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.
 *
 * You should have received a copy of the GNU General Public License along
 * with GDA. If not, see <http://www.gnu.org/licenses/>.
 */

package uk.ac.gda.util;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.StringUtils;

public class UnixToWindowsFilePathConverter implements FilePathConverter, InitializingBean {

    private String windowsSubString;
    private String unixSubString;
    private boolean backSlash = true; //some plugins use forward slash for both windows and Unix but previous GDA version uses only different slash 

    @Override
    public String converttoInternal(String filepath) {

        String replace = StringUtils.replace(filepath, unixSubString, windowsSubString);
        if (backSlash)
            replace = StringUtils.replace(replace, "/", "\\");
        return replace;
    }

    @Override
    public String converttoExternal(String filepath) {
        String replace = StringUtils.replace(filepath, windowsSubString, unixSubString);
        if (backSlash)
            replace = StringUtils.replace(replace, "\\", "/");
        return replace;
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        if (windowsSubString == null || unixSubString == null)
            throw new IllegalArgumentException("windowsSubString == null || unixSubString==null");

    }

    public String getWindowsSubString() {
        return windowsSubString;
    }

    public void setWindowsSubString(String windowsSubString) {
        this.windowsSubString = windowsSubString;
    }

    public String getUnixSubString() {
        return unixSubString;
    }

    public void setUnixSubString(String unixSubString) {
        this.unixSubString = unixSubString;
    }

    public boolean isBackSlash() {
        return backSlash;
    }

    public void setBackSlash(boolean backSlash) {
        this.backSlash = backSlash;
    }

}