blob: 307dcef28d7457ea7e4e37692414419484860d81 [file] [log] [blame]
package org.apache.ode.bpel.obj.migrate;
import java.io.InputStream;
import org.apache.ode.bpel.o.Serializer;
import org.apache.ode.bpel.obj.OProcess;
import org.apache.ode.bpel.obj.serde.OmDeserializer;
import org.apache.ode.bpel.obj.serde.SerializaionRtException;
/**
* Adaptor for legacy Omodel serializer. Used to deserialize and migrate
* old format compiled bpels.
* @see Serializer
*/
public class LegacySerializerAdapter implements OmDeserializer {
private Serializer serializer;
public LegacySerializerAdapter(InputStream in) {
serializer = new Serializer();
serializer._inputStream = in;
}
/**
* Read the old OModel and migrate it to new omodel.
*/
@Override
public OProcess deserialize() throws SerializaionRtException {
org.apache.ode.bpel.o.OProcess old;
try {
old = serializer.readOProcess();
} catch (Exception e) {
throw new SerializaionRtException(
"Error when deserializing old OModle classes");
}
//migrate to new OModel
OmOld2new mig = new OmOld2new();
ObjectTraverser mtraverse = new ObjectTraverser();
mtraverse.accept(mig);
OProcess migrated = (OProcess) mtraverse.traverseObject(old);
return migrated;
}
}