/* |
|
* Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. |
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
|
* |
|
* This code is free software; you can redistribute it and/or modify it |
|
* under the terms of the GNU General Public License version 2 only, as |
|
* published by the Free Software Foundation. Oracle designates this |
|
* particular file as subject to the "Classpath" exception as provided |
|
* by Oracle in the LICENSE file that accompanied this code. |
|
* |
|
* This code is distributed in the hope that it will be useful, but WITHOUT |
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
* version 2 for more details (a copy is included in the LICENSE file that |
|
* accompanied this code). |
|
* |
|
* You should have received a copy of the GNU General Public License version |
|
* 2 along with this work; if not, write to the Free Software Foundation, |
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
|
* |
|
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
|
* or visit www.oracle.com if you need additional information or have any |
|
* questions. |
|
*/ |
|
package com.sun.xml.internal.stream.events; |
|
import javax.xml.stream.events.EntityDeclaration; |
|
import javax.xml.stream.events.XMLEvent; |
|
import com.sun.org.apache.xerces.internal.xni.XMLResourceIdentifier; |
|
/** |
|
* |
|
* This class store all the information for a particular EntityDeclaration. EntityDeclaration interface |
|
* has various get* functiosn to retirve information about a particular EntityDeclaration. |
|
* |
|
* @author Neeraj Bajaj, Sun Microsystems. |
|
*/ |
|
public class EntityDeclarationImpl extends DummyEvent implements EntityDeclaration { |
|
private XMLResourceIdentifier fXMLResourceIdentifier ; |
|
private String fEntityName; |
|
private String fReplacementText; |
|
private String fNotationName; |
|
/** Creates a new instance of EntityDeclarationImpl */ |
|
public EntityDeclarationImpl() { |
|
init(); |
|
} |
|
public EntityDeclarationImpl(String entityName , String replacementText){ |
|
this(entityName,replacementText,null); |
|
} |
|
public EntityDeclarationImpl(String entityName, String replacementText, XMLResourceIdentifier resourceIdentifier){ |
|
init(); |
|
fEntityName = entityName; |
|
fReplacementText = replacementText; |
|
fXMLResourceIdentifier = resourceIdentifier; |
|
} |
|
public void setEntityName(String entityName){ |
|
fEntityName = entityName; |
|
} |
|
public String getEntityName(){ |
|
return fEntityName; |
|
} |
|
public void setEntityReplacementText(String replacementText){ |
|
fReplacementText = replacementText; |
|
} |
|
public void setXMLResourceIdentifier(XMLResourceIdentifier resourceIdentifier){ |
|
fXMLResourceIdentifier = resourceIdentifier ; |
|
} |
|
public XMLResourceIdentifier getXMLResourceIdentifier(){ |
|
return fXMLResourceIdentifier; |
|
} |
|
public String getSystemId(){ |
|
if(fXMLResourceIdentifier != null) |
|
return fXMLResourceIdentifier.getLiteralSystemId(); |
|
return null; |
|
} |
|
public String getPublicId(){ |
|
if(fXMLResourceIdentifier != null) |
|
return fXMLResourceIdentifier.getPublicId(); |
|
return null; |
|
} |
|
public String getBaseURI() { |
|
if(fXMLResourceIdentifier != null) |
|
return fXMLResourceIdentifier.getBaseSystemId(); |
|
return null; |
|
} |
|
public String getName(){ |
|
return fEntityName; |
|
} |
|
public String getNotationName() { |
|
return fNotationName; |
|
} |
|
public void setNotationName(String notationName){ |
|
fNotationName = notationName; |
|
} |
|
public String getReplacementText() { |
|
return fReplacementText; |
|
} |
|
protected void init(){ |
|
setEventType(XMLEvent.ENTITY_DECLARATION); |
|
} |
|
protected void writeAsEncodedUnicodeEx(java.io.Writer writer) |
|
throws java.io.IOException |
|
{ |
|
writer.write("<!ENTITY "); |
|
writer.write(fEntityName); |
|
if (fReplacementText != null) { |
|
//internal entity |
|
//escape quotes, lt and amps |
|
writer.write(" \""); |
|
charEncode(writer, fReplacementText); |
|
} else { |
|
//external entity |
|
String pubId = getPublicId(); |
|
if (pubId != null) { |
|
writer.write(" PUBLIC \""); |
|
writer.write(pubId); |
|
} else { |
|
writer.write(" SYSTEM \""); |
|
writer.write(getSystemId()); |
|
} |
|
} |
|
writer.write("\""); |
|
if (fNotationName != null) { |
|
writer.write(" NDATA "); |
|
writer.write(fNotationName); |
|
} |
|
writer.write(">"); |
|
} |
|
} |