/* Copyright (c) 2008 Google Inc. * * Licensed 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 com.google.gdata.data.youtube; import com.google.gdata.data.AttributeGenerator; import com.google.gdata.data.media.mediarss.MediaContent; import com.google.gdata.data.media.mediarss.MediaRssNamespace; import com.google.gdata.data.AttributeHelper; import com.google.gdata.data.ExtensionDescription; import com.google.gdata.util.ParseException; /** * Adds an attribute in the yt: namespace to {@code media:content}. * * This is really awkward to do in the gdata framework. * * */ @ExtensionDescription.Default( nsAlias = MediaRssNamespace.PREFIX, nsUri = MediaRssNamespace.URI, localName = "content", isRepeatable = true ) public class YouTubeMediaContent extends MediaContent { /** Opaque YouTube format identifier (optional) */ private Integer youTubeFormat; /** * Describes the tag to an {@link com.google.gdata.data.ExtensionProfile}. */ public static ExtensionDescription getDefaultDescription() { return ExtensionDescription.getDefaultDescription( YouTubeMediaContent.class); } @Override protected void putAttributes(AttributeGenerator generator) { super.putAttributes(generator); if (youTubeFormat != null) { generator.put(YouTubeNamespace.PREFIX + ":format", youTubeFormat.toString()); } } @Override protected void consumeAttributes(AttributeHelper attrsHelper) throws ParseException { super.consumeAttributes(attrsHelper); youTubeFormat = attrsHelper.consumeInteger("format", false, -1); if (youTubeFormat == -1) { youTubeFormat = null; } } /** Gets the youtube video format. */ public Integer getYouTubeFormat() { return youTubeFormat; } /** Sets the youtube video format, an opaque format number at this level. */ public void setYouTubeFormat(Integer youTubeFormat) { this.youTubeFormat = youTubeFormat; } }