com.rometools.propono.blogclient.metaweblog.MetaWeblogEntry Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rome-propono Show documentation
Show all versions of rome-propono Show documentation
The ROME Propono subproject is a Java class library that
supports publishing protocols, specifically the Atom Publishing Protocol
and the legacy MetaWeblog API. Propono includes an Atom client library,
Atom server framework and a Blog client that supports both Atom protocol
and the MetaWeblog API.
The newest version!
/*
* Copyright 2007 Dave Johnson (Blogapps project)
*
* 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.rometools.propono.blogclient.metaweblog;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.rometools.propono.blogclient.BaseBlogEntry;
import com.rometools.propono.blogclient.BlogClientException;
import com.rometools.propono.blogclient.BlogEntry;
/**
* MetaWeblog API implementation of an entry.
*
* @deprecated Propono will be removed in Rome 2.
*/
@Deprecated
public class MetaWeblogEntry extends BaseBlogEntry {
MetaWeblogEntry(final MetaWeblogBlog blog, final Map entryMap) {
super(blog);
id = (String) entryMap.get("postid");
content = new Content((String) entryMap.get("description"));
// let's pretend MetaWeblog API has a content-type
content.setType("application/metaweblog+xml");
// no way to tell if entry is draft or not
draft = false;
title = (String) entryMap.get("title");
publicationDate = (Date) entryMap.get("dateCreated");
permalink = (String) entryMap.get("permaLink");
// AlexisMP: fix to get the author value populated.
author.setName((String) entryMap.get("userid"));
author.setEmail((String) entryMap.get("author"));
categories = new ArrayList();
final Object[] catArray = (Object[]) entryMap.get("categories");
if (catArray != null) {
for (final Object element : catArray) {
final Category cat = new Category((String) element);
categories.add(cat);
}
}
}
/**
* {@inheritDoc}
*/
@Override
public String getToken() {
return id;
}
/**
* True if tokens are equal
*/
@Override
public boolean equals(final Object o) {
if (o instanceof MetaWeblogEntry) {
final MetaWeblogEntry other = (MetaWeblogEntry) o;
if (other.id != null && id != null) {
return other.id.equals(id);
}
}
return false;
}
/**
* {@inheritDoc}
*/
@Override
public void save() throws BlogClientException {
id = ((MetaWeblogBlog) getBlog()).saveEntry(this);
}
/**
* {@inheritDoc}
*/
@Override
public void delete() throws BlogClientException {
((MetaWeblogBlog) getBlog()).deleteEntry(id);
}
Map toPostStructure() {
final Map struct = new HashMap();
if (getTitle() != null) {
struct.put("title", getTitle());
}
if (getContent() != null && getContent().getValue() != null) {
struct.put("description", getContent().getValue());
}
if (getCategories() != null && !getCategories().isEmpty()) {
final List catArray = new ArrayList();
final List cats = getCategories();
for (int i = 0; i < cats.size(); i++) {
final BlogEntry.Category cat = cats.get(i);
catArray.add(cat.getName());
}
struct.put("categories", catArray);
}
if (getPublicationDate() != null) {
struct.put("dateCreated", getPublicationDate());
}
if (getId() != null) {
struct.put("postid", getId());
}
return struct;
}
}