
org.monte.media.AbstractCodec Maven / Gradle / Ivy
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.monte.media;
import java.util.ArrayList;
/**
* {@code AbstractCodec}.
*
* @author Werner Randelshofer
* @version 1.0 2011-03-12 Created.
*/
public abstract class AbstractCodec implements Codec {
protected Format[] inputFormats;
protected Format[] outputFormats;
protected Format inputFormat;
protected Format outputFormat;
protected String name="unnamed codec";
public AbstractCodec(Format[] supportedInputFormats, Format[] supportedOutputFormats) {
this.inputFormats = supportedInputFormats;
this.outputFormats = supportedOutputFormats;
}
public AbstractCodec(Format[] supportedInputOutputFormats) {
this.inputFormats = supportedInputOutputFormats;
this.outputFormats = supportedInputOutputFormats;
}
@Override
public Format[] getInputFormats() {
return inputFormats.clone();
}
@Override
public Format[] getOutputFormats(Format input) {
ArrayListof=new ArrayList(outputFormats.length);
for (Format f:outputFormats) {
of.add(input==null?f:f.append(input));
}
return of.toArray(new Format[of.size()]);
}
@Override
public Format setInputFormat(Format f) {
if (f!=null)
for (Format sf : getInputFormats()) {
if (sf.matches(f)) {
this.inputFormat = sf.append(f);
return inputFormat;
}
}
this.inputFormat=null;
return null;
}
@Override
public Format setOutputFormat(Format f) {
for (Format sf : getOutputFormats(f)) {
if (sf.matches(f)) {
this.outputFormat = f;
return sf;
}
}
this.outputFormat=null;
return null;
}
@Override
public Format getInputFormat() {
return inputFormat;
}
@Override
public Format getOutputFormat() {
return outputFormat;
}
@Override
public String getName() {
return name;
}
/** Empty implementation of the reset method. Don't call super. */
@Override
public void reset() {
// empty
}
@Override
public String toString() {
String className=getClass().getName();
int p=className.lastIndexOf('.');
return className.substring(p+1)+"{" + "inputFormat=" + inputFormat + ", outputFormat=" + outputFormat+'}';
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy