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

com.paypal.butterfly.utilities.conditions.FileExists Maven / Gradle / Ivy

There is a newer version: 3.2.7
Show newest version
package com.paypal.butterfly.utilities.conditions;

import com.paypal.butterfly.extensions.api.TUExecutionResult;
import com.paypal.butterfly.extensions.api.TransformationContext;
import com.paypal.butterfly.extensions.api.SingleCondition;
import com.paypal.butterfly.extensions.api.exception.TransformationUtilityException;

import java.io.File;

/**
 * Checks if a particular file or folder exists.
 *
 * @author facarvalho
 */
public class FileExists extends SingleCondition {

    private static final String DESCRIPTION = "Check if file or folder '%s' exists";

    // Even though it is redundant to have this default constructor here, since it is
    // the only one (the compiler would have added it implicitly), this is being explicitly
    // set here to emphasize that the public default constructor should always be
    // available by any transformation utility even when additional constructors are present.
    // The reason for that is the fact that one or more of its properties might be set
    // during transformation time, using the TransformationUtility set method
    @SuppressWarnings("PMD.UnnecessaryConstructor")
    public FileExists() {
    }

    @Override
    public String getDescription() {
        return String.format(DESCRIPTION, getRelativePath());
    }

    @Override
    protected TUExecutionResult execution(File transformedAppFolder, TransformationContext transformationContext) {
        boolean exists = false;

        try {
            File file = getAbsoluteFile(transformedAppFolder, transformationContext);
            exists = file.exists();
        } catch (TransformationUtilityException e) {
            return TUExecutionResult.warning(this, e, exists);
        }

        return TUExecutionResult.value(this, exists);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy