blob: 4005a8bb3f9dbc5cadab43628b7c503affdb7e0b [file] [log] [blame]
/*
* Copyright 2001-2013 the original author or authors.
*
* 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.jetbrains.generate.tostring.element;
import com.intellij.openapi.util.text.StringUtil;
/**
* This is a method element containing information about the method.
*
* @see ElementFactory
*/
@SuppressWarnings({"UnusedDeclaration"})
public class MethodElement extends AbstractElement implements Element {
private String methodName;
private String fieldName;
private boolean modifierAbstract;
private boolean modifierSynchronized;
private boolean returnTypeVoid;
private boolean getter;
private boolean deprecated;
public String getMethodName() {
return methodName;
}
public void setMethodName(String methodName) {
this.methodName = methodName;
}
public String getFieldName() {
return fieldName;
}
public void setFieldName(String fieldName) {
this.fieldName = fieldName;
}
public String getAccessor() {
return methodName + "()";
}
public boolean isModifierAbstract() {
return modifierAbstract;
}
public void setModifierAbstract(boolean modifierAbstract) {
this.modifierAbstract = modifierAbstract;
}
/**
* Exists for compatibility with old templates
*/
public boolean isModifierSynchronzied() {
return isModifierSynchronized();
}
public boolean isModifierSynchronized() {
return modifierSynchronized;
}
public void setModifierSynchronized(boolean modifierSynchronized) {
this.modifierSynchronized = modifierSynchronized;
}
public boolean isReturnTypeVoid() {
return returnTypeVoid;
}
public void setReturnTypeVoid(boolean returnTypeVoid) {
this.returnTypeVoid = returnTypeVoid;
}
public boolean isGetter() {
return getter;
}
public void setGetter(boolean getter) {
this.getter = getter;
}
public boolean isDeprecated() {
return deprecated;
}
public void setDeprecated(boolean deprecated) {
this.deprecated = deprecated;
}
/**
* Performs a regular expression matching the methodname.
*
* @param regexp regular expression.
* @return true if the methodname matches the regular expression.
* @throws IllegalArgumentException is throw if the given input is invalid (an empty String) or a pattern matching error.
*/
public boolean matchName(String regexp) throws IllegalArgumentException {
if (StringUtil.isEmpty(regexp)) {
throw new IllegalArgumentException("Can't perform regular expression since the given input is empty. Check the Method body velocity code: regexp='" + regexp + "'");
}
return methodName.matches(regexp);
}
public String toString() {
return super.toString() + " ::: MethodElement{" +
"fieldName='" + fieldName + "'" +
", methodName='" + methodName + "'" +
", modifierAbstract=" + modifierAbstract +
", modifierSynchronized=" + modifierSynchronized +
", returnTypeVoid=" + returnTypeVoid +
", getter=" + getter +
", deprecated=" + deprecated +
"}";
}
}