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

📄 subject.java

📁 android开发入门与实践源代码
💻 JAVA
字号:
package com.google.gdata.data.douban;import java.io.IOException;import java.util.LinkedList;import java.util.List;import org.xml.sax.Attributes;import com.google.gdata.data.BaseEntry;import com.google.gdata.data.ExtensionDescription;import com.google.gdata.data.ExtensionPoint;import com.google.gdata.data.ExtensionProfile;import com.google.gdata.data.Link;import com.google.gdata.data.Person;import com.google.gdata.data.TextConstruct;import com.google.gdata.data.extensions.Rating;import com.google.gdata.util.ParseException;import com.google.gdata.util.XmlParser;import com.google.gdata.util.XmlParser.ElementHandler;import com.google.gdata.util.common.xml.XmlWriter;/** * User entry specific for a douban user. Contains setters and getters for all * fields specific to user data. */@ExtensionDescription.Default(		nsAlias = "db", 		nsUri = "http://www.douban.com/xmlns/", 		localName = "subject")public class Subject extends BaseEntry<Subject> {		public Subject() {		super();	}	public Subject(BaseEntry sourceEntry) {		super(sourceEntry);	}	@Override	public void declareExtensions(ExtensionProfile extProfile) {		super.declareExtensions(extProfile);		ExtensionDescription desc = Tag.getDefaultDescription();		desc.setRepeatable(true);		extProfile.declare(Subject.class, desc);		extProfile.declare(Subject.class, Attribute.class);		extProfile.declare(Subject.class, Rating				.getDefaultDescription(false));				extProfile.declareArbitraryXmlExtension(Subject.class);	}	protected List<Attribute> attributes;	public List<Attribute> getAttributes() {		// different from the implement in SubjectEntry		return attributes;	}	public List<Tag> getTags() {		return getRepeatingExtension(Tag.class);	}	/** Gets the gd:rating tag. */	public Rating getRating() {		return getExtension(Rating.class);	}	/** Sets the gd:rating tag. */	public void setRating(Rating rating) {		if (rating == null) {			removeExtension(Rating.class);		} else {			setExtension(rating);		}	}	public ElementHandler getHandler(ExtensionProfile extProfile,			String namespace, String localName, Attributes attrs) {		try {			return new Handler(extProfile);		} catch (ParseException e) {			e.printStackTrace();		} catch (IOException e) {			e.printStackTrace();		}		return null;	}	private class Handler extends ExtensionPoint.ExtensionHandler {		public Handler(ExtensionProfile extProfile) throws ParseException,				IOException {			super(extProfile, Subject.class);		}		public ElementHandler getChildHandler(String namespace,				String localName, Attributes attrs) throws ParseException,				IOException {			if (localName.equals("id")) {				return new IdHandler();			} else if (localName.equals("title")) {				TextConstruct.ChildHandlerInfo chi = TextConstruct						.getChildHandler(attrs);				if (state.title != null) {					throw new ParseException("Duplicate title.");				}				state.title = chi.textConstruct;				return chi.handler;			} else if (localName.equals("link")) {				Link link = new Link();				state.links.add(link);				return link.new AtomHandler(extProfile);			} else if (localName.equals("author")) {				Person author = new Person();				state.authors.add(author);				return author.new AtomHandler(extProfile);			} else if (localName.equals("attribute")) {				Attribute attribute = new Attribute();				for (int i = 0; i < attrs.getLength(); ++i) {					if (attrs.getLocalName(i) == "name")						attribute.setName(attrs.getValue(i));					else if (attrs.getLocalName(i) == "index")						attribute.setIndex(attrs.getValue(i));					else if (attrs.getLocalName(i) == "lang")						attribute.setLang(attrs.getValue(i));				}				if (attributes == null) {					attributes = new LinkedList<Attribute>();				}				attributes.add(attribute);				return attribute.new AtomHandler(extProfile);			} else {				return super.getChildHandler(namespace, localName, attrs);			}		}		class IdHandler extends XmlParser.ElementHandler {			public void processEndElement() throws ParseException {				if (state.id != null) {					throw new ParseException("Duplicate entry ID.");				}				if (value == null) {					throw new ParseException("ID must have a value.");				}				state.id = value;			}		}	}	public void generate(XmlWriter w, ExtensionProfile extProfile)	throws IOException { generateStartElement(w, Namespaces.doubanNs, "subject", null, null);    if (state.id != null) {    	  w.simpleElement(null, "id", null, state.id);    }    // Invoke ExtensionPoint.    generateExtensions(w, extProfile);    w.endElement(Namespaces.doubanNs, "subject");}}

⌨️ 快捷键说明

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