Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 1999-2005 The Apache Software Foundation.
   * 
   * 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 org.apache.log4j.jmx;
 
 
 
 
 
 public class LayoutDynamicMBean extends AbstractDynamicMBean {
 
   private Vector dAttributes = new Vector();
   private String dClassName = this.getClass().getName();
 
   private Hashtable dynamicProps = new Hashtable(5);
   private MBeanOperationInfo[] dOperations = new MBeanOperationInfo[1];
   private String dDescription =
      "This MBean acts as a management facade for log4j layouts.";
 
   // This category instance is for logging.
   private static Logger cat = Logger.getLogger(LayoutDynamicMBean.class);
 
   // We wrap this layout instance.
   private Layout layout;
 
   public  LayoutDynamicMBean(Layout layoutthrows IntrospectionException {
     this. = layout;
   }
 
   private
     Constructor[] constructors = this.getClass().getConstructors();
     [0] = new MBeanConstructorInfo(
              "LayoutDynamicMBean(): Constructs a LayoutDynamicMBean instance",
 	     constructors[0]);
 
 
     BeanInfo bi = Introspector.getBeanInfo(.getClass());
 
     int size = pd.length;
 
     for(int i = 0; i < sizei++) {
       String name = pd[i].getName();
       Method readMethod =  pd[i].getReadMethod();
       Method writeMethod =  pd[i].getWriteMethod();
       if(readMethod != null) {
 	Class returnClass = readMethod.getReturnType();
 	if(isSupportedType(returnClass)) {
 	  String returnClassName;
 	  if(returnClass.isAssignableFrom(Level.class)) {
 	    returnClassName = "java.lang.String";
 	  } else {
 	    returnClassName = returnClass.getName();
 	  }
 
 						 returnClassName,
 						 "Dynamic",
						 true,
						 writeMethod != null,
						 false));
	  .put(namenew MethodUnion(readMethodwriteMethod));
	}
      }
    }
    MBeanParameterInfo[] params = new MBeanParameterInfo[0];
    [0] = new MBeanOperationInfo("activateOptions",
					    "activateOptions(): add an layout",
					    params,
					    "void",
  }
  private
  boolean isSupportedType(Class clazz) {
    if(clazz.isPrimitive()) {
      return true;
    }
    if(clazz == String.class) {
      return true;
    }
    if(clazz.isAssignableFrom(Level.class)) {
      return true;
    }
    return false;
  }
  public
    .debug("getMBeanInfo called.");
    .toArray(attribs);
    return new MBeanInfo(,
			 attribs,
  }
  public
  Object invoke(String operationNameObject params[], String signature[])
    throws MBeanException,
    if(operationName.equals("activateOptions") &&
                      instanceof OptionHandler) {
      OptionHandler oh = (OptionHandler;
      oh.activateOptions();
      return "Options activated.";
    }
    return null;
  }
  protected
  Logger  getLogger() {
    return ;
  }
  public
                                                   MBeanException,
                                                   ReflectionException {
       // Check attributeName is not null to avoid NullPointerException later on
    if (attributeName == null) {
			"Attribute name cannot be null"),
       "Cannot invoke a getter of " +  + " with null attribute name");
    }
    MethodUnion mu = (MethodUnion.get(attributeName);
    .debug("----name="+attributeName+", mu="+mu);
    if(mu != null && mu.readMethod != null) {
      try {
	return mu.readMethod.invoke(null);
      } catch(Exception e) {
	return null;
      }
    }
    // If attributeName has not been recognized throw an AttributeNotFoundException
    throw(new AttributeNotFoundException("Cannot find " + attributeName +
					 " attribute in " + ));
  }
  public
  void setAttribute(Attribute attributethrows AttributeNotFoundException,
                                                InvalidAttributeValueException,
                                                MBeanException,
                                                ReflectionException {
    // Check attribute is not null to avoid NullPointerException later on
    if (attribute == null) {
      throw new RuntimeOperationsException(
                  new IllegalArgumentException("Attribute cannot be null"),
		  "Cannot invoke a setter of " +  +
		  " with null attribute");
    }
    String name = attribute.getName();
    Object value = attribute.getValue();
    if (name == null) {
      throw new RuntimeOperationsException(
                    new IllegalArgumentException("Attribute name cannot be null"),
		    "Cannot invoke the setter of "++
		    " with null attribute name");
    }
    MethodUnion mu = (MethodUnion.get(name);
    if(mu != null && mu.writeMethod != null) {
      Object[] o = new Object[1];
      Class[] params = mu.writeMethod.getParameterTypes();
      if(params[0] == org.apache.log4j.Priority.class) {
	value = OptionConverter.toLevel((Stringvalue,
      }
      o[0] = value;
      try {
	mu.writeMethod.invoke(,  o);
      } catch(Exception e) {
	.error("FIXME"e);
      }
    } else {
      throw(new AttributeNotFoundException("Attribute " + name +
					   " not found in " +
					   this.getClass().getName()));
    }
  }
New to GrepCode? Check out our FAQ X