/* * NOTE: This copyright does *not* cover user programs that use HQ * program services by normal system calls through the application * program interfaces provided as part of the Hyperic Plug-in Development * Kit or the Hyperic Client Development Kit - this is merely considered * normal use of the program, and does *not* fall under the heading of * "derived work". * * Copyright (C) [2004, 2005, 2006], Hyperic, Inc. * This file is part of HQ. * * HQ is free software; you can redistribute it and/or modify * it under the terms version 2 of the GNU General Public License as * published by the Free Software Foundation. This program is distributed * in the hope that it will be useful, but WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * USA. */ package org.hyperic.hq.appdef.shared; public final class AppdefEntityConstants { public static final String HQ_AGENT_PROTOTYPE_NAME = "HQ Agent"; public static final int APPDEF_TYPE_PRIVATEGROUP = 0; public static final int APPDEF_TYPE_PLATFORM = 1; public static final int APPDEF_TYPE_SERVER = 2; public static final int APPDEF_TYPE_SERVICE = 3; public static final int APPDEF_TYPE_APPLICATION = 4; public static final int APPDEF_TYPE_GROUP = 5; public static final int APPDEF_TYPE_AIPLATFORM = 6; public static final int APPDEF_TYPE_AISERVER = 7; public static final int APPDEF_TYPE_AIIP = 8; public static final int APPDEF_TYPE_AUTOGROUP = 9; public static final int APPDEF_TYPE_POLICY = 10; private static final String APPDEF_NAME_PRIVATEGROUP = "privateGroup"; private static final String APPDEF_NAME_PLATFORM = "platform"; private static final String APPDEF_NAME_SERVER = "server"; private static final String APPDEF_NAME_SERVICE = "service"; private static final String APPDEF_NAME_APPLICATION = "application"; private static final String APPDEF_NAME_GROUP = "group"; private static final String APPDEF_NAME_AIPLATFORM = "aiplatform"; private static final String APPDEF_NAME_AISERVER = "aiserver"; private static final String APPDEF_NAME_AIIP = "aiip"; private static final String APPDEF_NAME_AUTOGROUP = "autogroup"; private static final String APPDEF_NAME_POLICY = "policy"; public static final String GENERIC_APPLICATION_TYPE = "Generic Application"; // ResourceTreeGenerator traversal constants public static final int RESTREE_TRAVERSE_NORMAL = 1; public static final int RESTREE_TRAVERSE_UP = 2; /* The group types defined below break down as follows: * ADHOC COMPAT * / | \ /\ * / | \ / \ * / | \ / \ * / | \ / \ * (Group)| or \ (Service) or\ * (App) or \ (Platform||Server) * (Platform&Server&Service) * */ /* Group of applications */ public static final int APPDEF_TYPE_GROUP_ADHOC_APP = 11; /* Group of group */ public static final int APPDEF_TYPE_GROUP_ADHOC_GRP = 12; /* Group of platform, server, service */ public static final int APPDEF_TYPE_GROUP_ADHOC_PSS = 13; /* Compatible group of Platform or Servers */ public static final int APPDEF_TYPE_GROUP_COMPAT_PS = 14; /* Compatible group of Services (cluster) */ public static final int APPDEF_TYPE_GROUP_COMPAT_SVC = 15; /* Dynamic group (mixed with special powers) */ public static final int APPDEF_TYPE_GROUP_DYNAMIC = 16; /* Policy group (only used for policy permissions) */ public static final int APPDEF_TYPE_GROUP_POLICY = 17; private static final String APPDEF_TYPE_GROUP_ADHOC_APP_LABEL = "Mixed Group - Applications"; private static final String APPDEF_TYPE_GROUP_ADHOC_GRP_LABEL = "Mixed Group - Groups"; private static final String APPDEF_TYPE_GROUP_ADHOC_PSS_LABEL = "Mixed Group - Platforms,Servers & Services"; private static final String APPDEF_TYPE_GROUP_COMPAT_PS_LABEL = "Compatible / Cluster Group"; private static final String APPDEF_TYPE_GROUP_COMPAT_SVC_LABEL = "Compatible Group - Service Cluster"; private static final String APPDEF_TYPE_GROUP_DYNAMIC_LABEL = "Dynamic Group"; /** get primary appdef types */ public static int[] getAppdefTypes () { return new int[] { APPDEF_TYPE_PLATFORM, APPDEF_TYPE_SERVER, APPDEF_TYPE_SERVICE, APPDEF_TYPE_APPLICATION, APPDEF_TYPE_GROUP }; } public static int[] getAppdefGroupTypes () { return new int[] { APPDEF_TYPE_GROUP_ADHOC_APP, APPDEF_TYPE_GROUP_ADHOC_GRP, APPDEF_TYPE_GROUP_ADHOC_PSS, APPDEF_TYPE_GROUP_COMPAT_PS, APPDEF_TYPE_GROUP_COMPAT_SVC }; } // Most group contexts collapse or normalize compatible // PSS and SVC together. public static int[] getAppdefGroupTypesNormalized () { return new int[] { APPDEF_TYPE_GROUP_ADHOC_APP, APPDEF_TYPE_GROUP_ADHOC_GRP, APPDEF_TYPE_GROUP_ADHOC_PSS, APPDEF_TYPE_GROUP_COMPAT_SVC }; } public static String typeToString(int type){ switch(type){ case AppdefEntityConstants.APPDEF_TYPE_PLATFORM: return AppdefEntityConstants.APPDEF_NAME_PLATFORM; case AppdefEntityConstants.APPDEF_TYPE_SERVER: return AppdefEntityConstants.APPDEF_NAME_SERVER; case AppdefEntityConstants.APPDEF_TYPE_SERVICE: return AppdefEntityConstants.APPDEF_NAME_SERVICE; case AppdefEntityConstants.APPDEF_TYPE_APPLICATION: return AppdefEntityConstants.APPDEF_NAME_APPLICATION; case AppdefEntityConstants.APPDEF_TYPE_GROUP: return AppdefEntityConstants.APPDEF_NAME_GROUP; case AppdefEntityConstants.APPDEF_TYPE_AIPLATFORM: return AppdefEntityConstants.APPDEF_NAME_AIPLATFORM; case AppdefEntityConstants.APPDEF_TYPE_AISERVER: return AppdefEntityConstants.APPDEF_NAME_AISERVER; case AppdefEntityConstants.APPDEF_TYPE_AIIP: return AppdefEntityConstants.APPDEF_NAME_AIIP; case AppdefEntityConstants.APPDEF_TYPE_AUTOGROUP: return AppdefEntityConstants.APPDEF_NAME_AUTOGROUP; default: throw new IllegalArgumentException("Unknown appdef type: " + type); } } public static int stringToType(String name){ if (name.equals(AppdefEntityConstants.APPDEF_NAME_PLATFORM)) { return AppdefEntityConstants.APPDEF_TYPE_PLATFORM; } else if (name.equals(AppdefEntityConstants.APPDEF_NAME_SERVER)) { return AppdefEntityConstants.APPDEF_TYPE_SERVER; } else if (name.equals(AppdefEntityConstants.APPDEF_NAME_SERVICE)) { return AppdefEntityConstants.APPDEF_TYPE_SERVICE; } else if (name. equals(AppdefEntityConstants.APPDEF_NAME_APPLICATION)) { return AppdefEntityConstants.APPDEF_TYPE_APPLICATION; } else if (name.equals(AppdefEntityConstants.APPDEF_NAME_GROUP)) { return AppdefEntityConstants.APPDEF_TYPE_GROUP; } else if (name.equals(AppdefEntityConstants.APPDEF_NAME_AIPLATFORM)) { return AppdefEntityConstants.APPDEF_TYPE_AIPLATFORM; } else if (name.equals(AppdefEntityConstants.APPDEF_NAME_AISERVER)) { return AppdefEntityConstants.APPDEF_TYPE_AISERVER; } else if (name.equals(AppdefEntityConstants.APPDEF_NAME_AIIP)) { return AppdefEntityConstants.APPDEF_TYPE_AIIP; } else { throw new IllegalArgumentException("Unknown appdef type: " + name); } } public static boolean typeIsValid(int type){ return type >= AppdefEntityConstants.APPDEF_TYPE_PLATFORM && type <= AppdefEntityConstants.APPDEF_TYPE_POLICY; } public static boolean groupTypeIsValid (int type) { return type >= AppdefEntityConstants.APPDEF_TYPE_GROUP_ADHOC_APP && type <= AppdefEntityConstants.APPDEF_TYPE_GROUP_COMPAT_SVC; } public static String getAppdefGroupTypeName(int grpType){ switch (grpType) { case APPDEF_TYPE_GROUP_ADHOC_APP: return APPDEF_TYPE_GROUP_ADHOC_APP_LABEL; case APPDEF_TYPE_GROUP_ADHOC_GRP: return APPDEF_TYPE_GROUP_ADHOC_GRP_LABEL; case APPDEF_TYPE_GROUP_ADHOC_PSS: return APPDEF_TYPE_GROUP_ADHOC_PSS_LABEL; case APPDEF_TYPE_GROUP_COMPAT_PS: return APPDEF_TYPE_GROUP_COMPAT_PS_LABEL; case APPDEF_TYPE_GROUP_COMPAT_SVC: return APPDEF_TYPE_GROUP_COMPAT_SVC_LABEL; case APPDEF_TYPE_GROUP_DYNAMIC: return APPDEF_TYPE_GROUP_DYNAMIC_LABEL; case AppdefEntityConstants.APPDEF_TYPE_PRIVATEGROUP: return AppdefEntityConstants.APPDEF_NAME_PRIVATEGROUP; } throw new IllegalArgumentException("Unknown appdef group type: " + grpType); } public static boolean isGroupAdhoc (int grpType) { return (grpType == AppdefEntityConstants.APPDEF_TYPE_GROUP_ADHOC_APP || grpType == AppdefEntityConstants.APPDEF_TYPE_GROUP_ADHOC_GRP || grpType == AppdefEntityConstants.APPDEF_TYPE_GROUP_ADHOC_PSS ); } public static boolean isGroupCompat(int grpType) { return (grpType == AppdefEntityConstants.APPDEF_TYPE_GROUP_COMPAT_PS || grpType == AppdefEntityConstants.APPDEF_TYPE_GROUP_COMPAT_SVC ); } public static boolean isDynamicGroup(int grpType) { return (grpType == AppdefEntityConstants.APPDEF_TYPE_GROUP_DYNAMIC); } }