001// Locator2Impl.java - extended LocatorImpl 002// http://www.saxproject.org 003// Public Domain: no warranty. 004// $Id: Locator2Impl.java,v 1.2 2006/12/10 20:25:41 gnu_andrew Exp $ 005 006package org.xml.sax.ext; 007 008import org.xml.sax.Locator; 009import org.xml.sax.helpers.LocatorImpl; 010 011 012/** 013 * SAX2 extension helper for holding additional Entity information, 014 * implementing the {@link Locator2} interface. 015 * 016 * <blockquote> 017 * <em>This module, both source code and documentation, is in the 018 * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> 019 * </blockquote> 020 * 021 * <p> This is not part of core-only SAX2 distributions.</p> 022 * 023 * @since SAX 2.0.2 024 * @author David Brownell 025 * @version TBS 026 */ 027public class Locator2Impl extends LocatorImpl implements Locator2 028{ 029 private String encoding; 030 private String version; 031 032 033 /** 034 * Construct a new, empty Locator2Impl object. 035 * This will not normally be useful, since the main purpose 036 * of this class is to make a snapshot of an existing Locator. 037 */ 038 public Locator2Impl () { } 039 040 /** 041 * Copy an existing Locator or Locator2 object. 042 * If the object implements Locator2, values of the 043 * <em>encoding</em> and <em>version</em>strings are copied, 044 * otherwise they set to <em>null</em>. 045 * 046 * @param locator The existing Locator object. 047 */ 048 public Locator2Impl (Locator locator) 049 { 050 super (locator); 051 if (locator instanceof Locator2) { 052 Locator2 l2 = (Locator2) locator; 053 054 version = l2.getXMLVersion (); 055 encoding = l2.getEncoding (); 056 } 057 } 058 059 //////////////////////////////////////////////////////////////////// 060 // Locator2 method implementations 061 //////////////////////////////////////////////////////////////////// 062 063 /** 064 * Returns the current value of the version property. 065 * 066 * @see #setXMLVersion 067 */ 068 public String getXMLVersion () 069 { return version; } 070 071 /** 072 * Returns the current value of the encoding property. 073 * 074 * @see #setEncoding 075 */ 076 public String getEncoding () 077 { return encoding; } 078 079 080 //////////////////////////////////////////////////////////////////// 081 // Setters 082 //////////////////////////////////////////////////////////////////// 083 084 /** 085 * Assigns the current value of the version property. 086 * 087 * @param version the new "version" value 088 * @see #getXMLVersion 089 */ 090 public void setXMLVersion (String version) 091 { this.version = version; } 092 093 /** 094 * Assigns the current value of the encoding property. 095 * 096 * @param encoding the new "encoding" value 097 * @see #getEncoding 098 */ 099 public void setEncoding (String encoding) 100 { this.encoding = encoding; } 101}