/** * Analytica - beta version - Systems Monitoring Tool * * Copyright (C) 2013, KleeGroup, direction.technique@kleegroup.com (http://www.kleegroup.com) * KleeGroup, Centre d'affaire la Boursidi�re - BP 159 - 92357 Le Plessis Robinson Cedex - France * * This program is free software; you can redistribute it and/or modify it under the terms * of the GNU General Public License as published by the Free Software Foundation; * either version 3 of the License, or (at your option) any later version. * * 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, see <http://www.gnu.org/licenses> * * Linking this library statically or dynamically with other modules is making a combined work based on this library. * Thus, the terms and conditions of the GNU General Public License cover the whole combination. * * As a special exception, the copyright holders of this library give you permission to link this library * with independent modules to produce an executable, regardless of the license terms of these independent modules, * and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, * for each linked independent module, the terms and conditions of the license of that module. * An independent module is a module which is not derived from or based on this library. * If you modify this library, you may extend this exception to your version of the library, * but you are not obliged to do so. * If you do not wish to do so, delete this exception statement from your version. */ package io.analytica.spies.imp.javassist; import java.util.Collections; import java.util.List; /** * Param�trage d'un point d'encrage de l'agent. * @author npiedeloup * @version $Id: $ */ public class AnalyticaSpyHookPoint { private final String className; private final String inherits; private final List<String> methods; private final List<String> methodTypes; private final String processType; private final List<String> subTypes; /** * Constructeur. * @param className pattern de className * @param inherits pattern d'une interface ou d'une superclass * @param methods Liste de point d'accroche de l'agent * @param methodTypes Type des points d'accroches (! pour not): INIT, CLINIT, METHOD, ABSTRACT, FINAL, NATIVE, PRIVATE, PROTECTED, PUBLIC, STATIC, SYNCHRONIZED * @param processType Type du process * @param subTypes Liste des sous-cat�gories */ public AnalyticaSpyHookPoint(final String className, final String inherits, final List<String> methods, final List<String> methodTypes, final String processType, final List<String> subTypes) { this.className = className; this.inherits = inherits; this.methods = methods; this.methodTypes = methodTypes; this.processType = processType; this.subTypes = subTypes; } /** * @return Nom de la class */ public String getClassName() { return className; } /** * @return Nom de l'h�ritage (nullable) */ public String getInherits() { return inherits; } /** * @return Patterns de lecture du log */ public List<String> getMethods() { return methods; } /** * @return Type de methods accept�s (! pour not): INIT, CLINIT, METHOD, ABSTRACT, FINAL, NATIVE, PRIVATE, PROTECTED, PUBLIC, STATIC, SYNCHRONIZED */ public List<String> getMethodTypes() { return methodTypes != null ? methodTypes : Collections.<String> emptyList();//Gson peut laisser des listes null } /** * @return Nom du type de process */ public String getProcessType() { return processType; } /** * @return Liste des sous-cat�gories : en syntaxe javassist */ public List<String> getSubTypes() { return subTypes != null ? subTypes : Collections.<String> emptyList();//Gson peut laisser des listes null } /** {@inheritDoc} */ @Override public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("{ \"className\" : \"" + className + "\",\n"); sb.append(" \"inherits\" : \"" + inherits + "\",\n"); sb.append(" \"methods\" : " + methods + ",\n"); sb.append(" \"methodsAttributes\" : \"" + methodTypes + "\",\n"); sb.append(" \"processType\" : \"" + processType + "\",\n"); sb.append(" \"subTypes\" : " + subTypes + " }\n"); return sb.toString(); } }