package com.google.gdata.data.douban; import com.google.gdata.data.AttributeGenerator; import com.google.gdata.data.AttributeHelper; import com.google.gdata.data.ExtensionDescription; import com.google.gdata.data.ExtensionProfile; import com.google.gdata.util.ParseException; import com.google.gdata.util.XmlParser; @ExtensionDescription.Default( nsAlias = Namespaces.doubanAlias, nsUri = Namespaces.doubanNamespace, localName = "attribute", isRepeatable = true) public class Attribute extends AbstractElementWithContent { protected String name; public String getName() { return name; } public void setName(String v) { name = v; } protected String index; public String getIndex() { return index; } public void setIndex(String v) { index = v; } protected String lang; public String getLang() { return lang; } public void setLang(String v) { lang = v; } private String content; /** Gets the content string. */ public String getContent() { return content; } /** Sets the content string. */ public void setContent(String content) { this.content = content; } /** * Returns the suggested extension description with configurable * repeatabilty. */ public static ExtensionDescription getDefaultDescription(boolean repeatable) { ExtensionDescription desc = ExtensionDescription .getDefaultDescription(Attribute.class); desc.setRepeatable(repeatable); return desc; } /** Returns the suggested extension description and is repeatable. */ public static ExtensionDescription getDefaultDescription() { return getDefaultDescription(true); } @Override protected void putAttributes(AttributeGenerator generator) { generator.setContent(content); generator.put("name", name); generator.put("index", index); generator.put("lang", lang); } @Override protected void consumeAttributes(AttributeHelper helper) throws ParseException { name = helper.consume("name", true); index = helper.consume("index", false); lang = helper.consume("lang", false); content = helper.consumeContent(false); } public class AtomHandler extends XmlParser.ElementHandler { public AtomHandler(ExtensionProfile extProfile) { } /** * Processes this element; overrides inherited method. */ @Override public void processEndElement() throws ParseException { content = value; } } }