mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-05-31 00:06:03 +00:00
100 lines
2.5 KiB
Java
100 lines
2.5 KiB
Java
/*
|
|
* 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) {
|
|
ArrayList<Format>of=new ArrayList<Format>(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+'}';
|
|
}
|
|
|
|
|
|
}
|