/* 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.BaseEntry;
import com.google.gdata.data.BaseFeed;
import com.google.gdata.data.Category;
import com.google.gdata.data.extensions.FeedLink;
import com.google.gdata.util.Namespaces;
import java.util.Iterator;
import java.util.Set;
/**
* Utility methods used in this package.
*
*
*/
class EntryUtils {
/**
* Replaces the existing kind category with the new given value.
*
* @param entry entry to change.
* @param newKind the new kind to set.
*/
static void setKind(BaseEntry<?> entry, String newKind) {
removeKindCategory(entry.getCategories().iterator());
addKindCategory(entry.getCategories(), newKind);
}
/**
* Replaces the existing kind category with the new given value.
*/
static void setKind(BaseFeed<?, ?> feed, String newKind) {
removeKindCategory(feed.getCategories().iterator());
addKindCategory(feed.getCategories(), newKind);
}
private static void removeKindCategory(Iterator<Category> iter) {
while (iter.hasNext()) {
Category category = iter.next();
if (Namespaces.gKind.equals(category.getScheme())) {
iter.remove();
}
}
}
private static void addKindCategory(Set<Category> categories, String kind) {
categories.add(new Category(Namespaces.gKind, kind));
}
/**
* Returns the first matching {@code gd:feedLink} or {@code null}.
*
* @param rel value of the {@code rel} attribute
*/
static FeedLink<?> getFeedLink(BaseEntry<?> entry, String rel) {
for (FeedLink<?> feedLink : entry.getRepeatingExtension(FeedLink.class)) {
if (rel.equals(feedLink.getRel())) {
return feedLink;
}
}
return null;
}
/** This is a utility class. */
private EntryUtils() {
throw new IllegalStateException("");
}
}