package com.ctc.wstx.evt;

import java.util.ArrayList;
import java.util.List;

import javax.xml.stream.Location;
import javax.xml.stream.events.EntityDeclaration;
import javax.xml.stream.events.NotationDeclaration;

import org.codehaus.stax2.ri.evt.DTDEventImpl;

import com.ctc.wstx.dtd.DTDSubset;

Event that contains all StAX accessible information read from internal and external DTD subsets.
/** * Event that contains all StAX accessible information read from internal * and external DTD subsets. */
public class WDTD extends DTDEventImpl {
Internal DTD Object that contains combined information from internal and external subsets.
/** * Internal DTD Object that contains combined information from internal * and external subsets. */
final DTDSubset mSubset; /* ///////////////////////////////////////////////////// // Lazily constructed objects ///////////////////////////////////////////////////// */ List<EntityDeclaration> mEntities = null; List<NotationDeclaration> mNotations = null; /* ///////////////////////////////////////////////////// // Constuctors ///////////////////////////////////////////////////// */ public WDTD(Location loc, String rootName, String sysId, String pubId, String intSubset, DTDSubset dtdSubset) { super(loc, rootName, sysId, pubId, intSubset, dtdSubset); mSubset = dtdSubset; } public WDTD(Location loc, String rootName, String sysId, String pubId, String intSubset) { this(loc, rootName, sysId, pubId, intSubset, null); }
Constructor used when only partial information is available...
/** * Constructor used when only partial information is available... */
public WDTD(Location loc, String rootName, String intSubset) { this(loc, rootName, null, null, intSubset, null); } public WDTD(Location loc, String fullText) { super(loc, fullText); mSubset = null; } /* ///////////////////////////////////////////////////// // Accessors ///////////////////////////////////////////////////// */ @Override public List<EntityDeclaration> getEntities() { if (mEntities == null && (mSubset != null)) { /* Better make a copy, so that caller can not modify list * DTD has, which may be shared (since DTD subset instances * are cached and reused) */ mEntities = new ArrayList<EntityDeclaration>(mSubset.getGeneralEntityList()); } return mEntities; } @Override public List<NotationDeclaration> getNotations() { if (mNotations == null && (mSubset != null)) { mNotations = new ArrayList<NotationDeclaration>(mSubset.getNotationList()); } return mNotations; } }