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

com.liferay.source.formatter.parser.JavaClass Maven / Gradle / Ivy

There is a newer version: 1.0.739
Show newest version
/**
 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

package com.liferay.source.formatter.parser;

import com.liferay.portal.kernel.util.StringUtil;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Hugo Huijser
 */
public class JavaClass extends BaseJavaTerm {

	public JavaClass(
		String accessModifier, boolean anonymous, String content,
		List importNames, boolean isAbstract, boolean isFinal,
		boolean isInterface, boolean isStatic, boolean isStrictfp,
		int lineNumber, String name, boolean nonsealed, String packageName,
		boolean sealed) {

		super(
			accessModifier, content, isAbstract, isFinal, isStatic, lineNumber,
			name);

		_anonymous = anonymous;
		_importNames = importNames;
		_isInterface = isInterface;
		_isStrictfp = isStrictfp;
		_nonsealed = nonsealed;
		_packageName = packageName;
		_sealed = sealed;
	}

	public void addChildJavaTerm(JavaTerm javaTerm) {
		javaTerm.setParentJavaClass(this);

		_childJavaTerms.add(javaTerm);
	}

	public void addExtendedClassNames(String... extendedClassNames) {
		for (String extendedClassName : extendedClassNames) {
			_extendedClassTypes.add(
				new JavaClassType(
					StringUtil.trim(extendedClassName), _packageName,
					_importNames));
		}
	}

	public void addImplementedClassNames(String... implementedClassNames) {
		for (String implementedClassName : implementedClassNames) {
			_implementedClassTypes.add(
				new JavaClassType(
					StringUtil.trim(implementedClassName), _packageName,
					_importNames));
		}
	}

	public void addPermittedClassNames(String... permittedClassNames) {
		for (String permittedClassName : permittedClassNames) {
			_permittedClassTypes.add(
				new JavaClassType(
					StringUtil.trim(permittedClassName), _packageName,
					_importNames));
		}
	}

	public List getChildJavaTerms() {
		return _childJavaTerms;
	}

	public List getExtendedClassNames() {
		return getExtendedClassNames(false);
	}

	public List getExtendedClassNames(boolean fullyQualifiedName) {
		List extendedClassNames = new ArrayList<>();

		for (JavaClassType extendedClassType : _extendedClassTypes) {
			extendedClassNames.add(
				extendedClassType.toString(fullyQualifiedName));
		}

		return extendedClassNames;
	}

	public List getImplementedClassNames() {
		return getImplementedClassNames(false);
	}

	public List getImplementedClassNames(boolean fullyQualifiedName) {
		List implementedClassNames = new ArrayList<>();

		for (JavaClassType implementedClassType : _implementedClassTypes) {
			implementedClassNames.add(
				implementedClassType.toString(fullyQualifiedName));
		}

		return implementedClassNames;
	}

	public List getImplementedClassTypes() {
		return _implementedClassTypes;
	}

	@Override
	public List getImportNames() {
		return _importNames;
	}

	public String getName(boolean fullyQualifiedClassName) {
		if (!fullyQualifiedClassName) {
			return getName();
		}

		return _packageName + "." + getName();
	}

	@Override
	public String getPackageName() {
		return _packageName;
	}

	public List getPermittedClassNames() {
		return getPermittedClassNames(false);
	}

	public List getPermittedClassNames(boolean fullyQualifiedName) {
		List permittedClassNames = new ArrayList<>();

		for (JavaClassType permittedClassType : _permittedClassTypes) {
			permittedClassNames.add(
				permittedClassType.toString(fullyQualifiedName));
		}

		return permittedClassNames;
	}

	public boolean isAnonymous() {
		return _anonymous;
	}

	public boolean isInterface() {
		return _isInterface;
	}

	public boolean isNonsealed() {
		return _nonsealed;
	}

	public boolean isSealed() {
		return _sealed;
	}

	public boolean isStrictfp() {
		return _isStrictfp;
	}

	private final boolean _anonymous;
	private final List _childJavaTerms = new ArrayList<>();
	private final List _extendedClassTypes = new ArrayList<>();
	private final List _implementedClassTypes =
		new ArrayList<>();
	private final List _importNames;
	private final boolean _isInterface;
	private final boolean _isStrictfp;
	private final boolean _nonsealed;
	private final String _packageName;
	private final List _permittedClassTypes = new ArrayList<>();
	private final boolean _sealed;

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy