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

org.jboss.ejb.client.EJBModuleIdentifier Maven / Gradle / Ivy

Go to download

This artifact provides a single jar that contains all classes required to use remote EJB and JMS, including all dependencies. It is intended for use by those not using maven, maven users should just import the EJB and JMS BOM's instead (shaded JAR's cause lots of problems with maven, as it is very easy to inadvertently end up with different versions on classes on the class path).

There is a newer version: 34.0.0.Final
Show newest version
/*
 * JBoss, Home of Professional Open Source.
 * Copyright 2017 Red Hat, Inc., and individual contributors
 * as indicated by the @author tags.
 *
 * 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.jboss.ejb.client;

import java.io.Serializable;
import java.util.Objects;

import org.wildfly.common.Assert;

/**
 * An identifier for an Enterprise Bean module located within a container.
 * 

* Enterprise Bean module identifiers are suitable for use as hash keys. * * @author David M. Lloyd */ public class EJBModuleIdentifier implements Serializable { private static final long serialVersionUID = 6743739852843753760L; private final String appName; private final String moduleName; private final String distinctName; private transient int hashCode; /** * Construct a new instance. * * @param appName the application name (must not be {@code null}, but may be empty) * @param moduleName the module name (must not be {@code null} or empty) * @param distinctName the distinct name (must not be {@code null}, but may be empty) */ public EJBModuleIdentifier(final String appName, final String moduleName, final String distinctName) { Assert.checkNotNullParam("appName", appName); Assert.checkNotNullParam("moduleName", moduleName); Assert.checkNotEmptyParam("moduleName", moduleName); Assert.checkNotNullParam("distinctName", distinctName); this.appName = appName; this.moduleName = moduleName; this.distinctName = distinctName; } /** * Construct a new instance. * * @param appName the application name (must not be {@code null}, but may be empty) * @param moduleName the module name (must not be {@code null} or empty) */ public EJBModuleIdentifier(final String appName, final String moduleName) { this(appName, moduleName, ""); } /** * Construct a new instance. * * @param moduleName the module name (must not be {@code null} or empty) */ public EJBModuleIdentifier(final String moduleName) { this("", moduleName); } /** * Get the application name, which may be empty. * * @return the application name (not {@code null}) */ public String getAppName() { return appName; } /** * Get the module name. * * @return the module name (not {@code null}) */ public String getModuleName() { return moduleName; } /** * Get the distinct name, which may be empty. * * @return the distinct name (not {@code null}) */ public String getDistinctName() { return distinctName; } /** * Determine if this Enterprise Bean identifier is equal to the given object. * * @param other the object to test * @return {@code true} if the object is equal to this one, {@code false} otherwise */ public boolean equals(final Object other) { return other instanceof EJBModuleIdentifier && equals((EJBModuleIdentifier) other); } /** * Determine if this Enterprise Bean identifier is equal to the given object. * * @param other the object to test * @return {@code true} if the object is equal to this one, {@code false} otherwise */ public boolean equals(final EJBModuleIdentifier other) { return other != null && ( other == this || other.hashCode() == hashCode() && Objects.equals(appName, other.appName) && Objects.equals(moduleName, other.moduleName) && Objects.equals(distinctName, other.distinctName) ); } /** * Get the hash code of this identifier. * * @return the hash code of this identifier */ public int hashCode() { int hashCode = this.hashCode; if (hashCode != 0) { return hashCode; } hashCode = Objects.hashCode(appName) + 13 * (Objects.hashCode(moduleName) + 13 * Objects.hashCode(distinctName)); return this.hashCode = hashCode == 0 ? 1 : hashCode; } /** * Get the Enterprise Beans identifier as a human-readable string. * * @return the Enterprise Beans identifier as a human-readable string (not {@code null}) */ public String toString() { final String distinctName = getDistinctName(); if (distinctName == null || distinctName.isEmpty()) { return String.format("%s/%s", getAppName(), getModuleName()); } else { return String.format("%s/%s/%s", getAppName(), getModuleName(), distinctName); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy