Coverage Report - yarfraw.core.datamodel.Generator
 
Classes in this File Line Coverage Branch Coverage Complexity
Generator
83% 
100% 
0
 
 1  
 package yarfraw.core.datamodel;
 2  
 
 3  
 import java.util.HashMap;
 4  
 import java.util.Locale;
 5  
 import java.util.Map;
 6  
 
 7  
 import javax.xml.namespace.QName;
 8  
 
 9  
 import yarfraw.utils.ValidationUtils;
 10  
 
 11  
 /**
 12  
  * <li>Rss 1.0 - Not supported, this is ignored.</li>
 13  
  * <li>Rss 2.0 - &lt;generator> A string indicating the program used to generate the channel.  
 14  
  * </li>
 15  
  * <li>Atom 1.0 - &lt;generator> 
 16  
  * The "atom:generator" element's content identifies the agent used to generate a feed, for debugging and other purposes.
 17  
  * </li>
 18  
  * @author jliang
 19  
  *
 20  
  */
 21  99
 public class Generator extends AbstractBaseObject{
 22  
   private static final long serialVersionUID = 20070927L;
 23  
   private String _value;
 24  
   private String _uri;
 25  
   private String _version;
 26  
   
 27  168
   public Generator(String generatorValue){
 28  168
     _value = generatorValue;
 29  168
   }
 30  
   /**
 31  
    * <li>Rss 1.0 - Not supported.</li>
 32  
    * <li>Rss 2.0 - the text content of the &lt;generator>
 33  
    * </li>
 34  
    * <li>Atom 1.0 - 
 35  
    * The content of this element, when present, MUST be a string that is a 
 36  
    * human-readable name for the generating agent. The escaped versions of 
 37  
    * characters such as "&" and ">" represent those characters, not markup.
 38  
    * </li>
 39  
    * @return
 40  
    */
 41  
   public String getValue() {
 42  36
     return _value;
 43  
   }
 44  
 
 45  
   /**
 46  
    * <li>Rss 1.0 - Not supported.</li>
 47  
    * <li>Rss 2.0 - the text content of the &lt;generator>
 48  
    * </li>
 49  
    * <li>Atom 1.0 - 
 50  
    * The content of this element, when present, MUST be a string that is a 
 51  
    * human-readable name for the generating agent. The escaped versions of 
 52  
    * characters such as "&" and ">" represent those characters, not markup.
 53  
    * </li>
 54  
    * @param value
 55  
    */
 56  
   public Generator setValue(String value) {
 57  0
     _value = value;
 58  0
     return this;
 59  
   }
 60  
 
 61  
 
 62  
   /**
 63  
    * <li>Rss 1.0 - Not supported.</li>
 64  
    * <li>Rss 2.0 -  - Not supported.
 65  
    * </li>
 66  
    * <li>Atom 1.0 - 
 67  
    * The atom:generator element MAY have a "uri" attribute whose value MUST be 
 68  
    * an IRI reference [RFC3987]. When dereferenced, the resulting URI 
 69  
    * (mapped from an IRI, if necessary) SHOULD produce a representation that is relevant to that agent.
 70  
    * </li>
 71  
    * @return
 72  
    */
 73  
   public String getUri() {
 74  12
     return _uri;
 75  
   }
 76  
 
 77  
   /**
 78  
    * <li>Rss 1.0 - Not supported.</li>
 79  
    * <li>Rss 2.0 -  - Not supported.
 80  
    * </li>
 81  
    * <li>Atom 1.0 - 
 82  
    * The atom:generator element MAY have a "uri" attribute whose value MUST be 
 83  
    * an IRI reference [RFC3987]. When dereferenced, the resulting URI 
 84  
    * (mapped from an IRI, if necessary) SHOULD produce a representation that is relevant to that agent.
 85  
    * </li>
 86  
    * @param uri
 87  
    * @return
 88  
    */
 89  
   public Generator setUri(String uri) {
 90  36
     _uri = uri;
 91  36
     return this;
 92  
   }
 93  
 
 94  
 
 95  
   /**
 96  
    * <li>Rss 1.0 - Not supported.</li>
 97  
    * <li>Rss 2.0 -  - Not supported.
 98  
    * </li>
 99  
    * <li>Atom 1.0 - 
 100  
    * The atom:generator element MAY have a "version" attribute that indicates the version of the generating agent.
 101  
    * </li>
 102  
    * @return
 103  
    */
 104  
   public String getVersion() {
 105  12
     return _version;
 106  
   }
 107  
 
 108  
   /**
 109  
    * <li>Rss 1.0 - Not supported.</li>
 110  
    * <li>Rss 2.0 -  - Not supported.
 111  
    * </li>
 112  
    * <li>Atom 1.0 - 
 113  
    * The atom:generator element MAY have a "version" attribute that indicates the version of the generating agent.
 114  
    * </li>
 115  
    * @param version
 116  
    */
 117  
   public Generator setVersion(String version) {
 118  36
     _version = version;
 119  36
     return this;
 120  
   }
 121  
   ////////////////////////Common setters///////////////////////
 122  
   /**
 123  
    * Any other attribute that is not in the RSS 2.0 specs.
 124  
    */
 125  
   public Generator setOtherAttributes(Map<QName, String> otherAttributes) {
 126  6
     _otherAttributes = otherAttributes;
 127  6
     return this;
 128  
   }
 129  
   /**
 130  
    * Add an attribute that is not in the RSS 2.0 specs.
 131  
    */
 132  
   public  Generator addOtherAttributes(QName namespace, String attribute) {
 133  6
     if(_otherAttributes == null){
 134  3
       _otherAttributes = new HashMap<QName, String>();
 135  
     }
 136  6
     _otherAttributes.put(namespace, attribute);
 137  6
     return this;
 138  
   }
 139  
   
 140  
 
 141  
   /**
 142  
    * <b>Atom 1.0 only</b><br/>
 143  
    * Any element defined by this specification MAY have an xml:base attribute 
 144  
    * [W3C.REC-xmlbase-20010627]. When xml:base is used in an Atom Document, 
 145  
    * it serves the function described in section 5.1.1 of [RFC3986], establishing 
 146  
    * the base URI (or IRI) for resolving any relative references found within the 
 147  
    * effective scope of the xml:base attribute.
 148  
    * @param base
 149  
    * @return
 150  
    */
 151  
   public Generator setBase(String base) {
 152  27
     _base = base;
 153  27
     return this;
 154  
   }
 155  
   /**
 156  
    * <li>Rss 2.0 - &lt;language> element. 
 157  
    * The language the channel is written in. This allows aggregators to group 
 158  
    * all Italian language sites, for example, on a single page. A list of allowable 
 159  
    * values for this element, as provided by Netscape, is here. You may also use values 
 160  
    * defined by the W3C.
 161  
    * Only &lt;channel> support this element.</li>
 162  
    * <li>Rss 1.0 - &lt;dc:language> element. A language of the intellectual content of the resource.
 163  
    * Only &lt;channel> and &lt;item> support this element. </li>
 164  
    * <li>Atom 1.0 - 'lang' attribute</li>
 165  
    * <br/>
 166  
    * Note: for Rss 2.0 and Rss 1.0, only &lt;channel> and &lt;item>
 167  
    * @param lang
 168  
    * @return
 169  
    */
 170  
   public Generator setLang(String lang) {
 171  27
     _lang = lang;
 172  27
     return this;
 173  
   }
 174  
   /**
 175  
    * <li>Rss 2.0 - &lt;language> element. 
 176  
    * The language the channel is written in. This allows aggregators to group 
 177  
    * all Italian language sites, for example, on a single page. A list of allowable 
 178  
    * values for this element, as provided by Netscape, is here. You may also use values 
 179  
    * defined by the W3C.
 180  
    * Only &lt;channel> support this element.</li>
 181  
    * <li>Rss 1.0 - &lt;dc:language> element. A language of the intellectual content of the resource.
 182  
    * Only &lt;channel> and &lt;item> support this element. </li>
 183  
    * <li>Atom 1.0 - 'lang' attribute</li>
 184  
    * <br/>
 185  
    * Note: for Rss 2.0 and Rss 1.0, only &lt;channel> and &lt;item>
 186  
    * @param lang
 187  
    * @return
 188  
    */
 189  
   public Generator setLang(Locale lang) {
 190  0
     _lang = lang.getLanguage();
 191  0
     return this;
 192  
   }
 193  
   ////////////////////////Common setters///////////////////////
 194  
   @Override
 195  
   public void validate(FeedFormat format) throws ValidationException {
 196  6
     if(format == FeedFormat.RSS10){
 197  0
       return;
 198  
     }
 199  6
     ValidationUtils.validateNotNull("[Generator] Value should not be null", _value);
 200  6
     ValidationUtils.validateUri("[Generator] uri should be an valid uri", _uri);
 201  6
   }
 202  
   
 203  
 }