//# 1 errors, 426 messages
//#
/*
    //#ThemeEdit.java:1:1: class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
 * Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  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.  For additional information regarding
 * copyright in this work, please see the NOTICE file in the top level
 * directory of this distribution.
 */

package org.apache.roller.weblogger.ui.struts2.editor;

import java.util.Collections;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.business.themes.SharedTheme;
import org.apache.roller.weblogger.business.themes.ThemeManager;
import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
import org.apache.roller.weblogger.pojos.WeblogPermission;
import org.apache.roller.weblogger.pojos.Theme;
import org.apache.roller.weblogger.pojos.WeblogTheme;
import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.pojos.WeblogTemplate;
import org.apache.roller.weblogger.ui.struts2.util.UIAction;
import org.apache.roller.weblogger.util.cache.CacheManager;


/**
 * Action for controlling theme selection.
 */
public class ThemeEdit extends UIAction {
    
    private static Log log = LogFactory.getLog(Templates.class);
    //#ThemeEdit.java:46: method: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init
    //#ThemeEdit.java:46: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit]
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.addError(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.addError(Ljava/lang/String;Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.addError(Ljava/lang/String;Ljava/util/List;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.addMessage(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.addMessage(Ljava/lang/String;Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.addMessage(Ljava/lang/String;Ljava/util/List;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.errorsExist()Z
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.execute()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getAbsoluteSiteURL()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getActionName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getActionWeblog()Lorg/apache/roller/weblogger/pojos/Weblog;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getAuthenticatedUser()Lorg/apache/roller/weblogger/pojos/User;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getBooleanProp(Ljava/lang/String;)Z
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getCommentDaysList()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getDesiredMenu()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getHoursList()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getImportThemeId()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getIntProp(Ljava/lang/String;)I
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getLocalesList()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getMediumDateFormat()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getMenu()Lorg/apache/roller/weblogger/ui/core/util/menu/Menu;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getMinutesList()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getPageTitle()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getProp(Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getSecondsList()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getShortDateFormat()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getSiteURL()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getThemeId()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getThemeType()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getThemes()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getTimeZonesList()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getWeblog()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.isCustomTheme()Z
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.isFirstCustomization()Z
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.isImportTheme()Z
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.isUserIsAdmin()Z
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.isUserRequired()Z
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.isWeblogRequired()Z
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.messagesExist()Z
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.myPrepare()V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.requiredUserRole()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.requiredWeblogPermissions()S
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.save()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setActionName(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setActionWeblog(Lorg/apache/roller/weblogger/pojos/Weblog;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setAuthenticatedUser(Lorg/apache/roller/weblogger/pojos/User;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setDesiredMenu(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setImportTheme(Z)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setImportThemeId(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setPageTitle(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setThemeId(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setThemeType(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setThemes(Ljava/util/List;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setWeblog(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): log
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): org/apache/roller/weblogger/ui/struts2/util/UIAction.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit]
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): org/apache/roller/weblogger/ui/struts2/util/UIActionPreparable.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit]
    //#output(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): org/apache/roller/weblogger/ui/struts2/util/UISecurityEnforced.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit]
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): org/apache/roller/weblogger/ui/struts2/util/UIAction.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): org/apache/roller/weblogger/ui/struts2/util/UIActionPreparable.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): org/apache/roller/weblogger/ui/struts2/util/UISecurityEnforced.__Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.addError(Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/struts2/util/UIAction.addError
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.addError(Ljava/lang/String;Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/struts2/util/UIAction.addError
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.addError(Ljava/lang/String;Ljava/util/List;)V == &org/apache/roller/weblogger/ui/struts2/util/UIAction.addError
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.addMessage(Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/struts2/util/UIAction.addMessage
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.addMessage(Ljava/lang/String;Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/struts2/util/UIAction.addMessage
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.addMessage(Ljava/lang/String;Ljava/util/List;)V == &org/apache/roller/weblogger/ui/struts2/util/UIAction.addMessage
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.errorsExist()Z == &org/apache/roller/weblogger/ui/struts2/util/UIAction.errorsExist
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.execute()Ljava/lang/String; == &execute
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getAbsoluteSiteURL()Ljava/lang/String; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getAbsoluteSiteURL
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getActionName()Ljava/lang/String; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getActionName
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getActionWeblog()Lorg/apache/roller/weblogger/pojos/Weblog; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getActionWeblog
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getAuthenticatedUser()Lorg/apache/roller/weblogger/pojos/User; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getAuthenticatedUser
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getBooleanProp(Ljava/lang/String;)Z == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getBooleanProp
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getCommentDaysList()Ljava/util/List; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getCommentDaysList
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getDesiredMenu()Ljava/lang/String; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getDesiredMenu
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getHoursList()Ljava/util/List; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getHoursList
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getImportThemeId()Ljava/lang/String; == &getImportThemeId
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getIntProp(Ljava/lang/String;)I == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getIntProp
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getLocalesList()Ljava/util/List; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getLocalesList
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getMediumDateFormat()Ljava/lang/String; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getMediumDateFormat
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getMenu()Lorg/apache/roller/weblogger/ui/core/util/menu/Menu; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getMenu
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getMinutesList()Ljava/util/List; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getMinutesList
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getPageTitle()Ljava/lang/String; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getPageTitle
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getProp(Ljava/lang/String;)Ljava/lang/String; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getProp
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getSecondsList()Ljava/util/List; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getSecondsList
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getShortDateFormat()Ljava/lang/String; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getShortDateFormat
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getSiteURL()Ljava/lang/String; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getSiteURL
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getThemeId()Ljava/lang/String; == &getThemeId
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getThemeType()Ljava/lang/String; == &getThemeType
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getThemes()Ljava/util/List; == &getThemes
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getTimeZonesList()Ljava/util/List; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getTimeZonesList
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.getWeblog()Ljava/lang/String; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.getWeblog
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.isCustomTheme()Z == &isCustomTheme
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.isFirstCustomization()Z == &isFirstCustomization
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.isImportTheme()Z == &isImportTheme
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.isUserIsAdmin()Z == &org/apache/roller/weblogger/ui/struts2/util/UIAction.isUserIsAdmin
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.isUserRequired()Z == &org/apache/roller/weblogger/ui/struts2/util/UIAction.isUserRequired
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.isWeblogRequired()Z == &org/apache/roller/weblogger/ui/struts2/util/UIAction.isWeblogRequired
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.messagesExist()Z == &org/apache/roller/weblogger/ui/struts2/util/UIAction.messagesExist
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.myPrepare()V == &myPrepare
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.requiredUserRole()Ljava/lang/String; == &org/apache/roller/weblogger/ui/struts2/util/UIAction.requiredUserRole
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.requiredWeblogPermissions()S == &requiredWeblogPermissions
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.save()Ljava/lang/String; == &save
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setActionName(Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/struts2/util/UIAction.setActionName
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setActionWeblog(Lorg/apache/roller/weblogger/pojos/Weblog;)V == &org/apache/roller/weblogger/ui/struts2/util/UIAction.setActionWeblog
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setAuthenticatedUser(Lorg/apache/roller/weblogger/pojos/User;)V == &org/apache/roller/weblogger/ui/struts2/util/UIAction.setAuthenticatedUser
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setDesiredMenu(Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/struts2/util/UIAction.setDesiredMenu
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setImportTheme(Z)V == &setImportTheme
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setImportThemeId(Ljava/lang/String;)V == &setImportThemeId
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setPageTitle(Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/struts2/util/UIAction.setPageTitle
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setThemeId(Ljava/lang/String;)V == &setThemeId
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setThemeType(Ljava/lang/String;)V == &setThemeType
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setThemes(Ljava/util/List;)V == &setThemes
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): __Dispatch_Table.setWeblog(Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/struts2/util/UIAction.setWeblog
    //#post(org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init): init'ed(log)
    //#ThemeEdit.java:46: end of method: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit__static_init
    
    // list of available themes
    private List themes = Collections.EMPTY_LIST;
    
    // type of theme desired, either 'shared' or 'custom'
    private String themeType = null;
    
    // the chosen shared theme id
    private String themeId = null;
    
    // import the selected theme to the action weblog
    private boolean importTheme = false;
    
    // the chosen import theme id
    private String importThemeId = null;
    
    
    public ThemeEdit() {
    //#ThemeEdit.java:64: method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()
    //#input(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): java.util.Collections.EMPTY_LIST
    //#input(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.actionName
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.actionWeblog
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.authenticatedUser
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.desiredMenu
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.importTheme
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.importThemeId
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.pageTitle
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.themeId
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.themeType
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.themes
    //#output(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.weblog
    //#presumption(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): init'ed(java.util.Collections.EMPTY_LIST)
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.actionName == &"themeEdit"
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.actionWeblog == null
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.authenticatedUser == null
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.importThemeId == null
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.themeId == null
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.themeType == null
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.weblog == null
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.desiredMenu == &"editor"
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.importTheme == 0
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.pageTitle == &"themeEditor.title"
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): this.themes == java.util.Collections.EMPTY_LIST
    //#post(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): (soft) init'ed(this.themes)
    //#unanalyzed(void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()): Effects-of-calling:com.opensymphony.xwork2.ActionSupport
        this.actionName = "themeEdit";
        this.desiredMenu = "editor";
        this.pageTitle = "themeEditor.title";
    }
    //#ThemeEdit.java:68: end of method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit()
    
    
    public short requiredWeblogPermissions() {
        return WeblogPermission.ADMIN;
    //#ThemeEdit.java:72: method: short org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.requiredWeblogPermissions()
    //#input(short requiredWeblogPermissions()): org.apache.roller.weblogger.pojos.WeblogPermission.ADMIN
    //#output(short requiredWeblogPermissions()): return_value
    //#presumption(short requiredWeblogPermissions()): init'ed(org.apache.roller.weblogger.pojos.WeblogPermission.ADMIN)
    //#post(short requiredWeblogPermissions()): return_value == org.apache.roller.weblogger.pojos.WeblogPermission.ADMIN
    //#post(short requiredWeblogPermissions()): (soft) init'ed(return_value)
    //#ThemeEdit.java:72: end of method: short org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.requiredWeblogPermissions()
    }
    
    
    public void myPrepare() {
        ThemeManager themeMgr = WebloggerFactory.getWeblogger().getThemeManager();
    //#ThemeEdit.java:77: method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.myPrepare()
    //#ThemeEdit.java:77: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: void myPrepare()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#ThemeEdit.java:77: Warning: method not available
    //#    -- call on ThemeManager org.apache.roller.weblogger.business.Weblogger:getThemeManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: void myPrepare()
    //#    unanalyzed callee: ThemeManager org.apache.roller.weblogger.business.Weblogger:getThemeManager()
    //#input(void myPrepare()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit]
    //#input(void myPrepare()): __Descendant_Table[others]
    //#input(void myPrepare()): __Dispatch_Table.setThemes(Ljava/util/List;)V
    //#input(void myPrepare()): this
    //#input(void myPrepare()): this.__Tag
    //#output(void myPrepare()): this.themes
    //#pre[2] (void myPrepare()): this.__Tag == org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit
    //#presumption(void myPrepare()): org.apache.roller.weblogger.business.Weblogger:getThemeManager(...)@77 != null
    //#presumption(void myPrepare()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@77 != null
    //#post(void myPrepare()): init'ed(this.themes)
        setThemes(themeMgr.getEnabledThemesList());
    //#ThemeEdit.java:78: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.themes.ThemeManager:getEnabledThemesList()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: void myPrepare()
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.themes.ThemeManager:getEnabledThemesList()
    }
    //#ThemeEdit.java:79: end of method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.myPrepare()
    
    
    public String execute() {
        
        // set theme to current value
        if(WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme())) {
    //#ThemeEdit.java:85: method: String org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.execute()
    //#ThemeEdit.java:85: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getEditorTheme()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String execute()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getEditorTheme()
    //#input(String execute()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit]
    //#input(String execute()): __Descendant_Table[others]
    //#input(String execute()): __Dispatch_Table.getActionWeblog()Lorg/apache/roller/weblogger/pojos/Weblog;
    //#input(String execute()): __Dispatch_Table.setImportThemeId(Ljava/lang/String;)V
    //#input(String execute()): __Dispatch_Table.setThemeId(Ljava/lang/String;)V
    //#input(String execute()): this
    //#input(String execute()): this.__Tag
    //#input(String execute()): this.actionWeblog
    //#output(String execute()): return_value
    //#output(String execute()): this.importThemeId
    //#output(String execute()): this.themeId
    //#pre[3] (String execute()): this.__Tag == org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit
    //#pre[4] (String execute()): this.actionWeblog != null
    //#presumption(String execute()): org.apache.roller.weblogger.pojos.Weblog:getTheme(...)@88 != null
    //#presumption(String execute()): org.apache.roller.weblogger.pojos.Weblog:getTheme(...)@89 != null
    //#post(String execute()): return_value in Addr_Set{&"input",&"input-sharedonly"}
    //#post(String execute()): possibly_updated(this.importThemeId)
    //#post(String execute()): init'ed(this.themeId)
    //#test_vector(String execute()): java.lang.String:equals(...)@85: {0}, {1}
    //#test_vector(String execute()): org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(...)@92: {1}, {0}
            setThemeId(null);
        } else {
            setThemeId(getActionWeblog().getTheme().getId());
    //#ThemeEdit.java:88: Warning: method not available
    //#    -- call on WeblogTheme org.apache.roller.weblogger.pojos.Weblog:getTheme()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String execute()
    //#    unanalyzed callee: WeblogTheme org.apache.roller.weblogger.pojos.Weblog:getTheme()
    //#ThemeEdit.java:88: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.WeblogTheme:getId()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String execute()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.WeblogTheme:getId()
            setImportThemeId(getActionWeblog().getTheme().getId());
    //#ThemeEdit.java:89: Warning: method not available
    //#    -- call on WeblogTheme org.apache.roller.weblogger.pojos.Weblog:getTheme()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String execute()
    //#    unanalyzed callee: WeblogTheme org.apache.roller.weblogger.pojos.Weblog:getTheme()
    //#ThemeEdit.java:89: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.WeblogTheme:getId()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String execute()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.WeblogTheme:getId()
        }
        
        if(!WebloggerRuntimeConfig.getBooleanProperty("themes.customtheme.allowed")) {
    //#ThemeEdit.java:92: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String execute()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(String)
            return "input-sharedonly";
        } else {
            return INPUT;
    //#ThemeEdit.java:95: end of method: String org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.execute()
        }
    }
    

    /**
     * Save new theme configuration.
     */
    public String save() {
        
        Weblog weblog = getActionWeblog();
    //#ThemeEdit.java:105: method: String org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.save()
    //#input(String save()): " for weblog "._tainted
    //#input(String save()): "Error customizing theme for weblog - "._tainted
    //#input(String save()): "Error saving weblog - "._tainted
    //#input(String save()): "Saving custom theme for weblog "._tainted
    //#input(String save()): "Saving theme "._tainted
    //#input(String save()): "Successfully copied templates from theme - "._tainted
    //#input(String save()): "Successfully set theme to - "._tainted
    //#input(String save()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit]
    //#input(String save()): __Descendant_Table[others]
    //#input(String save()): __Dispatch_Table.addError(Ljava/lang/String;)V
    //#input(String save()): __Dispatch_Table.addMessage(Ljava/lang/String;)V
    //#input(String save()): __Dispatch_Table.execute()Ljava/lang/String;
    //#input(String save()): __Dispatch_Table.getActionWeblog()Lorg/apache/roller/weblogger/pojos/Weblog;
    //#input(String save()): __Dispatch_Table.getImportThemeId()Ljava/lang/String;
    //#input(String save()): __Dispatch_Table.getThemeId()Ljava/lang/String;
    //#input(String save()): __Dispatch_Table.getThemeType()Ljava/lang/String;
    //#input(String save()): __Dispatch_Table.isImportTheme()Z
    //#input(String save()): __Dispatch_Table.setImportTheme(Z)V
    //#input(String save()): __Dispatch_Table.setImportThemeId(Ljava/lang/String;)V
    //#input(String save()): __Dispatch_Table.setThemeId(Ljava/lang/String;)V
    //#input(String save()): log
    //#input(String save()): this
    //#input(String save()): this.__Tag
    //#input(String save()): this.actionWeblog
    //#input(String save()): this.importTheme
    //#input(String save()): this.importThemeId
    //#input(String save()): this.themeId
    //#input(String save()): this.themeId._tainted
    //#input(String save()): this.themeType
    //#output(String save()): return_value
    //#output(String save()): this.importTheme
    //#output(String save()): this.importThemeId
    //#output(String save()): this.themeId
    //#pre[6] (String save()): this.__Tag == org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit
    //#pre[9] (String save()): init'ed(this.themeType)
    //#pre[1] (String save()): (soft) log != null
    //#pre[2] (String save()): (soft) init'ed(this.importTheme)
    //#pre[3] (String save()): (soft) init'ed(this.importThemeId)
    //#pre[4] (String save()): (soft) init'ed(this.themeId)
    //#pre[7] (String save()): (soft) this.actionWeblog != null
    //#presumption(String save()): org.apache.roller.weblogger.business.Weblogger:getThemeManager(...)@116 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.Weblogger:getThemeManager(...)@167 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@130 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@187 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@116 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@130 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@132 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@167 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@187 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@189 != null
    //#presumption(String save()): org.apache.roller.weblogger.business.themes.ThemeManager:getTheme(...)@168 != null
    //#post(String save()): return_value == One-of{&"input-sharedonly", &"input"}
    //#post(String save()): return_value in Addr_Set{&"input-sharedonly",&"input"}
    //#post(String save()): (soft) init'ed(this.importTheme)
    //#post(String save()): (soft) init'ed(this.importThemeId)
    //#post(String save()): init'ed(this.themeId)
    //#unanalyzed(String save()): Effects-of-calling:getActionWeblog
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.pojos.Weblog:getEditorTheme
    //#unanalyzed(String save()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.pojos.Weblog:getTheme
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogTheme:getId
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.util.UIAction:getText
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.util.UIAction:addActionError
    //#unanalyzed(String save()): Effects-of-calling:org.apache.roller.weblogger.ui.struts2.util.UIAction:addActionMessage
    //#test_vector(String save()): this.importTheme: {0}, {1}
    //#test_vector(String save()): this.themeId: Inverse{null}, Addr_Set{null}
    //#test_vector(String save()): java.lang.String:equals(...)@108: {0}, {1}
    //#test_vector(String save()): java.lang.String:equals(...)@157: {0}, {1}
    //#test_vector(String save()): org.apache.commons.lang.StringUtils:isEmpty(...)@115: {1}, {0}
    //#test_vector(String save()): org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(...)@111: {0}, {1}
    //#test_vector(String save()): org.apache.roller.weblogger.pojos.Theme:isEnabled(...)@170: {1}, {0}
    //#test_vector(String save()): org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit:hasActionErrors(...)@125: {1}, {0}
    //#test_vector(String save()): org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit:hasActionErrors(...)@182: {1}, {0}
        
        // we are dealing with a custom theme scenario
        if(WeblogTheme.CUSTOM.equals(getThemeType())) {
            
            // only continue if custom themes are allowed
            if(WebloggerRuntimeConfig.getBooleanProperty("themes.customtheme.allowed")) {
    //#ThemeEdit.java:111: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty(String)
                
                // do theme import if necessary
                SharedTheme importTheme = null;
                if(isImportTheme() && !StringUtils.isEmpty(getImportThemeId())) try {
    //#ThemeEdit.java:115: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
                    ThemeManager themeMgr = WebloggerFactory.getWeblogger().getThemeManager();
    //#ThemeEdit.java:116: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#ThemeEdit.java:116: Warning: method not available
    //#    -- call on ThemeManager org.apache.roller.weblogger.business.Weblogger:getThemeManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: ThemeManager org.apache.roller.weblogger.business.Weblogger:getThemeManager()
                    importTheme = themeMgr.getTheme(getImportThemeId());
    //#ThemeEdit.java:117: Warning: method not available
    //#    -- call on SharedTheme org.apache.roller.weblogger.business.themes.ThemeManager:getTheme(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: SharedTheme org.apache.roller.weblogger.business.themes.ThemeManager:getTheme(String)
                    themeMgr.importTheme(getActionWeblog(), importTheme);
    //#ThemeEdit.java:118: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.themes.ThemeManager:importTheme(Weblog, SharedTheme)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.themes.ThemeManager:importTheme(Weblog, SharedTheme)
                } catch(WebloggerException re) {
                    log.error("Error customizing theme for weblog - "+getActionWeblog().getHandle(), re);
    //#ThemeEdit.java:120: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#ThemeEdit.java:120: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
                    // TODO: i18n
                    addError("Error importing theme");
                }
                
                if(!hasActionErrors()) try {
    //#ThemeEdit.java:125: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit:hasActionErrors()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit:hasActionErrors()
                    weblog.setEditorTheme(WeblogTheme.CUSTOM);
    //#ThemeEdit.java:126: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.Weblog:setEditorTheme(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.Weblog:setEditorTheme(String)
                    log.debug("Saving custom theme for weblog "+weblog.getHandle());
    //#ThemeEdit.java:127: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#ThemeEdit.java:127: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
                    
                    // save updated weblog and flush
                    UserManager userMgr = WebloggerFactory.getWeblogger().getUserManager();
    //#ThemeEdit.java:130: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#ThemeEdit.java:130: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
                    userMgr.saveWebsite(weblog);
    //#ThemeEdit.java:131: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.UserManager:saveWebsite(Weblog)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.UserManager:saveWebsite(Weblog)
                    WebloggerFactory.getWeblogger().flush();
    //#ThemeEdit.java:132: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#ThemeEdit.java:132: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.Weblogger:flush()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.Weblogger:flush()
                    
                    // make sure to flush the page cache so ppl can see the change
                    CacheManager.invalidate(weblog);
    //#ThemeEdit.java:135: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.util.cache.CacheManager:invalidate(Weblog)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.util.cache.CacheManager:invalidate(Weblog)
                    
                    // TODO: i18n
                    addMessage("Successfully set theme to - "+WeblogTheme.CUSTOM);
                    if(importTheme != null) {
                        addMessage("Successfully copied templates from theme - "+importTheme.getName());
    //#ThemeEdit.java:140: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.themes.SharedTheme:getName()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.themes.SharedTheme:getName()
                    }
                    
                    // reset import theme options
                    setImportTheme(false);
                    setImportThemeId(null);
                    
                } catch(WebloggerException re) {
                    log.error("Error saving weblog - "+getActionWeblog().getHandle(), re);
    //#ThemeEdit.java:148: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#ThemeEdit.java:148: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
                    addError("Error setting theme");
                }
            } else {
                // TODO: i18n
                addError("Sorry, custom themes are not allowed");
            }
            
        // we are dealing with a shared theme scenario
        } else if("shared".equals(getThemeType())) {
            
            // make sure theme is valid and enabled
            Theme newTheme = null;
            if(getThemeId() == null) {
                // TODO: i18n
                addError("No theme specified");
                
            } else {
                try {
                    ThemeManager themeMgr = WebloggerFactory.getWeblogger().getThemeManager();
    //#ThemeEdit.java:167: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#ThemeEdit.java:167: Warning: method not available
    //#    -- call on ThemeManager org.apache.roller.weblogger.business.Weblogger:getThemeManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: ThemeManager org.apache.roller.weblogger.business.Weblogger:getThemeManager()
                    newTheme = themeMgr.getTheme(getThemeId());
    //#ThemeEdit.java:168: Warning: method not available
    //#    -- call on SharedTheme org.apache.roller.weblogger.business.themes.ThemeManager:getTheme(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: SharedTheme org.apache.roller.weblogger.business.themes.ThemeManager:getTheme(String)
                    
                    if(!newTheme.isEnabled()) {
    //#ThemeEdit.java:170: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.pojos.Theme:isEnabled()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.pojos.Theme:isEnabled()
                        // TODO: i18n
                        addError("Theme not enabled");
                    }
                    
                } catch(Exception ex) {
                    log.warn(ex);
    //#ThemeEdit.java:176: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:warn(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:warn(Object)
                    // TODO: i18n
                    addError("Theme not found");
                }
            }
            
            if(!hasActionErrors()) try {
    //#ThemeEdit.java:182: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit:hasActionErrors()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit:hasActionErrors()
                weblog.setEditorTheme(getThemeId());
    //#ThemeEdit.java:183: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.Weblog:setEditorTheme(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.Weblog:setEditorTheme(String)
                log.debug("Saving theme "+getThemeId()+" for weblog "+weblog.getHandle());
    //#ThemeEdit.java:184: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#ThemeEdit.java:184: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:debug(Object)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:debug(Object)
                
                // save updated weblog and flush
                UserManager userMgr = WebloggerFactory.getWeblogger().getUserManager();
    //#ThemeEdit.java:187: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#ThemeEdit.java:187: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
                userMgr.saveWebsite(weblog);
    //#ThemeEdit.java:188: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.UserManager:saveWebsite(Weblog)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.UserManager:saveWebsite(Weblog)
                WebloggerFactory.getWeblogger().flush();
    //#ThemeEdit.java:189: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#ThemeEdit.java:189: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.Weblogger:flush()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.Weblogger:flush()
                
                // make sure to flush the page cache so ppl can see the change
                CacheManager.invalidate(weblog);
    //#ThemeEdit.java:192: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.util.cache.CacheManager:invalidate(Weblog)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.roller.weblogger.util.cache.CacheManager:invalidate(Weblog)
                
                // TODO: i18n
                addMessage("Successfully set theme to - "+newTheme.getName());
    //#ThemeEdit.java:195: ?null dereference
    //#    newTheme != null
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    basic block: bb_26
    //#    assertion: newTheme != null
    //#    VN: newTheme
    //#    Expected: Inverse{null} or Invalid
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad  Uncertain
    //#ThemeEdit.java:195: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Theme:getName()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Theme:getName()
                
            } catch(WebloggerException re) {
                log.error("Error saving weblog - "+getActionWeblog().getHandle(), re);
    //#ThemeEdit.java:198: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#ThemeEdit.java:198: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: String save()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
                addError("Error setting theme");
            }
            
        // unknown theme scenario, error
        } else {
            // invalid theme type
            // TODO: i18n
            addError("no valid theme type submitted");
        }
        
        return execute();
    //#ThemeEdit.java:209: end of method: String org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.save()
    }
    
    
    public boolean isCustomTheme() {
        return (WeblogTheme.CUSTOM.equals(getActionWeblog().getEditorTheme()));
    //#ThemeEdit.java:214: method: bool org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.isCustomTheme()
    //#ThemeEdit.java:214: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getEditorTheme()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: bool isCustomTheme()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getEditorTheme()
    //#input(bool isCustomTheme()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit]
    //#input(bool isCustomTheme()): __Descendant_Table[others]
    //#input(bool isCustomTheme()): __Dispatch_Table.getActionWeblog()Lorg/apache/roller/weblogger/pojos/Weblog;
    //#input(bool isCustomTheme()): this
    //#input(bool isCustomTheme()): this.__Tag
    //#input(bool isCustomTheme()): this.actionWeblog
    //#output(bool isCustomTheme()): return_value
    //#pre[2] (bool isCustomTheme()): this.__Tag == org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit
    //#pre[3] (bool isCustomTheme()): this.actionWeblog != null
    //#post(bool isCustomTheme()): init'ed(return_value)
    //#ThemeEdit.java:214: end of method: bool org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.isCustomTheme()
    }
    
    // has this weblog had a custom theme before?
    public boolean isFirstCustomization() {
        try {
            UserManager umgr = WebloggerFactory.getWeblogger().getUserManager();
    //#ThemeEdit.java:220: method: bool org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.isFirstCustomization()
    //#ThemeEdit.java:220: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: bool isFirstCustomization()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#ThemeEdit.java:220: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: bool isFirstCustomization()
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#input(bool isFirstCustomization()): __Descendant_Table[org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit]
    //#input(bool isFirstCustomization()): __Descendant_Table[others]
    //#input(bool isFirstCustomization()): __Dispatch_Table.getActionWeblog()Lorg/apache/roller/weblogger/pojos/Weblog;
    //#input(bool isFirstCustomization()): log
    //#input(bool isFirstCustomization()): this
    //#input(bool isFirstCustomization()): this.__Tag
    //#input(bool isFirstCustomization()): this.actionWeblog
    //#output(bool isFirstCustomization()): return_value
    //#pre[1] (bool isFirstCustomization()): (soft) log != null
    //#pre[3] (bool isFirstCustomization()): (soft) this.__Tag == org/apache/roller/weblogger/ui/struts2/editor/ThemeEdit
    //#pre[4] (bool isFirstCustomization()): (soft) init'ed(this.actionWeblog)
    //#presumption(bool isFirstCustomization()): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@220 != null
    //#presumption(bool isFirstCustomization()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@220 != null
    //#post(bool isFirstCustomization()): init'ed(return_value)
            return (umgr.getPageByAction(getActionWeblog(), WeblogTemplate.ACTION_WEBLOG) == null);
    //#ThemeEdit.java:221: Warning: method not available
    //#    -- call on WeblogTemplate org.apache.roller.weblogger.business.UserManager:getPageByAction(Weblog, String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: bool isFirstCustomization()
    //#    unanalyzed callee: WeblogTemplate org.apache.roller.weblogger.business.UserManager:getPageByAction(Weblog, String)
        } catch (WebloggerException ex) {
            log.error("Error looking up weblog template", ex);
    //#ThemeEdit.java:223: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
    //#    method: bool isFirstCustomization()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return false;
    //#ThemeEdit.java:225: end of method: bool org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.isFirstCustomization()
    }
    
    
    public List getThemes() {
        return themes;
    //#ThemeEdit.java:230: method: List org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.getThemes()
    //#input(List getThemes()): this
    //#input(List getThemes()): this.themes
    //#output(List getThemes()): return_value
    //#pre[2] (List getThemes()): init'ed(this.themes)
    //#post(List getThemes()): return_value == this.themes
    //#post(List getThemes()): init'ed(return_value)
    //#ThemeEdit.java:230: end of method: List org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.getThemes()
    }

    public void setThemes(List themes) {
        this.themes = themes;
    //#ThemeEdit.java:234: method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.setThemes(List)
    //#input(void setThemes(List)): themes
    //#input(void setThemes(List)): this
    //#output(void setThemes(List)): this.themes
    //#post(void setThemes(List)): this.themes == themes
    //#post(void setThemes(List)): init'ed(this.themes)
    }
    //#ThemeEdit.java:235: end of method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.setThemes(List)

    public String getThemeType() {
        return themeType;
    //#ThemeEdit.java:238: method: String org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.getThemeType()
    //#input(String getThemeType()): this
    //#input(String getThemeType()): this.themeType
    //#output(String getThemeType()): return_value
    //#pre[2] (String getThemeType()): init'ed(this.themeType)
    //#post(String getThemeType()): return_value == this.themeType
    //#post(String getThemeType()): init'ed(return_value)
    //#ThemeEdit.java:238: end of method: String org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.getThemeType()
    }

    public void setThemeType(String themeType) {
        this.themeType = themeType;
    //#ThemeEdit.java:242: method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.setThemeType(String)
    //#input(void setThemeType(String)): themeType
    //#input(void setThemeType(String)): this
    //#output(void setThemeType(String)): this.themeType
    //#post(void setThemeType(String)): this.themeType == themeType
    //#post(void setThemeType(String)): init'ed(this.themeType)
    }
    //#ThemeEdit.java:243: end of method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.setThemeType(String)
    
    public String getThemeId() {
        return themeId;
    //#ThemeEdit.java:246: method: String org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.getThemeId()
    //#input(String getThemeId()): this
    //#input(String getThemeId()): this.themeId
    //#output(String getThemeId()): return_value
    //#pre[2] (String getThemeId()): init'ed(this.themeId)
    //#post(String getThemeId()): return_value == this.themeId
    //#post(String getThemeId()): init'ed(return_value)
    //#ThemeEdit.java:246: end of method: String org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.getThemeId()
    }

    public void setThemeId(String theme) {
        this.themeId = theme;
    //#ThemeEdit.java:250: method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.setThemeId(String)
    //#input(void setThemeId(String)): theme
    //#input(void setThemeId(String)): this
    //#output(void setThemeId(String)): this.themeId
    //#post(void setThemeId(String)): this.themeId == theme
    //#post(void setThemeId(String)): init'ed(this.themeId)
    }
    //#ThemeEdit.java:251: end of method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.setThemeId(String)

    public boolean isImportTheme() {
        return importTheme;
    //#ThemeEdit.java:254: method: bool org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.isImportTheme()
    //#input(bool isImportTheme()): this
    //#input(bool isImportTheme()): this.importTheme
    //#output(bool isImportTheme()): return_value
    //#pre[2] (bool isImportTheme()): init'ed(this.importTheme)
    //#post(bool isImportTheme()): return_value == this.importTheme
    //#post(bool isImportTheme()): init'ed(return_value)
    //#ThemeEdit.java:254: end of method: bool org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.isImportTheme()
    }

    public void setImportTheme(boolean importTheme) {
        this.importTheme = importTheme;
    //#ThemeEdit.java:258: method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.setImportTheme(bool)
    //#input(void setImportTheme(bool)): importTheme
    //#input(void setImportTheme(bool)): this
    //#output(void setImportTheme(bool)): this.importTheme
    //#post(void setImportTheme(bool)): this.importTheme == importTheme
    //#post(void setImportTheme(bool)): init'ed(this.importTheme)
    }
    //#ThemeEdit.java:259: end of method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.setImportTheme(bool)

    public String getImportThemeId() {
        return importThemeId;
    //#ThemeEdit.java:262: method: String org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.getImportThemeId()
    //#input(String getImportThemeId()): this
    //#input(String getImportThemeId()): this.importThemeId
    //#output(String getImportThemeId()): return_value
    //#pre[2] (String getImportThemeId()): init'ed(this.importThemeId)
    //#post(String getImportThemeId()): return_value == this.importThemeId
    //#post(String getImportThemeId()): init'ed(return_value)
    //#ThemeEdit.java:262: end of method: String org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.getImportThemeId()
    }

    public void setImportThemeId(String importThemeId) {
        this.importThemeId = importThemeId;
    //#ThemeEdit.java:266: method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.setImportThemeId(String)
    //#input(void setImportThemeId(String)): importThemeId
    //#input(void setImportThemeId(String)): this
    //#output(void setImportThemeId(String)): this.importThemeId
    //#post(void setImportThemeId(String)): this.importThemeId == importThemeId
    //#post(void setImportThemeId(String)): init'ed(this.importThemeId)
    }
    //#ThemeEdit.java:267: end of method: void org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit.setImportThemeId(String)
    
}
    //#ThemeEdit.java:: end of class: org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit
