001 /** 002 * 003 * Licensed to the Apache Software Foundation (ASF) under one or more 004 * contributor license agreements. See the NOTICE file distributed with 005 * this work for additional information regarding copyright ownership. 006 * The ASF licenses this file to You under the Apache License, Version 2.0 007 * (the "License"); you may not use this file except in compliance with 008 * the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 package org.apache.camel.component.file.strategy; 019 020 import java.io.File; 021 022 /** 023 * @version $Revision: 1.1 $ 024 */ 025 public class DefaultFileRenamer implements FileRenamer { 026 private String namePrefix; 027 private String namePostfix; 028 029 public DefaultFileRenamer() { 030 } 031 032 public DefaultFileRenamer(String namePrefix, String namePostfix) { 033 this.namePrefix = namePrefix; 034 this.namePostfix = namePostfix; 035 } 036 037 public File renameFile(File file) { 038 File parent = file.getParentFile(); 039 String name = renameFileName(file); 040 return new File(parent, name); 041 } 042 043 public String getNamePostfix() { 044 return namePostfix; 045 } 046 047 /** 048 * Sets the name postfix appended to moved files. For example 049 * to rename all the files from * to *.done set this value to ".done" 050 */ 051 public void setNamePostfix(String namePostfix) { 052 this.namePostfix = namePostfix; 053 } 054 055 public String getNamePrefix() { 056 return namePrefix; 057 } 058 059 /** 060 * Sets the name prefix appended to moved files. For example 061 * to move processed files into a hidden directory called ".camel" 062 * set this value to ".camel/" 063 */ 064 public void setNamePrefix(String namePrefix) { 065 this.namePrefix = namePrefix; 066 } 067 068 069 protected String renameFileName(File file) { 070 StringBuffer buffer = new StringBuffer(); 071 if (namePrefix != null) { 072 buffer.append(namePrefix); 073 } 074 buffer.append(file.getName()); 075 if (namePostfix != null) { 076 buffer.append(namePostfix); 077 } 078 return buffer.toString(); 079 } 080 }