package com.ctc.wstx.ent;
import java.io.IOException;
import java.io.Writer;
import java.net.URL;
import javax.xml.stream.Location;
import javax.xml.stream.XMLResolver;
import com.ctc.wstx.api.ReaderConfig;
import com.ctc.wstx.io.WstxInputSource;
public class UnparsedExtEntity
extends ExtEntity
{
final String mNotationId;
public UnparsedExtEntity(Location loc, String name, URL ctxt,
String pubId, String sysId,
String notationId)
{
super(loc, name, ctxt, pubId, sysId);
mNotationId = notationId;
}
@Override
public String getNotationName() {
return mNotationId;
}
@Override
public void writeEnc(Writer w) throws IOException
{
w.write("<!ENTITY ");
w.write(mName);
String pubId = getPublicId();
if (pubId != null) {
w.write("PUBLIC \"");
w.write(pubId);
w.write("\" ");
} else {
w.write("SYSTEM ");
}
w.write('"');
w.write(getSystemId());
w.write("\" NDATA ");
w.write(mNotationId);
w.write('>');
}
@Override
public boolean isParsed() { return false; }
@Override
public WstxInputSource expand(WstxInputSource parent,
XMLResolver res, ReaderConfig cfg, int xmlVersion)
{
throw new IllegalStateException("Internal error: createInputSource() called for unparsed (external) entity.");
}
}