FileDocCategorySizeDatePackage
GOMSource.javaAPI DocApache Lucene 2.1.03193Wed Feb 14 10:46:00 GMT 2007org.apache.lucene.gdata.gom

GOMSource.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;

import java.util.List;

/**
 * If an atom:entry is copied from one feed into another feed, then the source
 * atom:feed's metadata (all child elements of atom:feed other than the
 * atom:entry elements) MAY be preserved within the copied entry by adding an
 * atom:source child element, if it is not already present in the entry, and
 * including some or all of the source feed's Metadata elements as the
 * atom:source element's children. Such metadata SHOULD be preserved if the
 * source atom:feed contains any of the child elements atom:author,
 * atom:contributor, atom:rights, or atom:category and those child elements are
 * not present in the source atom:entry.
 * 
 * <pre>
 *    atomSource =
 *    element atom:source {
 *    atomCommonAttributes,
 *    (atomAuthor*
 *    & atomCategory*
 *    & atomContributor*
 *    & atomGenerator?
 *    & atomIcon?
 *    & atomId?
 *    & atomLink*
 *    & atomLogo?
 *    & atomRights?
 *    & atomSubtitle?
 *    & atomTitle?
 *    & atomUpdated?
 *    & extensionElement*)
 *    }
 * </pre>
 * 
 * @author Simon Willnauer
 * 
 */
public interface GOMSource extends GOMXmlEntity, GOMElement {
	public static final String LOCALNAME = "source";

	/**
	 * @param aAuthor
	 */
	public void addAuthor(GOMAuthor aAuthor);

	/**
	 * @param aCategory
	 */
	public void addCategory(GOMCategory aCategory);

	/**
	 * @param aContributor
	 */
	public void addContributor(GOMContributor aContributor);

	/**
	 * @param aLink
	 */
	public void addLink(GOMLink aLink);

	public List<GOMAuthor> getAuthors();

	public List<GOMCategory> getCategories();

	public List<GOMContributor> getContributor();

	public GOMGenerator getGenerator();

	public GOMId getId();

	public void setGenerator(GOMGenerator aGenerator);

	public void setIcon(GOMIcon aIcon);

	public void setId(GOMId aId);

	public GOMLogo getLogo();

	public void setLogo(GOMLogo aLogo);

	public GOMRights getRights();

	public void setRights(GOMRights aRights);

	public GOMSubtitle getSubtitle();

	public void setSubtitle(GOMSubtitle aSubtitle);

	public GOMTitle getTitle();

	public void setTitle(GOMTitle aTitle);

	public GOMUpdated getUpdated();

	public void setUpdated(GOMUpdated aUpdated);

	public GOMIcon getIcon();

	public List<GOMLink> getLinks();
	
	//TODO needs extension elements

}