package org.drools.compiler.kie.builder.impl;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.util.Collection;
import org.drools.compiler.commons.jci.readers.ResourceReader;
import org.drools.compiler.compiler.io.memory.MemoryFile;
import org.drools.compiler.compiler.io.memory.MemoryFileSystem;
import org.drools.compiler.kie.builder.impl.KieModuleCache.Header;
import org.drools.compiler.kie.builder.impl.KieModuleCache.KModuleCache;
import org.drools.compiler.kproject.models.KieModuleModelImpl;
import org.kie.api.builder.ReleaseId;
import org.kie.api.builder.model.KieModuleModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.protobuf.ExtensionRegistry;
public class MemoryKieModule extends AbstractKieModule
implements
ResourceReader {
private final MemoryFileSystem mfs;
public MemoryKieModule(ReleaseId releaseId) {
this( releaseId, new KieModuleModelImpl(), new MemoryFileSystem() );
}
public MemoryKieModule(ReleaseId releaseId,
KieModuleModel kieProject,
MemoryFileSystem mfs) {
super( releaseId, kieProject );
this.mfs = mfs;
}
@Override
public boolean isAvailable(String path) {
return mfs.existsFile( path );
}
@Override
public byte[] getBytes(String path) {
return mfs.getBytes( path );
}
@Override
public Collection<String> getFileNames() {
return mfs.getFileNames();
}
public MemoryFileSystem getMemoryFileSystem() {
return this.mfs;
}
@Override
public File getFile() {
throw new UnsupportedOperationException();
}
@Override
public byte[] getBytes() {
return mfs.writeAsBytes();
}
public String toString() {
return "MemoryKieModule[ ReleaseId=" + getReleaseId() + "]";
}
}