001 /**
002 *
003 * Copyright 2003-2004 The Apache Software Foundation
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017
018 package org.apache.geronimo.gbean;
019
020 import java.io.Serializable;
021
022 /**
023 * Describes an attibute of a GBean.
024 *
025 * @version $Rev: 355877 $ $Date: 2005-12-10 18:48:27 -0800 (Sat, 10 Dec 2005) $
026 */
027 public class GAttributeInfo implements Serializable {
028 /**
029 * Name of this attribute.
030 */
031 private final String name;
032
033 /**
034 * Type of this attribute.
035 */
036 private final String type;
037
038 /**
039 * Is this attribute persistent?
040 */
041 private final boolean persistent;
042
043 /**
044 * Is this attribute manageable?
045 */
046 private final boolean manageable;
047
048 /**
049 * Is this attribute readable?
050 */
051 private final boolean readable;
052
053 /**
054 * Is this attribute writiable?
055 */
056 private final boolean writable;
057
058 /**
059 * Name of the getter method.
060 * The default is "get" + name. In the case of a defualt value we do a caseless search for the name.
061 */
062 private final String getterName;
063
064 /**
065 * Name of the setter method.
066 * The default is "set" + name. In the case of a defualt value we do a caseless search for the name.
067 */
068 private final String setterName;
069
070 public GAttributeInfo(String name, String type, boolean persistent, boolean manageable, String getterName, String setterName) {
071 this(name, type, persistent, manageable, getterName != null, setterName != null, getterName, setterName);
072 }
073
074 public GAttributeInfo(String name, String type, boolean persistent, boolean manageable, boolean readable, boolean writable, String getterName, String setterName) {
075 this.name = name;
076 this.type = type;
077 this.persistent = persistent;
078 //non persistent attributes cannot be manageable
079 this.manageable = manageable & persistent;
080 this.readable = readable;
081 this.writable = writable;
082 this.getterName = getterName;
083 this.setterName = setterName;
084 }
085
086 public String getName() {
087 return name;
088 }
089
090 public String getType() {
091 return type;
092 }
093
094 public boolean isPersistent() {
095 return persistent;
096 }
097
098 public boolean isManageable() {
099 return manageable;
100 }
101
102 public boolean isReadable() {
103 return readable;
104 }
105
106 public boolean isWritable() {
107 return writable;
108 }
109
110 public String getGetterName() {
111 return getterName;
112 }
113
114 public String getSetterName() {
115 return setterName;
116 }
117
118 public String toString() {
119 return "[GAttributeInfo: name=" + name +
120 " type=" + type +
121 " persistent=" + persistent +
122 " manageable=" + manageable +
123 " readable=" + readable +
124 " writable=" + writable +
125 " getterName=" + getterName +
126 " setterName=" + setterName +
127 "]";
128 }
129 }