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

org.duelengine.duel.codedom.CodeMember Maven / Gradle / Ivy

package org.duelengine.duel.codedom;

/**
 * Represents a type member
 */
public abstract class CodeMember extends CodeObject {

	private AccessModifierType access;
	private String name;

	public CodeMember() {
		access = AccessModifierType.DEFAULT;
	}

	public CodeMember(AccessModifierType access, String name) {
		this.access = (access != null) ? access : AccessModifierType.DEFAULT;
		this.name = name;
	}

	public AccessModifierType getAccess() {
		return access;
	}

	public void setAccess(AccessModifierType value) {
		access = (value != null) ? value : AccessModifierType.DEFAULT;
	}

	public String getName() {
		return name;
	}

	public void setName(String value) {
		name = value;
	}

	@Override
	public CodeMember withMetaData(Object... pairs) {
		return (CodeMember)super.withMetaData(pairs);
	}

	@Override
	public boolean equals(Object arg) {
		if (!(arg instanceof CodeMember)) {
			// includes null
			return false;
		}

		CodeMember that = (CodeMember)arg;

		if (name == null ? that.name != null : !name.equals(that.name)) {
			return false;
		}

		return access == that.access;
	}

	@Override
	public int hashCode() {
		final int HASH_PRIME = 1000003;

		int hash = (access == null) ? 0 :access.hashCode();
		if (name != null) {
			hash = hash * HASH_PRIME + name.hashCode();
		}

		return hash;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy