org.codehaus.modello.plugin.java.javasource.JModifiers Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of modello-plugin-java Show documentation
Show all versions of modello-plugin-java Show documentation
Modello Java Plugin generates Java POJOs for the model.
The newest version!
/**
* Redistribution and use of this software and associated documentation
* ("Software"), with or without modification, are permitted provided
* that the following conditions are met:
*
* 1. Redistributions of source code must retain copyright
* statements and notices. Redistributions must also contain a
* copy of this document.
*
* 2. Redistributions in binary form must reproduce the
* above copyright notice, this list of conditions and the
* following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* 3. The name "Exolab" must not be used to endorse or promote
* products derived from this Software without prior written
* permission of Intalio, Inc. For written permission,
* please contact [email protected].
*
* 4. Products derived from this Software may not be called "Exolab"
* nor may "Exolab" appear in their names without prior written
* permission of Intalio, Inc. Exolab is a registered
* trademark of Intalio, Inc.
*
* 5. Due credit should be given to the Exolab Project
* (http://www.codehaus.org/).
*
* THIS SOFTWARE IS PROVIDED BY INTALIO, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
* NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* INTALIO, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Copyright 1999-2000 (C) Intalio, Inc. All Rights Reserved.
*
* $Id$
*/
package org.codehaus.modello.plugin.java.javasource;
/*
* Copyright (c) 2004, Codehaus.org
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
* of the Software, and to permit persons to whom the Software is furnished to do
* so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
/**
* The set of modifiers for a Method or Member variable
* @author Keith Visco
* @version $Revision$ $Date$
**/
public class JModifiers {
/* static members */
private static final String sAbstract = "abstract";
private static final String sFinal = "final";
private static final String sPrivate = "private";
private static final String sProtected = "protected";
private static final String sPackage = "";
private static final String sPublic = "public";
private static final String sStatic = "static";
private static final String sTransient = "transient";
private static final short vPrivate = 1;
private static final short vProtected = 2;
private static final short vPublic = 3;
private static final short vPackage = 4;
/* local members */
/**
* The visibility
**/
private short visibility = vPublic;
/**
* A flag indicating whether or not the object associated
* with this JModifiers is static
**/
private boolean isStatic = false;
/**
* A flag indicating whether or not the object associated
* with this JModifiers is final
**/
private boolean isFinal = false;
/**
* A flag indicating whether or not the object associated
* with this JModifiers is abstract
**/
private boolean isAbstract = false;
/**
* A flag indicating whether or not the object associated
* with this JModifiers is transient
**/
private boolean isTransient = false;
/**
* Creates a new JModifiers class, by default the
* modifiers presented are public.
**/
public JModifiers() {
super();
} // -- JModifiers
/**
* Creates a new JModifiers
* @param visibility the visibile qualifier
* @param isStatic a boolean indicating the static qualifier.
* A value of true indicates that this static qualifier is present.
* @param isFinal a boolean indicating the final qualifier. A value
* of true indicates that the final qualifier is present.
**/
private JModifiers(short visibility, boolean isStatic, boolean isFinal) {
this.visibility = visibility;
this.isStatic = isStatic;
this.isFinal = isFinal;
} // -- JModifiers
/**
* Creates a copy of this JModifiers
* @return the copy of this JModifiers
**/
public JModifiers copy() {
JModifiers mods = new JModifiers(visibility, isStatic, isFinal);
mods.setAbstract(isAbstract);
mods.setTransient(isTransient);
return mods;
} // -- copy
/**
* Changes the visibility qualifier to "private"
**/
public void makePrivate() {
this.visibility = vPrivate;
} // -- makePrivate
/**
* Changes the visibility qualifier to "protected"
**/
public void makeProtected() {
this.visibility = vProtected;
} // -- makeProtected
/**
* Changes the visibility qualifier to "public"
**/
public void makePublic() {
this.visibility = vPublic;
} // -- makePublic
/**
* Changes the visibility qualifier to package (= without qualifier).
**/
public void makePackage() {
this.visibility = vPackage;
} // -- makePackage
/**
* Returns true if the abstract qualifier is present.
*
This is only applicable to methods and classes.
* @return true if the abstract qualifier is present
**/
public boolean isAbstract() {
return isAbstract;
} // -- isAbstract
/**
* Returns true if the final qualifier is present.
*
This is only applicable to methods and classes.
* @return true if the final qualifier is present
**/
public boolean isFinal() {
return isFinal;
} // -- isFinal
/**
* Returns true if the modifier represented is private.
* @return true if the modifier represented is private.
**/
public boolean isPrivate() {
return (visibility == vPrivate);
} // -- isPrivate
/**
* Returns true if the modifier represented is protected.
* @return true if the modifier represented is protected.
**/
public boolean isProtected() {
return (visibility == vProtected);
} // -- isProtected
/**
* Returns true if the modifier represented is public.
* @return true if the modifier represented is public.
**/
public boolean isPublic() {
return (visibility == vPublic);
} // -- isPublic
/**
* Returns true if the modifier represented is package (= without qualifier).
* @return true if the modifier represented is package (= without qualifier).
**/
public boolean isPackage() {
return (visibility == vPackage);
} // -- isPackage
/**
* Returns true if the modifier represented is static.
* @return true if the modifier represented is static.
**/
public boolean isStatic() {
return this.isStatic;
} // -- isPublic
/**
* Returns true if the modifier represented is transient.
* @return true if the modifier represented is transient.
**/
public boolean isTransient() {
return this.isTransient;
} // -- isTransient
/**
* Sets whether or not the "abstract" qualifier is present
*
This applies only to methods or classes.
* @param isAbstract is a boolean which when true will indicate
* that the abstract qualifier should be present
**/
public void setAbstract(boolean isAbstract) {
this.isAbstract = isAbstract;
} // -- setAbstract
/**
* Sets whether or not the "final" qualifier is present
* @param isFinal is a boolean which when true will indicate
* the final qualifiter is present
**/
public void setFinal(boolean isFinal) {
this.isFinal = isFinal;
} // -- setFinal
/**
* Sets whether or not the "static" qualifier is present
* @param isStatic is a boolean which when true will indicate
* the "static" qualifiter is present
**/
public void setStatic(boolean isStatic) {
this.isStatic = isStatic;
} // -- setStatic
/**
* Sets whether or not the "transient" qualifier is present
* @param isTransient is a boolean which when true will indicate
* the "transient" qualifiter is present
**/
public void setTransient(boolean isTransient) {
this.isTransient = isTransient;
} // -- setTransient
/**
* Returns the String represetation of this JModifiers
* @return the String represetation of this JModifiers
**/
public String toString() {
StringBuilder sb = new StringBuilder();
// -- visibility
switch (visibility) {
case vPrivate:
sb.append(sPrivate);
break;
case vProtected:
sb.append(sProtected);
break;
case vPackage:
sb.append(sPackage);
break;
default:
sb.append(sPublic);
break;
}
// -- static
if (isStatic) {
if (sb.length() > 0) {
sb.append(' ');
}
sb.append(sStatic);
}
// -- final
if (isFinal) {
if (sb.length() > 0) {
sb.append(' ');
}
sb.append(sFinal);
}
// -- abstract
if (isAbstract) {
if (sb.length() > 0) {
sb.append(' ');
}
sb.append(sAbstract);
}
// -- transient
if (isTransient) {
if (sb.length() > 0) {
sb.append(' ');
}
sb.append(sTransient);
}
return sb.toString();
} // -- toString
} // -- JModifiers