| /******************************************************************************* |
| * Copyright (c) 2007 SAP AG and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * Contributors: |
| * Kaloyan Raev, kaloyan.raev@sap.com - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jst.j2ee.ejb.internal.operations; |
| |
| import org.eclipse.jdt.core.Flags; |
| import org.eclipse.jdt.core.IMethod; |
| import org.eclipse.jdt.core.IType; |
| import org.eclipse.jdt.core.JavaModelException; |
| import org.eclipse.jdt.core.Signature; |
| |
| public class BusinessInterface { |
| |
| public enum BusinessInterfaceType { |
| LOCAL, REMOTE; |
| } |
| |
| private IType javaType; |
| private String name; |
| |
| private BusinessInterfaceType type; |
| |
| public BusinessInterface(IType javaType, BusinessInterfaceType type) { |
| this(javaType.getFullyQualifiedName(), type); |
| this.javaType = javaType; |
| } |
| |
| public BusinessInterface(String name, BusinessInterfaceType type) { |
| this.name = name; |
| this.type = type; |
| } |
| |
| public String getFullyQualifiedName() { |
| return name; |
| } |
| |
| public String getSimpleName() { |
| return Signature.getSimpleName(name); |
| } |
| |
| public IType getJavaType() { |
| return javaType; |
| } |
| |
| public boolean exists() { |
| return javaType != null; |
| } |
| |
| public BusinessInterfaceType getType() { |
| return type; |
| } |
| |
| public boolean isLocal() { |
| return type == BusinessInterfaceType.LOCAL; |
| } |
| |
| public boolean isRemote() { |
| return type == BusinessInterfaceType.REMOTE; |
| } |
| |
| public boolean hasUnimplementedMethod() throws JavaModelException { |
| if (javaType != null) { |
| IMethod[] methods = javaType.getMethods(); |
| for (IMethod method : methods) { |
| boolean resolved = method.isResolved(); |
| if (!resolved) { |
| int flags = method.getFlags(); |
| if (Flags.isAbstract(flags) || Flags.isInterface(flags)) { |
| method.getParameterTypes(); |
| } |
| } |
| } |
| } |
| return false; |
| } |
| |
| public void setFullyQualifiedName(String newName) { |
| name = newName; |
| } |
| |
| @Override |
| public int hashCode() { |
| final int prime = 31; |
| int result = 1; |
| result = prime * result + ((name == null) ? 0 : name.hashCode()); |
| return result; |
| } |
| |
| @Override |
| public boolean equals(Object obj) { |
| if (this == obj) |
| return true; |
| if (obj == null) |
| return false; |
| if (getClass() != obj.getClass()) |
| return false; |
| BusinessInterface other = (BusinessInterface) obj; |
| if (name == null) { |
| if (other.name != null) |
| return false; |
| } else if (!name.equals(other.name)) |
| return false; |
| return true; |
| } |
| |
| } |