⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gomsourceimpl.java

📁 lucene2.2.0版本
💻 JAVA
字号:
/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.lucene.gdata.gom.core;import java.util.LinkedList;import java.util.List;import javax.xml.namespace.QName;import javax.xml.stream.XMLStreamException;import org.apache.lucene.gdata.gom.GOMAttribute;import org.apache.lucene.gdata.gom.GOMAuthor;import org.apache.lucene.gdata.gom.GOMCategory;import org.apache.lucene.gdata.gom.GOMContributor;import org.apache.lucene.gdata.gom.GOMGenerator;import org.apache.lucene.gdata.gom.GOMIcon;import org.apache.lucene.gdata.gom.GOMId;import org.apache.lucene.gdata.gom.GOMLink;import org.apache.lucene.gdata.gom.GOMLogo;import org.apache.lucene.gdata.gom.GOMNamespace;import org.apache.lucene.gdata.gom.GOMRights;import org.apache.lucene.gdata.gom.GOMSource;import org.apache.lucene.gdata.gom.GOMSubtitle;import org.apache.lucene.gdata.gom.GOMTitle;import org.apache.lucene.gdata.gom.GOMUpdated;import org.apache.lucene.gdata.gom.core.utils.AtomParserUtils;import org.apache.lucene.gdata.gom.writer.GOMOutputWriter;/** * @author Simon Willnauer *  */public class GOMSourceImpl extends AbstractGOMElement implements GOMSource {	protected List<GOMAuthor> authors = new LinkedList<GOMAuthor>();	protected List<GOMCategory> categories = new LinkedList<GOMCategory>();	protected List<GOMLink> links = new LinkedList<GOMLink>();	protected List<GOMContributor> contributors = new LinkedList<GOMContributor>();	protected GOMGenerator generator;	protected GOMId id;	protected GOMLogo logo;	protected GOMRights rights;	protected GOMSubtitle subtitle;	protected GOMTitle title;	protected GOMUpdated updated;	protected GOMIcon icon;	GOMSourceImpl() {		this.localName = LOCALNAME;		this.qname = new QName(GOMNamespace.ATOM_NS_URI, this.localName);	}	/**	 * @see org.apache.lucene.gdata.gom.core.AbstractGOMElement#getLocalName()	 */	@Override	public String getLocalName() {		return this.localName;	}	/**	 * @see org.apache.lucene.gdata.gom.GOMSource#addAuthor(org.apache.lucene.gdata.gom.GOMAuthor)	 */	public void addAuthor(GOMAuthor aAuthor) {		if (aAuthor != null)			this.authors.add(aAuthor);	}	/**	 * @see org.apache.lucene.gdata.gom.GOMSource#addCategory(org.apache.lucene.gdata.gom.GOMCategory)	 */	public void addCategory(GOMCategory aCategory) {		if (aCategory != null)			this.categories.add(aCategory);	}	/**	 * @see org.apache.lucene.gdata.gom.GOMSource#addContributor(org.apache.lucene.gdata.gom.GOMContributor)	 */	public void addContributor(GOMContributor aContributor) {		if (aContributor != null)			this.contributors.add(aContributor);	}	/**	 * @see org.apache.lucene.gdata.gom.GOMSource#getAuthors()	 * 	 */	public List<GOMAuthor> getAuthors() {		return this.authors;	}	/**	 * @see org.apache.lucene.gdata.gom.GOMSource#getCategories()	 * 	 */	public List<GOMCategory> getCategories() {		return this.categories;	}	/**	 * @see org.apache.lucene.gdata.gom.GOMSource#getContributor()	 */	public List<GOMContributor> getContributor() {		return this.contributors;	}	/**	 * @see org.apache.lucene.gdata.gom.GOMSource#getGenerator()	 * 	 */	public GOMGenerator getGenerator() {		return this.generator;	}	/**	 * @see org.apache.lucene.gdata.gom.GOMSource#getId()	 * 	 */	public GOMId getId() {		return this.id;	}	/**	 * @see org.apache.lucene.gdata.gom.GOMSource#setGenerator(org.apache.lucene.gdata.gom.GOMGenerator)	 * 	 */	public void setGenerator(GOMGenerator aGenerator) {		this.generator = aGenerator;	}	/**	 * @see org.apache.lucene.gdata.gom.GOMSource#setIcon(org.apache.lucene.gdata.gom.GOMIcon)	 * 	 */	public void setIcon(GOMIcon aIcon) {		this.icon = aIcon;	}	/**	 * @see org.apache.lucene.gdata.gom.GOMSource#setId(org.apache.lucene.gdata.gom.GOMId)	 * 	 */	public void setId(GOMId aId) {		this.id = aId;	}	/**	 * @return the logo	 * 	 */	public GOMLogo getLogo() {		return this.logo;	}	/**	 * @param aLogo	 *            the logo to set	 * 	 */	public void setLogo(GOMLogo aLogo) {		this.logo = aLogo;	}	/**	 * @return the rights	 * 	 */	public GOMRights getRights() {		return this.rights;	}	/**	 * @param aRights	 *            the rights to set	 * 	 */	public void setRights(GOMRights aRights) {		rights = aRights;	}	/**	 * @return the subtitle	 * 	 */	public GOMSubtitle getSubtitle() {		return this.subtitle;	}	/**	 * @param aSubtitle	 *            the subtitle to set	 * 	 */	public void setSubtitle(GOMSubtitle aSubtitle) {		this.subtitle = aSubtitle;	}	/**	 * @return the title	 * 	 */	public GOMTitle getTitle() {		return this.title;	}	/**	 * @param aTitle	 *            the title to set	 * 	 */	public void setTitle(GOMTitle aTitle) {		this.title = aTitle;	}	/**	 * @return the updated	 * 	 */	public GOMUpdated getUpdated() {		return this.updated;	}	/**	 * @param aUpdated	 *            the updated to set	 * 	 */	public void setUpdated(GOMUpdated aUpdated) {		this.updated = aUpdated;	}	/**	 * @return the icon	 * 	 */	public GOMIcon getIcon() {		return this.icon;	}	/**	 * @return the links	 * 	 */	public List<GOMLink> getLinks() {		return this.links;	}	/**	 * @see org.apache.lucene.gdata.gom.GOMSource#addLink(org.apache.lucene.gdata.gom.GOMLink)	 */	public void addLink(GOMLink aLink) {		if (aLink == null)			return;		this.links.add(aLink);	}	/**	 * @see org.apache.lucene.gdata.gom.core.AtomParser#processElementValue(java.lang.String)	 */	public void processElementValue(String aValue) {		throw new GDataParseException(String.format(				AtomParser.UNEXPECTED_ELEMENT_VALUE, this.localName));	}	/**	 * @see org.apache.lucene.gdata.gom.core.AtomParser#processEndElement()	 */	public void processEndElement() {		/*		 * atom:feed elements MUST contain exactly one atom:id element.		 */		if (this.id == null)			throw new GDataParseException(String.format(					MISSING_ELEMENT_CHILD, this.localName, GOMId.LOCALNAME));		/*		 * atom:feed elements MUST contain exactly one atom:title element.		 */		if (this.title == null)			throw new GDataParseException(String					.format(MISSING_ELEMENT_CHILD, this.localName,							GOMTitle.LOCALNAME));		/*		 * atom:feed elements MUST contain exactly one atom:updated element.		 */		if (this.updated == null)			throw new GDataParseException(String.format(					MISSING_ELEMENT_CHILD, this.localName,					GOMUpdated.LOCALNAME));		/*		 * atom:feed elements MUST contain one or more atom:author elements,		 * unless all of the		 */		if (this.authors.size() < 1)			throw new GDataParseException(String.format(					MISSING_ELEMENT_CHILD, this.localName,					GOMAuthor.LOCALNAME));		/*		 * atom:feed elements MUST NOT contain more than one atom:link element		 * with a rel attribute value of "alternate" that has the same		 * combination of type and hreflang attribute values.		 */		List<GOMLink> alternateLinks = new LinkedList<GOMLink>();		for (GOMLink link : this.links) {			/*			 * atom:link elements MAY have a "rel" attribute that indicates the			 * link relation type. If the "rel" attribute is not present, the			 * link element MUST be interpreted as if the link relation type is			 * "alternate".			 */			if (link.getRel() == null					|| link.getRel().equalsIgnoreCase("alternate"))				alternateLinks.add(link);		}		/*		 * atom:feed elements MUST NOT contain more than one atom:link element		 * with a rel attribute value of "alternate" that has the same		 * combination of type and hreflang attribute values.		 */		if (alternateLinks.size() > 1) {			for (GOMLink link : alternateLinks) {				for (GOMLink link2 : alternateLinks) {					if (link != link2)						if (AtomParserUtils.compareAlternateLinks(link, link2))							throw new GDataParseException(									String											.format(DUPLICATE_ELEMENT,													"link with rel=\"alternate\" and same href and type attributes"));				}			}		}	}	/**	 * @see org.apache.lucene.gdata.gom.core.AtomParser#getChildParser(javax.xml.namespace.QName)	 */	public AtomParser getChildParser(QName aName) {		if (aName.getNamespaceURI().equals(GOMNamespace.ATOM_NS_URI)) {			if (aName.getLocalPart().equals(GOMId.LOCALNAME)) {				// atom:feed / atom:source elements MUST contain exactly one				// atom:id element.				if (this.id != null)					throw new GDataParseException(String.format(							AtomParser.DUPLICATE_ELEMENT, GOMId.LOCALNAME));				this.id = new GOMIdImpl();				return this.id;			}			if (aName.getLocalPart().equals(GOMTitle.LOCALNAME)) {				// atom:feed / atom:source elements MUST contain exactly one				// atom:title				// element.				if (this.title != null)					throw new GDataParseException(String.format(							AtomParser.DUPLICATE_ELEMENT, GOMTitle.LOCALNAME));				this.title = new GOMTitleImpl();				return this.title;			}			if (aName.getLocalPart().equals(GOMAuthor.LOCALNAME)) {				GOMAuthor author = new GOMAuthorImpl();				this.authors.add(author);				return author;			}			if (aName.getLocalPart().equals(GOMCategory.LOCALNAME)) {				GOMCategory category = new GOMCategoryImpl();				this.categories.add(category);				return category;			}			if (aName.getLocalPart().equals(GOMContributor.LOCALNAME)) {				GOMContributorImpl impl = new GOMContributorImpl();				this.contributors.add(impl);				return impl;			}			if (aName.getLocalPart().equals(GOMLink.LOCALNAME)) {				GOMLinkImpl impl = new GOMLinkImpl();				this.links.add(impl);				return impl;			}			if (aName.getLocalPart().equals(GOMSubtitle.LOCALNAME)) {				GOMSubtitleImpl impl = new GOMSubtitleImpl();				/*				 * atom:feed elements MUST NOT contain more than one				 * atom:subtitle element.				 */				if (this.subtitle != null)					throw new GDataParseException(String.format(							AtomParser.DUPLICATE_ELEMENT,							GOMSubtitle.LOCALNAME));				this.subtitle = impl;				return this.subtitle;			}			if (aName.getLocalPart().equals(GOMUpdated.LOCALNAME)) {				if (this.updated != null)					throw new GDataParseException(String.format(							AtomParser.DUPLICATE_ELEMENT,							GOMUpdated.LOCALNAME));				GOMUpdated updatedImpl = new GOMUpdatedImpl();				this.updated = updatedImpl;				return this.updated;			}			if (aName.getLocalPart().equals(GOMLogo.LOCALNAME)) {				if (this.logo != null)					throw new GDataParseException(String.format(							AtomParser.DUPLICATE_ELEMENT, GOMLogo.LOCALNAME));				this.logo = new GOMLogoImpl();				return this.logo;			}			if (aName.getLocalPart().equals(GOMIcon.LOCALNAME)) {				if (this.icon != null)					throw new GDataParseException(String.format(							AtomParser.DUPLICATE_ELEMENT, GOMIcon.LOCALNAME));				this.icon = new GOMIconImpl();				return this.icon;			}			if (aName.getLocalPart().equals(GOMGenerator.LOCALNAME)) {				if (this.generator != null)					throw new GDataParseException(String.format(							AtomParser.DUPLICATE_ELEMENT,							GOMGenerator.LOCALNAME));				this.generator = new GOMGeneratorImpl();				return this.generator;			}			if (aName.getLocalPart().equals(GOMRights.LOCALNAME)) {				if (this.rights != null)					throw new GDataParseException(String							.format(AtomParser.DUPLICATE_ELEMENT,									GOMRights.LOCALNAME));				this.rights = new GOMRightsImpl();				return this.rights;			}		}		throw new GDataParseException(String.format(				AtomParser.URECOGNIZED_ELEMENT_CHILD, this.localName, aName						.getLocalPart()));	}	/**	 * @see org.apache.lucene.gdata.gom.GOMElement#writeAtomOutput(org.apache.lucene.gdata.gom.writer.GOMStaxWriter)	 */	public void writeAtomOutput(GOMOutputWriter aStreamWriter)			throws XMLStreamException {		aStreamWriter.writeStartElement(this.localName,				this.extensionAttributes);		List<GOMAttribute> xmlNamespaceAttributes = getXmlNamespaceAttributes();		for (GOMAttribute attribute : xmlNamespaceAttributes) {			aStreamWriter.writeAttribute(attribute);		}		writeInnerAtomOutput(aStreamWriter);		aStreamWriter.writeEndElement();	}	/**	 * @param aStreamWriter	 * @throws XMLStreamException	 */	protected void writeInnerAtomOutput(GOMOutputWriter aStreamWriter)			throws XMLStreamException {		if (this.id != null)			this.id.writeAtomOutput(aStreamWriter);		if (this.title != null)			this.title.writeAtomOutput(aStreamWriter);		if (this.subtitle != null)			this.subtitle.writeAtomOutput(aStreamWriter);		for (GOMAuthor authors : this.authors) {			authors.writeAtomOutput(aStreamWriter);		}		for (GOMCategory category : this.categories) {			category.writeAtomOutput(aStreamWriter);		}		for (GOMContributor contributor : this.contributors) {			contributor.writeAtomOutput(aStreamWriter);		}		for (GOMLink link : this.links) {			link.writeAtomOutput(aStreamWriter);		}		if (this.rights != null)			this.rights.writeAtomOutput(aStreamWriter);		if (this.updated != null)			this.updated.writeAtomOutput(aStreamWriter);		if (this.logo != null)			this.logo.writeAtomOutput(aStreamWriter);		if (this.icon != null)			this.icon.writeAtomOutput(aStreamWriter);		if (this.generator != null)			this.generator.writeAtomOutput(aStreamWriter);	}	/**	 * @see org.apache.lucene.gdata.gom.GOMElement#writeRssOutput(org.apache.lucene.gdata.gom.writer.GOMStaxWriter)	 */	public void writeRssOutput(GOMOutputWriter aStreamWriter)			throws XMLStreamException {		// no rss output	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -