/**************************************************************************
OmegaT - Computer Assisted Translation (CAT) tool
with fuzzy matching, translation memory, keyword search,
glossaries, and translation leveraging into updated projects.
Copyright (C) 2000-2006 Keith Godfrey and Maxym Mykhalchuk
Home page: http://www.omegat.org/
Support center: http://groups.yahoo.com/group/OmegaT/
This file is part of OmegaT.
OmegaT is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OmegaT 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 this program. If not, see <http://www.gnu.org/licenses/>.
**************************************************************************/
package org.omegat.filters2;
import java.io.Serializable;
/**
*
* @author Maxym Mykhalchuk
*/
public class Instance implements Serializable {
private static final long serialVersionUID = -8290853406593590600L;
private String sourceFilenameMask;
public String getSourceFilenameMask() {
return sourceFilenameMask;
}
public void setSourceFilenameMask(String sourceFilenameMask) {
this.sourceFilenameMask = sourceFilenameMask;
}
private String sourceEncoding;
public String getSourceEncodingHuman() {
if (sourceEncoding == null) {
return AbstractFilter.ENCODING_AUTO_HUMAN;
} else {
return sourceEncoding;
}
}
public String getSourceEncoding() {
return sourceEncoding;
}
public void setSourceEncoding(String sourceEncoding) {
if (sourceEncoding == null || sourceEncoding.equals(AbstractFilter.ENCODING_AUTO_HUMAN)) {
this.sourceEncoding = null;
} else {
this.sourceEncoding = sourceEncoding;
}
}
private String targetEncoding;
public String getTargetEncodingHuman() {
if (targetEncoding == null) {
return AbstractFilter.ENCODING_AUTO_HUMAN;
} else {
return targetEncoding;
}
}
public String getTargetEncoding() {
return targetEncoding;
}
public void setTargetEncoding(String targetEncoding) {
if (targetEncoding == null || targetEncoding.equals(AbstractFilter.ENCODING_AUTO_HUMAN)) {
this.targetEncoding = null;
} else {
this.targetEncoding = targetEncoding;
}
}
private String targetFilenamePattern;
public String getTargetFilenamePattern() {
return targetFilenamePattern;
}
public void setTargetFilenamePattern(String targetFilenamePattern) {
this.targetFilenamePattern = targetFilenamePattern;
}
private void init(String sourceFilenameMask, String sourceEncoding, String targetEncoding,
String targetFilenamePattern) {
setSourceFilenameMask(sourceFilenameMask);
setSourceEncoding(sourceEncoding);
setTargetEncoding(targetEncoding);
setTargetFilenamePattern(targetFilenamePattern);
}
/**
* Creates a new instance of FilterInstance.
* <p>
* Value <code>null</code> for source and target encoding means that the
* filter selects encodings automatically.
* <p>
* Output (target) filename pattern cannot be null.
*/
public Instance(String sourceFilenameMask, String sourceEncoding, String targetEncoding,
String targetFilenamePattern) {
init(sourceFilenameMask, sourceEncoding, targetEncoding, targetFilenamePattern);
}
/**
* Creates a new Filter Instance with source file mask and two encodings
* specified, and having a default target filename pattern.
* <p>
* Value <code>null</code> for source and target encoding means that the
* filter selects encodings automatically.
* <p>
* The default output filename pattern is "${filename}", which means that
* the name of the translated file should be the same as the name of the
* input file.
*/
public Instance(String sourceFilenameMask, String sourceEncoding, String targetEncoding) {
init(sourceFilenameMask, sourceEncoding, targetEncoding, AbstractFilter.TARGET_DEFAULT);
}
/**
* Creates a new Filter Instance with source file mask and source encoding
* specified, and having a default target encoding and target filename
* pattern.
* <p>
* Value <code>null</code> (default value) for source encoding means that
* the filter selects encoding of the source file automatically.
* <p>
* Default value for target encoding is <code>null</code>, meaning that the
* filter selects encoding of the target file automatically.
* <p>
* The default output filename pattern is "${filename}", which means that
* the name of the translated file should be the same as the name of the
* input file.
*/
public Instance(String sourceFilenameMask, String sourceEncoding) {
init(sourceFilenameMask, sourceEncoding, null, AbstractFilter.TARGET_DEFAULT);
}
/**
* Creates a new Filter Instance with only source file mask specified, and
* default values for everything else.
* <p>
* Default value for source and target encoding is <code>null</code>,
* meaning that the filter selects encodings automatically.
* <p>
* The default output filename pattern is "${filename}", which means that
* the name of the translated file should be the same as the name of the
* input file.
*/
public Instance(String sourceFilenameMask) {
init(sourceFilenameMask, null, null, AbstractFilter.TARGET_DEFAULT);
}
/**
* Creates a new Filter Instance, uninitialized. Is here to support
* JavaBeans specification, <b>don't use</b> it in filters.
*/
public Instance() {
init("*.*", null, null, AbstractFilter.TARGET_DEFAULT);
}
}