All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.tomcat.util.modeler.AttributeInfo Maven / Gradle / Ivy

The newest version!
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * 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.
 */

package org.apache.tomcat.util.modeler;

import javax.management.MBeanAttributeInfo;


/**
 * 

Internal configuration information for an Attribute * descriptor.

* * @author Craig R. McClanahan */ public class AttributeInfo extends FeatureInfo { static final long serialVersionUID = -2511626862303972143L; // ----------------------------------------------------- Instance Variables protected String displayName = null; // Information about the method to use protected String getMethod = null; protected String setMethod = null; protected boolean readable = true; protected boolean writeable = true; protected boolean is = false; // ------------------------------------------------------------- Properties /** * @return the display name of this attribute. */ public String getDisplayName() { return this.displayName; } public void setDisplayName(String displayName) { this.displayName = displayName; } /** * @return the name of the property getter method, if non-standard. */ public String getGetMethod() { if(getMethod == null) getMethod = getMethodName(getName(), true, isIs()); return this.getMethod; } public void setGetMethod(String getMethod) { this.getMethod = getMethod; } /** * Is this a boolean attribute with an "is" getter? * @return true if this is a boolean attribute * with an "is" getter */ public boolean isIs() { return this.is; } public void setIs(boolean is) { this.is = is; } /** * Is this attribute readable by management applications? * @return true if readable */ public boolean isReadable() { return this.readable; } public void setReadable(boolean readable) { this.readable = readable; } /** * @return the name of the property setter method, if non-standard. */ public String getSetMethod() { if( setMethod == null ) setMethod = getMethodName(getName(), false, false); return this.setMethod; } public void setSetMethod(String setMethod) { this.setMethod = setMethod; } /** * Is this attribute writable by management applications? * @return true if writable */ public boolean isWriteable() { return this.writeable; } public void setWriteable(boolean writeable) { this.writeable = writeable; } // --------------------------------------------------------- Public Methods /** * Create and return a ModelMBeanAttributeInfo object that * corresponds to the attribute described by this instance. * @return the attribute info */ MBeanAttributeInfo createAttributeInfo() { // Return our cached information (if any) if (info == null) { info = new MBeanAttributeInfo(getName(), getType(), getDescription(), isReadable(), isWriteable(), false); } return (MBeanAttributeInfo)info; } // -------------------------------------------------------- Private Methods /** * Create and return the name of a default property getter or setter * method, according to the specified values. * * @param name Name of the property itself * @param getter Do we want a get method (versus a set method)? * @param is If returning a getter, do we want the "is" form? * @return the method name */ private String getMethodName(String name, boolean getter, boolean is) { StringBuilder sb = new StringBuilder(); if (getter) { if (is) sb.append("is"); else sb.append("get"); } else sb.append("set"); sb.append(Character.toUpperCase(name.charAt(0))); sb.append(name.substring(1)); return sb.toString(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy