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

org.eclipse.persistence.internal.codegen.AccessLevel Maven / Gradle / Ivy

There is a newer version: 5.0.0-B03
Show newest version
/*
 * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0,
 * or the Eclipse Distribution License v. 1.0 which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
 */

// Contributors:
//     Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.internal.codegen;


/**
 * INTERNAL:
 * 

Purpose: Model an access level, i.e. private/protected/final/static/etc. * * @since TopLink 3.0 * @author James Sutherland */ public class AccessLevel { protected int level; public static final int PUBLIC = 1; public static final int PROTECTED = 2; public static final int PACKAGE = 3; public static final int PRIVATE = 4; protected boolean isAbstract; protected boolean isFinal; protected boolean isNative; protected boolean isStatic; protected boolean isSynchronized; protected boolean isTransient; protected boolean isVolatile; public AccessLevel() { this.level = PUBLIC; this.isStatic = false; this.isFinal = false; this.isTransient = false; } public AccessLevel(int level) { this.level = level; this.isStatic = false; this.isFinal = false; this.isTransient = false; } @Override public boolean equals(Object object) { if (this == object) { return true; } if (!(object instanceof AccessLevel)) { return false; } AccessLevel accessLevel = (AccessLevel)object; return ((this.level == accessLevel.level) && (this.isStatic == accessLevel.isStatic) && (this.isFinal == accessLevel.isFinal) && (this.isTransient == accessLevel.isTransient)); } @Override public int hashCode() { int result = level; result = 31 * result + (isAbstract ? 1 : 0); result = 31 * result + (isFinal ? 1 : 0); result = 31 * result + (isNative ? 1 : 0); result = 31 * result + (isStatic ? 1 : 0); result = 31 * result + (isSynchronized ? 1 : 0); result = 31 * result + (isTransient ? 1 : 0); result = 31 * result + (isVolatile ? 1 : 0); return result; } public int getLevel() { return level; } public boolean isAbstract() { return isAbstract; } public boolean isFinal() { return isFinal; } public boolean isNative() { return isNative; } public boolean isStatic() { return isStatic; } public boolean isSynchronized() { return isSynchronized; } public boolean isTransient() { return isTransient; } public boolean isVolatile() { return isVolatile; } public void setIsAbstract(boolean isAbstract) { this.isAbstract = isAbstract; } public void setIsFinal(boolean isFinal) { this.isFinal = isFinal; } public void setIsNative(boolean isNative) { this.isNative = isNative; } public void setIsStatic(boolean isStatic) { this.isStatic = isStatic; } public void setIsSynchronized(boolean isSynchronized) { this.isSynchronized = isSynchronized; } public void setIsTransient(boolean isTransient) { this.isTransient = isTransient; } public void setIsVolatile(boolean isVolatile) { this.isVolatile = isVolatile; } public void setLevel(int level) { this.level = level; } public void write(CodeGenerator generator) { boolean needsSpace = true; if (getLevel() == PUBLIC) { generator.write("public"); } else if (getLevel() == PROTECTED) { generator.write("protected"); } else if (getLevel() == PACKAGE) { // Nothing required/default. needsSpace = false; } else if (getLevel() == PRIVATE) { generator.write("private"); } if (isAbstract()) { if (needsSpace) { generator.write(" "); } generator.write("abstract"); needsSpace = true; } if (isStatic()) { if (needsSpace) { generator.write(" "); } generator.write("static"); needsSpace = true; } if (isFinal()) { if (needsSpace) { generator.write(" "); } generator.write("final"); needsSpace = true; } if (isTransient()) { if (needsSpace) { generator.write(" "); } generator.write("transient"); needsSpace = true; } if (isVolatile()) { if (needsSpace) { generator.write(" "); } generator.write("volatile"); needsSpace = true; } if (isNative()) { if (needsSpace) { generator.write(" "); } generator.write("native"); needsSpace = true; } if (isSynchronized()) { if (needsSpace) { generator.write(" "); } generator.write("synchronized"); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy