Example usage for org.apache.commons.io FilenameUtils concat

List of usage examples for org.apache.commons.io FilenameUtils concat

Introduction

In this page you can find the example usage for org.apache.commons.io FilenameUtils concat.

Prototype

public static String concat(String basePath, String fullFilenameToAdd) 

Source Link

Document

Concatenates a filename to a base path using normal command line style rules.

Usage

From source file:edu.cornell.med.icb.goby.alignments.TestConcatAlignmentReader.java

@Before
public void setUp() throws IOException {
    {// www.j a v  a 2  s  .co  m
        outputBasename1 = FilenameUtils.concat(BASE_TEST_DIR, "concat-align-101");
        final AlignmentWriterImpl writer = new AlignmentWriterImpl(outputBasename1);
        writer.setNumAlignmentEntriesPerChunk(1000);
        writer.setAlignerName("first-aligner");
        writer.setAlignerVersion("version-first-aligner");
        writer.setReadOriginInfo(buildReadGroup(0, "group_0_sample_1", "ILLUMINA", "concat-align-101"));
        writer.addReadOriginInfo(buildReadGroup(1, "group_1_sample_1", "454", "concat-align-101"));
        writer.addReadOriginInfo(buildReadGroup(2, "group_2_sample_1", "another", "concat-align-101"));
        final int numQuery = 10;
        int position = 100;
        final int score = 30;

        for (int targetIndex = 0; targetIndex < numTargets; targetIndex++) {
            for (int queryIndex = 0; queryIndex < numQuery; queryIndex++) {
                Alignments.AlignmentEntry.Builder newEntry = Alignments.AlignmentEntry.newBuilder();
                newEntry.setQueryIndex(queryIndex);
                newEntry.setTargetIndex(targetIndex);
                newEntry.setScore((float) score);
                newEntry.setPosition(position++);
                newEntry.setMatchingReverseStrand(false);
                newEntry.setMultiplicity(1);
                newEntry.setQueryLength(constantQueryLength);
                newEntry.setReadOriginIndex(0);
                writer.appendEntry(newEntry.build());
                numEntriesIn101++;
                count101++;
            }
        }
        numQueries101 = numQuery;

        writer.close();
        // reads in basename1 hit in 10 different places in the genome. They should be filtered when
        // removing ambiguous reads.
        AlignmentTooManyHitsWriter tmhWriter = new AlignmentTooManyHitsWriter(outputBasename1, 2);
        for (int queryIndex = 0; queryIndex < numQuery; queryIndex++) {
            tmhWriter.append(queryIndex, 10, 30);
        }
        tmhWriter.close();
    }
    {
        outputBasename2 = FilenameUtils.concat(BASE_TEST_DIR, "concat-align-102");
        final AlignmentWriterImpl writer = new AlignmentWriterImpl(outputBasename2);
        writer.setAlignerName("second-aligner");
        writer.setAlignerVersion("version-second-aligner");
        writer.setNumAlignmentEntriesPerChunk(1000);
        writer.setReadOriginInfo(buildReadGroup(0, "group_0_sample_2", "SOLID", "concat-align-102"));

        final int numQuery = 13;

        int position = 1;
        final int score = 50;
        for (int targetIndex = 0; targetIndex < numTargets; targetIndex++) {
            for (int queryIndex = 0; queryIndex < numQuery; queryIndex++) {

                Alignments.AlignmentEntry.Builder newEntry = Alignments.AlignmentEntry.newBuilder();
                newEntry.setQueryIndex(queryIndex);
                newEntry.setTargetIndex(targetIndex);
                newEntry.setScore((float) score);
                newEntry.setPosition(position++);
                newEntry.setMatchingReverseStrand(false);
                newEntry.setMultiplicity(1);
                newEntry.setQueryLength(constantQueryLength);
                newEntry.setReadOriginIndex(0);
                writer.appendEntry(newEntry.build());
                numEntriesIn102++;
                count102++;
            }
        }
        numQueries102 = numQuery;

        writer.close();
        // reads in basename 2 have just one hit, they are never ambiguous
        AlignmentTooManyHitsWriter tmhWriter = new AlignmentTooManyHitsWriter(outputBasename2, 2);
        for (int queryIndex = 0; queryIndex < numQuery; queryIndex++) {
            tmhWriter.append(queryIndex, 1, 30);
        }
        tmhWriter.close();
    }

}

From source file:edu.cornell.med.icb.goby.alignments.TestAlignmentIndex.java

@Test
public void testReposition() throws IOException {
    int[] targetLengths = new int[] { 100, 50, 20, 10, 5 };
    final String basename1 = FilenameUtils.concat(BASE_TEST_DIR, "align-index-error-2");
    final AlignmentWriterImpl writer = new AlignmentWriterImpl(basename1);
    writer.setTargetLengths(targetLengths);
    writer.setNumAlignmentEntriesPerChunk(1);
    writer.setSorted(true);//from w w w  . j  a  v a 2s  .c o  m
    int queryIndex = 0;

    writer.setAlignmentEntry(queryIndex++, 0, 99, 30, false, constantQueryLength);
    writer.appendEntry();
    writer.setAlignmentEntry(queryIndex++, 1, 0, 30, false, constantQueryLength);
    writer.appendEntry();
    writer.setAlignmentEntry(queryIndex++, 1, 1, 30, false, constantQueryLength);
    writer.appendEntry();
    writer.close();

    AlignmentReaderImpl reader = new AlignmentReaderImpl(basename1);
    reader.readHeader();
    assertNotNull(reader.skipTo(1, 0));
    // now reposition to an earlier position (since 1.9.6):
    reader.reposition(0, 99);
    assertNotNull(reader.skipTo(1, 0));
    assertNotNull(reader.skipTo(1, 1));
    reader.reposition(0, 99);
    assertNotNull(reader.skipTo(1, 0));
    assertNotNull(reader.skipTo(1, 1));

}

From source file:com.enderville.enderinstaller.util.InstallScript.java

/**
 * Installs the specified list of mods, updating the gui as it goes.
 *
 * @param mods The list of mods to install.
 * @param text The text area to update with logging statements.
 * @param progressBar The progress bar to update.
 *///from w  w  w  .j  a  va  2  s.c o  m
public static void guiInstall(List<String> mods, JTextArea text, JProgressBar progressBar) {

    //Create backups to restore if the install fails.
    try {
        createBackup();
    } catch (IOException e) {
        text.append("Failed to create backup copies of minecraft.jar and mods folder");
        LOGGER.error("Failed to create backup copies of minecraft.jar and mods folder", e);
        return;
    }

    //Create a temp directory where we can unpack the jar and install mods.
    File tmp;
    try {
        tmp = getTempDir();
    } catch (IOException e) {
        text.append("Error creating temp directory!");
        LOGGER.error("Install Error", e);
        return;
    }
    if (!tmp.mkdirs()) {
        text.append("Error creating temp directory!");
        return;
    }

    File mcDir = new File(InstallerConfig.getMinecraftFolder());
    File mcJar = new File(InstallerConfig.getMinecraftJar());
    File reqDir = new File(InstallerConfig.getRequiredModsFolder());

    //Calculate the number of "tasks" for the progress bar.
    int reqMods = 0;
    for (File f : reqDir.listFiles()) {
        if (f.isDirectory()) {
            reqMods++;
        }
    }
    //3 "other" steps: unpack, repack, delete temp
    int baseTasks = 3;
    int taskSize = reqMods + mods.size() + baseTasks;
    progressBar.setMinimum(0);
    progressBar.setMaximum(taskSize);
    int task = 1;

    try {
        text.append("Unpacking minecraft.jar\n");
        unpackMCJar(tmp, mcJar);
        progressBar.setValue(task++);

        text.append("Installing Core mods\n");
        //TODO specific ordering required!
        for (File mod : reqDir.listFiles()) {
            if (!mod.isDirectory()) {
                continue;
            }
            String name = mod.getName();
            text.append("...Installing " + name + "\n");
            installMod(mod, tmp, mcDir);
            progressBar.setValue(task++);
        }

        if (!mods.isEmpty()) {
            text.append("Installing Extra mods\n");
            //TODO specific ordering required!
            for (String name : mods) {
                File mod = new File(FilenameUtils
                        .normalize(FilenameUtils.concat(InstallerConfig.getExtraModsFolder(), name)));
                text.append("...Installing " + name + "\n");
                installMod(mod, tmp, mcDir);
                progressBar.setValue(task++);
            }
        }

        text.append("Repacking minecraft.jar\n");
        repackMCJar(tmp, mcJar);
        progressBar.setValue(task++);
    } catch (Exception e) {
        text.append("!!!Error installing mods!!!");
        LOGGER.error("Installation error", e);
        try {
            restoreBackup();
        } catch (IOException ioe) {
            text.append("Error while restoring backup files minecraft.jar.backup and mods_backup folder\n!");
            LOGGER.error("Error while restoring backup files minecraft.jar.backup and mods_backup folder!",
                    ioe);
        }
    }

    text.append("Deleting temporary files\n");
    try {
        FileUtils.deleteDirectory(tmp);
        progressBar.setValue(task++);
    } catch (IOException e) {
        text.append("Error deleting temporary files!\n");
        LOGGER.error("Install Error", e);
        return;
    }
    text.append("Finished!");

}

From source file:edu.cornell.med.icb.goby.alignments.TestReadWriteAlignments.java

/**
 * Validate that the the alignment header constant query length
 * ({@link edu.cornell.med.icb.goby.alignments.Alignments.AlignmentHeader#hasConstantQueryLength()})
 * is set to true when queries of the same length get appended.
 * @throws IOException if there is a problem reading or writing the alignment
 *///  www. ja  v a 2s.  c  o  m
@Test
public void constantQueryLengths() throws IOException {
    final AlignmentWriter writer = new AlignmentWriterImpl(
            FilenameUtils.concat(BASE_TEST_DIR, "constant-query-lengths"));

    for (int queryIndex = 0; queryIndex < 4; queryIndex++) {
        final Alignments.AlignmentEntry.Builder builder = Alignments.AlignmentEntry.newBuilder();
        builder.setQueryLength(11);
        builder.setQueryIndex(queryIndex);
        builder.setTargetIndex(42);
        builder.setPosition(0);
        builder.setMatchingReverseStrand(true);
        final Alignments.AlignmentEntry entry = builder.build();
        writer.appendEntry(entry);
    }
    writer.close();

    final AlignmentReaderImpl reader = new AlignmentReaderImpl(
            FilenameUtils.concat(BASE_TEST_DIR, "constant-query-lengths"));
    for (final Alignments.AlignmentEntry entry : reader) {
        assertEquals(11, entry.getQueryLength());
    }
    reader.readHeader();
    assertTrue("query length should be constant", reader.isConstantQueryLengths());
    assertEquals("Number of queries do not match", 4, reader.getNumberOfQueries());

}

From source file:com.blueverdi.rosietheriveter.PhotoViewActivity.java

void zoomIn() {
    Intent i = new Intent(this, ImageZoomActivity.class);
    String fn = FilenameUtils.concat(imageSource, imageFiles[index]);
    i.putExtra(ImageZoomActivity.IMAGE_FQN, fn);
    startActivity(i);//  www.  j a v  a 2  s. co  m

}

From source file:edu.cornell.med.icb.goby.alignments.TestMerge.java

@Test
public void testIgnoreTooManyHits() throws IOException {
    synchronized (this) {
        // make the too many hits info:
        final AlignmentTooManyHitsWriter tmhWriter = new AlignmentTooManyHitsWriter(
                FilenameUtils.concat(BASE_TEST_DIR, "align-102"), 4);

        // tmhWriter will only write entries if numHits > thresh
        tmhWriter.getNewAmbiguousLocation().setAtLeastNumberOfHits(5);
        tmhWriter.getNewAmbiguousLocation().setQueryIndex(0);
        tmhWriter.append();//from  w  w  w. j a  va 2  s. co  m
        tmhWriter.getNewAmbiguousLocation().setAtLeastNumberOfHits(15);
        tmhWriter.getNewAmbiguousLocation().setQueryIndex(1);
        tmhWriter.append();
        tmhWriter.close();

        final Merge merger = new Merge(3);

        final List<File> inputFiles;
        final String outputFile;
        final String basename;
        final int count;
        inputFiles = new ArrayList<File>();
        inputFiles.add(new File(FilenameUtils.concat(BASE_TEST_DIR, "align-102")));
        inputFiles.add(new File(FilenameUtils.concat(BASE_TEST_DIR, "align-102")));

        outputFile = FilenameUtils.concat(BASE_TEST_DIR, "out-103-merged");
        merger.setK(3);
        merger.merge(inputFiles, outputFile);

        // With k=3 and twice the same input file, the merge should keep twice the queries with best score:
        basename = outputFile;
        count = countAlignmentEntries(basename);
        assertEquals(count,
                (numQueries101 - 2) * 2/* two queries excluded because of too many hits with k=3 */);
    }
}

From source file:ffx.xray.Rescore.java

private File rescoreSingle(File modelFile, RescoreStrategy rscType, DoubleIndexPair[] energies, int i) {
    Path filepath = generatePath(modelFile);
    if (filepath == null) {
        logger.warning(String.format(" Could not generate path to file %s", modelFile.toPath()));
        return null;
    }/*  w ww .j a  va2  s.co m*/
    String filename = pwdPath.relativize(filepath).toString();
    File retFile = modelFile;
    try {
        MolecularAssembly[] openedAssemblies = utils.open(filename);
        MolecularAssembly assembly = openedAssemblies[0];
        switch (rscType) {
        case NO_RESCORE:
            logger.warning(" Rescore is being called with rscType = NO_RESCORE");
            break;
        case ENERGY_EVAL:
            break;
        case MINIMIZE:
            logger.info(String.format("\n Running minimize on %s", filename));
            logger.info(String.format(" RMS gradient convergence criteria: %f", eps));
            utils.energy(assembly);
            utils.minimize(assembly, eps);

            String ext = FilenameUtils.getExtension(filename);
            ext = ".".concat(ext);

            if (resultDir != null) {
                filename = FilenameUtils.getBaseName(filename);
                filename = FilenameUtils.concat(resultPath.toString(), filename);
            } else {
                filename = FilenameUtils.removeExtension(filename);
            }
            filename = filename.concat(fileSuffix).concat(ext);
            retFile = new File(filename);
            if (ext.toUpperCase().contains("XYZ")) {
                utils.saveAsXYZ(assembly, retFile);
            } else {
                utils.saveAsPDB(assembly, retFile);
            }
            break;
        case XRAY_MIN:
            logger.info(String.format("\n Running x-ray minimize on %s", filename));

            DiffractionFile diffractionFile = null;
            if (diffractionFiles.isEmpty()) {
                diffractionFile = new DiffractionFile(assembly, 1.0, false);
                diffractionFiles.add(diffractionFile);
            }
            CompositeConfiguration properties = Keyword.loadProperties(modelFile);
            DiffractionData diffractionData = new DiffractionData(assembly, properties, SolventModel.POLYNOMIAL,
                    diffractionFiles.toArray(new DiffractionFile[diffractionFiles.size()]));

            diffractionData.scaleBulkFit();
            diffractionData.printStats();
            utils.energy(assembly);

            RefinementMinimize refinementMinimize = new RefinementMinimize(diffractionData, refinementMode);
            if (eps < 0.0) {
                eps = refinementMinimize.getEps();
            }
            logger.info(String.format("\n RMS gradient convergence criteria: %8.5f max number of iterations %d",
                    eps, maxiter));
            refinementMinimize.minimize(eps, maxiter);
            diffractionData.scaleBulkFit();
            diffractionData.printStats();

            ext = FilenameUtils.getExtension(filename);
            ext = ".".concat(ext);

            if (resultDir != null) {
                filename = FilenameUtils.getBaseName(filename);
                filename = FilenameUtils.concat(resultPath.toString(), filename);
            } else {
                filename = FilenameUtils.removeExtension(filename);
            }
            filename = filename.concat(fileSuffix);
            diffractionData.writeData(filename + ".mtz");
            filename = filename.concat(ext);
            diffractionData.writeModel(filename);

            retFile = new File(filename);
            if (diffractionFile != null) {
                try {
                    diffractionFiles.remove(diffractionFile);
                } catch (UnsupportedOperationException ex) {
                    // This should never occur, because diffractionFiles should be of a List type supporting remove(object).
                    diffractionFiles = new ArrayList<>();
                }
            }
            break;
        case RS_MIN:
            logger.info(String.format("\n Running real-space minimize on %s", filename));

            RealSpaceFile realspaceFile = null;
            if (mapFiles.isEmpty()) {
                realspaceFile = new RealSpaceFile(assembly);
                mapFiles.add(realspaceFile);
            }
            properties = Keyword.loadProperties(modelFile);
            RealSpaceData realspaceData = new RealSpaceData(assembly, properties, new ParallelTeam(),
                    mapFiles.toArray(new RealSpaceFile[mapFiles.size()]));
            utils.energy(assembly);

            refinementMinimize = new RefinementMinimize(realspaceData, refinementMode);
            if (eps < 0.0) {
                eps = 1.0;
            }
            logger.info(String.format("\n RMS gradient convergence criteria: %8.5f max number of iterations %d",
                    eps, maxiter));
            refinementMinimize.minimize(eps, maxiter);

            ext = FilenameUtils.getExtension(filename);
            ext = ".".concat(ext);
            if (resultDir != null) {
                filename = FilenameUtils.getBaseName(filename);
                filename = FilenameUtils.concat(resultPath.toString(), filename);
            } else {
                filename = FilenameUtils.removeExtension(filename);
            }
            filename = filename.concat(fileSuffix).concat(ext);
            retFile = new File(filename);
            if (ext.toUpperCase().contains("XYZ")) {
                utils.saveAsXYZ(assembly, retFile);
            } else {
                utils.saveAsPDB(assembly, retFile);
            }

            if (realspaceFile != null) {
                try {
                    mapFiles.remove(realspaceFile);
                } catch (UnsupportedOperationException ex) {
                    // This should never occur, because diffractionFiles should be of a List type supporting remove(object).
                    mapFiles = new ArrayList<>();
                }
            }
            break;
        default:
            logger.severe(" No valid rescore type: FFX will not continue.");
        }
        double e = utils.returnEnergy(assembly);
        energies[i] = new DoubleIndexPair(i, e);
        utils.closeAll(openedAssemblies);
    } catch (Exception ex) {
        logger.warning(String.format(" Exception rescoring on file %s", filename));
        logger.info(ex.toString());
    }
    return retFile;
}

From source file:com.mbrlabs.mundus.assets.EditorAssetManager.java

private MetaFile createMetaFileFromAsset(FileHandle assetFile, AssetType type) throws IOException {
    String metaName = assetFile.name() + "." + MetaFile.META_EXTENSION;
    String metaPath = FilenameUtils.concat(rootFolder.path(), metaName);
    return createNewMetaFile(new FileHandle(metaPath), type);
}

From source file:com.perceptive.epm.perkolcentral.bl.ImageNowLicenseBL.java

@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.SERIALIZABLE, rollbackFor = ExceptionWrapper.class)
public void provideImageNowLicense(Imagenowlicenses imagenowlicenses, String providerUID)
        throws ExceptionWrapper {
    try {/*www.j a  v a 2s  .  c  o m*/
        imagenowlicenses = imageNowLicenseDataAccessor
                .getAllImageNowLicensesByRequestId(imagenowlicenses.getImageNowLicenseRequestId());
        imagenowlicenses.setIsProvided(true);
        imagenowlicenses.setLicenseProvidedOn(Calendar.getInstance().getTime());
        File filePathForThisRequest = new File(
                FilenameUtils.concat(fileUploadPath, imagenowlicenses.getImageNowLicenseRequestId()));
        imageNowLicenseDataAccessor.updateImageNowLicense(imagenowlicenses, providerUID);
        FileUtils.deleteQuietly(filePathForThisRequest);
    } catch (Exception ex) {
        throw new ExceptionWrapper(ex);
    }
}

From source file:com.cloudant.sync.datastore.DatastoreImpl.java

/**
 * Constructor for single thread SQLCipher-based datastore.
 * @param dir The directory where the datastore will be created
 * @param name The user-defined name of the datastore
 * @param provider The key provider object that contains the user-defined SQLCipher key
 * @throws SQLException//from  w w w .j  a  v a  2  s.c o  m
 * @throws IOException
 */
public DatastoreImpl(String dir, String name, KeyProvider provider)
        throws SQLException, IOException, DatastoreException {
    Preconditions.checkNotNull(dir);
    Preconditions.checkNotNull(name);
    Preconditions.checkNotNull(provider);

    this.keyProvider = provider;
    this.datastoreDir = dir;
    this.datastoreName = name;
    this.extensionsDir = FilenameUtils.concat(this.datastoreDir, "extensions");
    final String dbFilename = FilenameUtils.concat(this.datastoreDir, DB_FILE_NAME);
    queue = new SQLDatabaseQueue(dbFilename, provider);

    int dbVersion = queue.getVersion();
    // Increment the hundreds position if a schema change means that older
    // versions of the code will not be able to read the migrated database.
    if (dbVersion >= 200) {
        throw new DatastoreException(String.format("Database version is higher than the version supported "
                + "by this library, current version %d , highest supported version %d", dbVersion, 99));
    }
    queue.updateSchema(new SchemaOnlyMigration(DatastoreConstants.getSchemaVersion3()), 3);
    queue.updateSchema(new SchemaOnlyMigration(DatastoreConstants.getSchemaVersion4()), 4);
    queue.updateSchema(new SchemaOnlyMigration(DatastoreConstants.getSchemaVersion5()), 5);
    queue.updateSchema(new SchemaOnlyMigration(DatastoreConstants.getSchemaVersion6()), 6);
    queue.updateSchema(new MigrateDatabase6To100(), 100);
    this.eventBus = new EventBus();

    this.attachmentsDir = this.extensionDataFolder(ATTACHMENTS_EXTENSION_NAME);
    this.attachmentStreamFactory = new AttachmentStreamFactory(this.getKeyProvider());
}